diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000..32a53f185a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,2 @@ +[*.{kt,kts}] +indent_size=2 diff --git a/.eslintrc.js b/.eslintrc.js index eb7ad04b1e..9d2b7bbb1a 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -13,6 +13,7 @@ module.exports = { 'lingui', 'simple-import-sort', 'bsky-internal', + 'eslint-plugin-react-compiler', ], rules: { // Temporary until https://github.com/facebook/react-native/pull/43756 gets into a release. @@ -30,6 +31,7 @@ module.exports = { }, }, ], + 'bsky-internal/use-exact-imports': 'error', 'bsky-internal/use-typed-gates': 'error', 'simple-import-sort/imports': [ 'warn', @@ -67,6 +69,8 @@ module.exports = { }, ], 'simple-import-sort/exports': 'warn', + // TODO: Reenable when we figure out why it gets stuck on CI. + // 'react-compiler/react-compiler': 'error', }, ignorePatterns: [ '**/__mocks__/*.ts', diff --git a/.github/workflows/build-and-push-link-aws.yaml b/.github/workflows/build-and-push-link-aws.yaml new file mode 100644 index 0000000000..1c17d6e190 --- /dev/null +++ b/.github/workflows/build-and-push-link-aws.yaml @@ -0,0 +1,53 @@ +name: build-and-push-link-aws +on: + workflow_dispatch: + +env: + REGISTRY: ${{ secrets.AWS_ECR_REGISTRY_USEAST2_PACKAGES_REGISTRY }} + USERNAME: ${{ secrets.AWS_ECR_REGISTRY_USEAST2_PACKAGES_USERNAME }} + PASSWORD: ${{ secrets.AWS_ECR_REGISTRY_USEAST2_PACKAGES_PASSWORD }} + IMAGE_NAME: bskylink + +jobs: + link-container-aws: + if: github.repository == 'bluesky-social/social-app' + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + id-token: write + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup Docker buildx + uses: docker/setup-buildx-action@v1 + + - name: Log into registry ${{ env.REGISTRY }} + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ env.USERNAME}} + password: ${{ env.PASSWORD }} + + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=sha,enable=true,priority=100,prefix=,suffix=,format=long + + - name: Build and push Docker image + id: build-and-push + uses: docker/build-push-action@v4 + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + file: ./Dockerfile.bskylink + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/build-and-push-ogcard-aws.yaml b/.github/workflows/build-and-push-ogcard-aws.yaml new file mode 100644 index 0000000000..8fb680a90d --- /dev/null +++ b/.github/workflows/build-and-push-ogcard-aws.yaml @@ -0,0 +1,53 @@ +name: build-and-push-ogcard-aws +on: + workflow_dispatch: + +env: + REGISTRY: ${{ secrets.AWS_ECR_REGISTRY_USEAST2_PACKAGES_REGISTRY }} + USERNAME: ${{ secrets.AWS_ECR_REGISTRY_USEAST2_PACKAGES_USERNAME }} + PASSWORD: ${{ secrets.AWS_ECR_REGISTRY_USEAST2_PACKAGES_PASSWORD }} + IMAGE_NAME: bskyogcard + +jobs: + ogcard-container-aws: + if: github.repository == 'bluesky-social/social-app' + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + id-token: write + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup Docker buildx + uses: docker/setup-buildx-action@v1 + + - name: Log into registry ${{ env.REGISTRY }} + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ env.USERNAME}} + password: ${{ env.PASSWORD }} + + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=sha,enable=true,priority=100,prefix=,suffix=,format=long + + - name: Build and push Docker image + id: build-and-push + uses: docker/build-push-action@v4 + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + file: ./Dockerfile.bskyogcard + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/build-submit-android.yml b/.github/workflows/build-submit-android.yml index e6ce20b86d..6914b63626 100644 --- a/.github/workflows/build-submit-android.yml +++ b/.github/workflows/build-submit-android.yml @@ -34,6 +34,9 @@ jobs: node-version-file: .nvmrc cache: yarn + - name: 🪛 Setup jq + uses: dcarbone/install-jq-action@v2 + - name: 🔨 Setup EAS uses: expo/expo-github-action@v8 with: @@ -96,13 +99,17 @@ jobs: name: build-${{ steps.timestamp.outputs.time }}.apk path: build.apk + - name: 📚 Get version from package.json + id: get-build-info + run: bash scripts/setGitHubOutput.sh + - name: 🔔 Notify Slack of Production Build if: ${{ inputs.profile == 'production' }} uses: slackapi/slack-github-action@v1.25.0 with: payload: | { - "text": "Android build is ready for submission. This is a production build! Download the artifact here: ${{ steps.upload-artifact-production.outputs.artifact-url }}" + "text": "Android production build for Google Play Store submission is ready!\n```Artifact: ${{ steps.upload-artifact-production.outputs.artifact-url }}\nVersion Number: ${{ steps.get-build-info.outputs.PACKAGE_VERSION }}\nBuild Number: ${{ steps.get-build-info.outputs.BSKY_ANDROID_VERSION_CODE }}```" } env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CLIENT_ALERT_WEBHOOK }} @@ -119,3 +126,41 @@ jobs: env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CLIENT_ALERT_WEBHOOK }} SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + + - name: 🏗️ Build Production APK + if: ${{ inputs.profile == 'production' }} + run: yarn use-build-number-with-bump eas build -p android --profile production-apk --local --output build.apk --non-interactive + + - name: 🚀 Upload Production APK Artifact + id: upload-artifact-production-apk + if: ${{ inputs.profile == 'production' }} + uses: actions/upload-artifact@v4 + with: + retention-days: 30 + compression-level: 6 + name: build-${{ steps.timestamp.outputs.time }}.apk + path: build.apk + + - name: 🔔 Notify Slack of Production APK Build + if: ${{ inputs.profile == 'production' }} + uses: slackapi/slack-github-action@v1.25.0 + with: + payload: | + { + "text": "Android production build for GitHub/Obtanium is ready!\n```Artifact: ${{ steps.upload-artifact-production-apk.outputs.artifact-url }}\nVersion Number: ${{ steps.get-build-info.outputs.PACKAGE_VERSION }}\nBuild Number: ${{ steps.get-build-info.outputs.BSKY_ANDROID_VERSION_CODE }}```" + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CLIENT_ALERT_WEBHOOK }} + SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + + - name: ⬇️ Restore Cache + id: get-base-commit + uses: actions/cache@v4 + if: ${{ inputs.profile == 'testflight' }} + with: + path: most-recent-testflight-commit.txt + key: most-recent-testflight-commit + + - name: ✏️ Write commit hash to cache + if: ${{ inputs.profile == 'testflight' }} + run: echo ${{ github.sha }} > most-recent-testflight-commit.txt diff --git a/.github/workflows/build-submit-ios.yml b/.github/workflows/build-submit-ios.yml index bfd0670956..284e666df2 100644 --- a/.github/workflows/build-submit-ios.yml +++ b/.github/workflows/build-submit-ios.yml @@ -34,6 +34,9 @@ jobs: node-version-file: .nvmrc cache: yarn + - name: 🪛 Setup jq + uses: dcarbone/install-jq-action@v2 + - name: 🔨 Setup EAS uses: expo/expo-github-action@v8 with: @@ -47,6 +50,10 @@ jobs: - name: ⚙️ Install dependencies run: yarn install + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '15.3' + - name: ☕️ Setup Cocoapods uses: maxim-lobanov/setup-cocoapods@v1 with: @@ -76,3 +83,31 @@ jobs: - name: 🚀 Deploy run: eas submit -p ios --non-interactive --path build.ipa + + - name: 📚 Get version from package.json + id: get-build-info + run: bash scripts/setGitHubOutput.sh + + - name: 🔔 Notify Slack of Production Build + if: ${{ inputs.profile == 'production' }} + uses: slackapi/slack-github-action@v1.25.0 + with: + payload: | + { + "text": "iOS production build for App Store submission is ready!\n```Artifact: Check TestFlight to know when it is available\nVersion Number: ${{ steps.get-build-info.outputs.PACKAGE_VERSION }}\nBuild Number: ${{ steps.get-build-info.outputs.BSKY_IOS_BUILD_NUMBER }}```" + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CLIENT_ALERT_WEBHOOK }} + SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + + - name: ⬇️ Restore Cache + id: get-base-commit + uses: actions/cache@v4 + if: ${{ inputs.profile == 'testflight' }} + with: + path: most-recent-testflight-commit.txt + key: most-recent-testflight-commit + + - name: ✏️ Write commit hash to cache + if: ${{ inputs.profile == 'testflight' }} + run: echo ${{ github.sha }} > most-recent-testflight-commit.txt diff --git a/.github/workflows/bundle-deploy-eas-update.yml b/.github/workflows/bundle-deploy-eas-update.yml index 3d49404677..a684f525fd 100644 --- a/.github/workflows/bundle-deploy-eas-update.yml +++ b/.github/workflows/bundle-deploy-eas-update.yml @@ -26,7 +26,7 @@ jobs: group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}-deploy cancel-in-progress: true outputs: - fingerprint-is-different: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different }} + changes-detected: ${{ steps.fingerprint.outputs.includes-changes }} steps: - name: Check for EXPO_TOKEN @@ -49,69 +49,22 @@ jobs: with: fetch-depth: 0 - - name: ⬇️ Get last successful deployment commit from the cache - id: get-base-commit - uses: actions/cache@v4 - with: - path: last-successful-commit-hash.txt - key: last-successful-deployment-commit-${{ github.ref_name }}-${{ github.sha }} - restore-keys: | - last-successful-deployment-commit-${{ github.ref_name }}- - - - name: Add the last successful deployment commit to the output - id: last-successful-commit - run: echo base-commit=$(cat last-successful-commit-hash.txt) >> "$GITHUB_OUTPUT" - - name: ⬇️ Fetch commits from base branch if: ${{ github.ref != 'refs/heads/main' }} run: git fetch origin main:main --depth 100 - # This should get the current production release's commit's hash to see if the update is compatible - - name: 🕵️ Get the base commit - id: base-commit - run: | - if ${{ inputs.channel == 'production' }}; then - echo base-commit=$(git show-ref -s ${{ inputs.runtimeVersion }}) >> "$GITHUB_OUTPUT" - else - echo base-commit=${{ steps.last-successful-commit.base-commit }} >> "$GITHUB_OUTPUT" - fi - - - name: ✓ Make sure we found a base commit - run: | - if [ -z "${{ steps.base-commit.outputs.base-commit }}" && ${{ inputs.channel == 'production' }} ]; then - echo "Could not find a base commit for this release. Exiting." - exit 1 - fi - - name: 🔧 Setup Node uses: actions/setup-node@v4 with: node-version-file: .nvmrc cache: yarn - - name: ⚙️ Install Dependencies - run: yarn install - - # Run the fingerprint - - name: 📷 Check fingerprint + - name: 📷 Check fingerprint and install dependencies id: fingerprint - uses: expo/expo-github-action/fingerprint@main + uses: bluesky-social/github-actions/fingerprint-native@main with: - previous-git-commit: ${{ steps.base-commit.outputs.base-commit }} - - - name: 👀 Debug fingerprint - id: fingerprint-debug - run: | - echo "previousGitCommit=${{ steps.fingerprint.outputs.previous-git-commit }} currentGitCommit=${{ steps.fingerprint.outputs.current-git-commit }}" - echo "isPreviousFingerprintEmpty=${{ steps.fingerprint.outputs.previous-fingerprint == '' }}" - - fingerprintDiff='$(echo "${{ steps.fingerprint.outputs.fingerprint-diff }}")' - - if [[ $fingerprintDiff =~ "bareRncliAutolinking" || $fingerprintDiff =~ "expoAutolinkingAndroid" || $fingerprintDiff =~ "expoAutolinkingIos" ]]; then - echo fingerprint-is-different="true" >> "$GITHUB_OUTPUT" - else - echo fingerprint-is-different="false" >> "$GITHUB_OUTPUT" - fi + profile: ${{ inputs.channel || 'testflight' }} + previous-commit-tag: ${{ inputs.runtimeVersion }} - name: Lint check run: yarn lint @@ -127,22 +80,22 @@ jobs: - name: 🔨 Setup EAS uses: expo/expo-github-action@v8 - if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}} + if: ${{ !steps.fingerprint.outputs.includes-changes }} with: expo-version: latest eas-version: latest token: ${{ secrets.EXPO_TOKEN }} - name: ⛏️ Setup Expo - if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}} + if: ${{ !steps.fingerprint.outputs.includes-changes }} run: yarn global add eas-cli-local-build-plugin - name: 🪛 Setup jq - if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}} + if: ${{ !steps.fingerprint.outputs.includes-changes }} uses: dcarbone/install-jq-action@v2 - name: ✏️ Write environment variables - if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}} + if: ${{ !steps.fingerprint.outputs.includes-changes }} run: | export json='${{ secrets.GOOGLE_SERVICES_TOKEN }}' echo "${{ secrets.ENV_TOKEN }}" > .env @@ -151,19 +104,28 @@ jobs: echo "$json" > google-services.json - name: 🏗️ Create Bundle - if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}} + if: ${{ !steps.fingerprint.outputs.includes-changes }} run: EXPO_PUBLIC_ENV="${{ inputs.channel || 'testflight' }}" yarn export - name: 📦 Package Bundle and 🚀 Deploy - if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}} + if: ${{ !steps.fingerprint.outputs.includes-changes }} run: yarn use-build-number bash scripts/bundleUpdate.sh env: DENIS_API_KEY: ${{ secrets.DENIS_API_KEY }} RUNTIME_VERSION: ${{ inputs.runtimeVersion }} CHANNEL_NAME: ${{ inputs.channel || 'testflight' }} - - name: Save successful deployment commit hash - run: echo ${{ steps.fingerprint.outputs.current-git-commit }} > last-successful-commit-hash.txt + - name: ⬇️ Restore Cache + id: get-base-commit + uses: actions/cache@v4 + if: ${{ !steps.fingerprint.outputs.includes-changes }} + with: + path: most-recent-testflight-commit.txt + key: most-recent-testflight-commit + + - name: ✏️ Write commit hash to cache + if: ${{ !steps.fingerprint.outputs.includes-changes }} + run: echo ${{ github.sha }} > most-recent-testflight-commit.txt # GitHub actions are horrible so let's just copy paste this in buildIfNecessaryIOS: @@ -171,11 +133,11 @@ jobs: runs-on: macos-14 concurrency: group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}-build-ios - cancel-in-progress: false + cancel-in-progress: true needs: [bundleDeploy] # Gotta check if its NOT '[]' because any md5 hash in the outputs is detected as a possible secret and won't be # available here - if: ${{ inputs.channel != 'production' && needs.bundleDeploy.outputs.fingerprint-is-different == 'true' }} + if: ${{ inputs.channel != 'production' && needs.bundleDeploy.outputs.changes-detected }} steps: - name: Check for EXPO_TOKEN run: > @@ -208,6 +170,10 @@ jobs: - name: ⚙️ Install dependencies run: yarn install + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '15.3' + - name: ☕️ Setup Cocoapods uses: maxim-lobanov/setup-cocoapods@v1 with: @@ -238,6 +204,18 @@ jobs: - name: 🚀 Deploy run: eas submit -p ios --non-interactive --path build.ipa + - name: ⬇️ Restore Cache + id: get-base-commit + uses: actions/cache@v4 + if: ${{ inputs.channel == 'testflight' }} + with: + path: most-recent-testflight-commit.txt + key: most-recent-testflight-commit + + - name: ✏️ Write commit hash to cache + if: ${{ inputs.channel == 'testflight' }} + run: echo ${{ github.sha }} > most-recent-testflight-commit.txt + buildIfNecessaryAndroid: name: Build and Submit Android runs-on: ubuntu-latest @@ -247,7 +225,7 @@ jobs: needs: [ bundleDeploy ] # Gotta check if its NOT '[]' because any md5 hash in the outputs is detected as a possible secret and won't be # available here - if: ${{ inputs.channel != 'production' && needs.bundleDeploy.outputs.fingerprint-is-different == 'true' }} + if: ${{ inputs.channel != 'production' && needs.bundleDeploy.outputs.changes-detected }} steps: - name: Check for EXPO_TOKEN @@ -325,3 +303,15 @@ jobs: env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CLIENT_ALERT_WEBHOOK }} SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + + - name: ⬇️ Restore Cache + id: get-base-commit + uses: actions/cache@v4 + if: ${{ inputs.channel != 'testflight' && inputs.channel != 'production' }} + with: + path: most-recent-testflight-commit.txt + key: most-recent-testflight-commit + + - name: ✏️ Write commit hash to cache + if: ${{ inputs.channel != 'testflight' && inputs.channel != 'production' }} + run: echo ${{ github.sha }} > most-recent-testflight-commit.txt diff --git a/.github/workflows/golang-test-lint.yml b/.github/workflows/golang-test-lint.yml index a87e7f1443..36e28841d5 100644 --- a/.github/workflows/golang-test-lint.yml +++ b/.github/workflows/golang-test-lint.yml @@ -19,7 +19,7 @@ jobs: - name: Set up Go tooling uses: actions/setup-go@v3 with: - go-version: '1.21' + go-version: '1.22' - name: Dummy Static Files run: touch bskyweb/static/js/blah.js && touch bskyweb/static/media/blah.txt - name: Check @@ -36,7 +36,7 @@ jobs: - name: Set up Go tooling uses: actions/setup-go@v3 with: - go-version: '1.21' + go-version: '1.22' - name: Dummy Static Files run: touch bskyweb/static/js/blah.js && touch bskyweb/static/media/blah.txt - name: Lint diff --git a/.github/workflows/pull-request-commit.yml b/.github/workflows/pull-request-commit.yml index 6c796fd7c4..53e3cc9983 100644 --- a/.github/workflows/pull-request-commit.yml +++ b/.github/workflows/pull-request-commit.yml @@ -1,7 +1,7 @@ # Credit for fingerprint action https://github.com/expo/expo # https://github.com/expo/expo/blob/main/.github/workflows/pr-labeler.yml --- -name: PR labeler +name: PR Tests on: push: @@ -21,7 +21,7 @@ permissions: jobs: webpack-analyzer: runs-on: ubuntu-22.04 - if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} + if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.event_name == 'pull_request'}} steps: - name: ⬇️ Checkout uses: actions/checkout@v4 @@ -94,10 +94,9 @@ jobs: | ${{ steps.get-diff.outputs.base_file_string }} | ${{ steps.get-diff.outputs.pr_file_string }} | ${{ steps.get-diff.outputs.diff_file_string }} (${{ steps.get-diff.outputs.percent }}%) | --- - test-suite-fingerprint: + fingerprint-native: runs-on: ubuntu-22.04 - if: ${{ github.event.pull_request.head.repo.full_name == github.repository || github.event_name == 'push' }} - concurrency: fingerprint-${{ github.event_name != 'pull_request' && 'main' || github.run_id }} + if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.event_name == 'pull_request'}} steps: - name: ⬇️ Checkout uses: actions/checkout@v4 @@ -114,35 +113,23 @@ jobs: node-version-file: .nvmrc cache: yarn - - name: ⚙️ Install Dependencies - run: yarn install - - - name: Get the base commit - id: base-commit - run: echo base-commit=$(git log -n 1 main --pretty=format:'%H') >> "$GITHUB_OUTPUT" - - - name: 📷 Check fingerprint + - name: 📷 Check fingerprint and install dependencies id: fingerprint - uses: expo/expo-github-action/fingerprint@main + uses: bluesky-social/github-actions/fingerprint-native@main with: - previous-git-commit: ${{ steps.base-commit.outputs.base-commit }} - - - name: 👀 Debug fingerprint - run: | - echo "previousGitCommit=${{ steps.fingerprint.outputs.previous-git-commit }} currentGitCommit=${{ steps.fingerprint.outputs.current-git-commit }}" - echo "isPreviousFingerprintEmpty=${{ steps.fingerprint.outputs.previous-fingerprint == '' }}" + profile: pull-request - name: 💬 Drop a comment uses: marocchino/sticky-pull-request-comment@v2 - if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff != '[]' }} + if: ${{ steps.fingerprint.outputs.includes-changes }} with: header: fingerprint-diff message: | - The Pull Request introduced fingerprint changes against the base commit: ${{ steps.fingerprint.outputs.previous-git-commit }} + The Pull Request introduced fingerprint changes against the base commit:
Fingerprint diff ```json - ${{ steps.fingerprint.outputs.fingerprint-diff }} + ${{ steps.fingerprint.outputs.diff }} ```
@@ -152,7 +139,7 @@ jobs: - name: 💬 Delete comment uses: marocchino/sticky-pull-request-comment@v2 - if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff == '[]' }} + if: ${{ !steps.fingerprint.outputs.includes-changes }} with: header: fingerprint-diff delete: true diff --git a/.gitignore b/.gitignore index a9e6bfb744..653e30730c 100644 --- a/.gitignore +++ b/.gitignore @@ -116,5 +116,8 @@ src/locale/locales/**/*.js *.aab *.ipa +# ogcard assets +bskyogcard/src/assets/fonts/noto-* + # license file bskyweb/static/ACKNOWLEDGEMENTS.txt diff --git a/.husky/pre-commit b/.husky/pre-commit index 5a182ef106..d24fdfc601 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -yarn lint-staged +npx lint-staged diff --git a/.prettierignore b/.prettierignore index abc221def2..641a1b8bfc 100644 --- a/.prettierignore +++ b/.prettierignore @@ -12,3 +12,4 @@ android ios src/locale/locales +lib/react-compiler-runtime diff --git a/Dockerfile b/Dockerfile index e8c4aaeece..7726435d15 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.21-bullseye AS build-env +FROM golang:1.22-bullseye AS build-env WORKDIR /usr/src/social-app diff --git a/Dockerfile.bskylink b/Dockerfile.bskylink new file mode 100644 index 0000000000..acde232256 --- /dev/null +++ b/Dockerfile.bskylink @@ -0,0 +1,41 @@ +FROM node:20.11-alpine3.18 as build + +# Move files into the image and install +WORKDIR /app + +COPY ./bskylink/package.json ./ +COPY ./bskylink/yarn.lock ./ +RUN yarn install --frozen-lockfile + +COPY ./bskylink ./ + +# build then prune dev deps +RUN yarn build +RUN yarn install --production --ignore-scripts --prefer-offline + +# Uses assets from build stage to reduce build size +FROM node:20.11-alpine3.18 + +RUN apk add --update dumb-init + +# Avoid zombie processes, handle signal forwarding +ENTRYPOINT ["dumb-init", "--"] + +WORKDIR /app +COPY --from=build /app /app +RUN mkdir /app/data && chown node /app/data + +VOLUME /app/data +EXPOSE 3000 +ENV LINK_PORT=3000 +ENV NODE_ENV=production +# potential perf issues w/ io_uring on this version of node +ENV UV_USE_IO_URING=0 + +# https://github.com/nodejs/docker-node/blob/master/docs/BestPractices.md#non-root-user +USER node +CMD ["node", "--heapsnapshot-signal=SIGUSR2", "--enable-source-maps", "dist/bin.js"] + +LABEL org.opencontainers.image.source=https://github.com/bluesky-social/social-app +LABEL org.opencontainers.image.description="Bsky Link Service" +LABEL org.opencontainers.image.licenses=UNLICENSED diff --git a/Dockerfile.bskyogcard b/Dockerfile.bskyogcard new file mode 100644 index 0000000000..a01f68937a --- /dev/null +++ b/Dockerfile.bskyogcard @@ -0,0 +1,41 @@ +FROM node:20.11-alpine3.18 as build + +# Move files into the image and install +WORKDIR /app + +COPY ./bskyogcard/package.json ./ +COPY ./bskyogcard/yarn.lock ./ +RUN yarn install --frozen-lockfile + +COPY ./bskyogcard ./ + +# build then prune dev deps +RUN yarn install-fonts && yarn build +RUN yarn install --production --ignore-scripts --prefer-offline + +# Uses assets from build stage to reduce build size +FROM node:20.11-alpine3.18 + +RUN apk add --update dumb-init + +# Avoid zombie processes, handle signal forwarding +ENTRYPOINT ["dumb-init", "--"] + +WORKDIR /app +COPY --from=build /app /app +RUN mkdir /app/data && chown node /app/data + +VOLUME /app/data +EXPOSE 3000 +ENV CARD_PORT=3000 +ENV NODE_ENV=production +# potential perf issues w/ io_uring on this version of node +ENV UV_USE_IO_URING=0 + +# https://github.com/nodejs/docker-node/blob/master/docs/BestPractices.md#non-root-user +USER node +CMD ["node", "--heapsnapshot-signal=SIGUSR2", "--enable-source-maps", "dist/bin.js"] + +LABEL org.opencontainers.image.source=https://github.com/bluesky-social/social-app +LABEL org.opencontainers.image.description="Bsky Card Service" +LABEL org.opencontainers.image.licenses=UNLICENSED diff --git a/Dockerfile.embedr b/Dockerfile.embedr index 63f0609809..9ff04aa5c7 100644 --- a/Dockerfile.embedr +++ b/Dockerfile.embedr @@ -1,4 +1,4 @@ -FROM golang:1.21-bullseye AS build-env +FROM golang:1.22-bullseye AS build-env WORKDIR /usr/src/social-app diff --git a/README.md b/README.md index 49c4b016ff..64bcbcea5e 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Get the app itself: ## Development Resources -This is a [React Native](https://reactnative.dev/) application, written in the TypeScript programming language. It builds on the `atproto` TypeScript packages (like [`@atproto/api`](https://www.npmjs.com/package/@atproto/api)), code for which is also on open source, but in [a different git repository](https://github.com/bluesky-social/atproto). +This is a [React Native](https://reactnative.dev/) application, written in the TypeScript programming language. It builds on the `atproto` TypeScript packages (like [`@atproto/api`](https://www.npmjs.com/package/@atproto/api)), code for which is also open source, but in [a different git repository](https://github.com/bluesky-social/atproto). There is a small amount of Go language source code (in `./bskyweb/`), for a web service that returns the React Native Web application. @@ -42,10 +42,10 @@ The Bluesky Social application encompasses a set of schemas and APIs built in th - Open an issue and give some time for discussion before submitting a PR. - Stay away from PRs like... - Changing "Post" to "Skeet." - - Refactoring the codebase, eg to replace mobx with redux or something. + - Refactoring the codebase, e.g., to replace MobX with Redux or something. - Adding entirely new features without prior discussion. -Remember, we serve a wide community of users. Our day to day involves us constantly asking "which top priority is our top priority." If you submit well-written PRs that solve problems concisely, that's an awesome contribution. Otherwise, as much as we'd love to accept your ideas and contributions, we really don't have the bandwidth. That's what forking is for! +Remember, we serve a wide community of users. Our day-to-day involves us constantly asking "which top priority is our top priority." If you submit well-written PRs that solve problems concisely, that's an awesome contribution. Otherwise, as much as we'd love to accept your ideas and contributions, we really don't have the bandwidth. That's what forking is for! ## Forking guidelines @@ -63,7 +63,7 @@ If you discover any security issues, please send an email to security@bsky.app. ## Are you a developer interested in building on atproto? -Bluesky is an open social network built on the AT Protocol, a flexible technology that will never lock developers out of the ecosystems that they help build. With atproto, third-party can be as seamless as first-party through custom feeds, federated services, clients, and more. +Bluesky is an open social network built on the AT Protocol, a flexible technology that will never lock developers out of the ecosystems that they help build. With atproto, third-party integration can be as seamless as first-party through custom feeds, federated services, clients, and more. ## License (MIT) diff --git a/__e2e__/flows/curate-lists.yml b/__e2e__/flows/curate-lists.yml index 35f4f800dc..a37bc07778 100644 --- a/__e2e__/flows/curate-lists.yml +++ b/__e2e__/flows/curate-lists.yml @@ -131,7 +131,7 @@ appId: xyz.blueskyweb.app - assertVisible: id: "feedItem-by-bob.test" - tapOn: - id: "bottomBarFeedsBtn" + id: "e2eGotoFeeds" - tapOn: id: "saved-feed-Good Ppl" - assertVisible: @@ -144,8 +144,7 @@ appId: xyz.blueskyweb.app id: "homeScreenFeedTabs-Good Ppl" - tapOn: id: "e2eGotoLists" -- tapOn: - id: "list-Good Ppl" +- tapOn: "Good Ppl" - tapOn: "About" - assertVisible: @@ -170,9 +169,8 @@ appId: xyz.blueskyweb.app id: "profilePager-selector" direction: LEFT - tapOn: - id: "profilePager-selector-5" -- tapOn: - id: "list-Good Ppl" + id: "profilePager-selector-6" +- tapOn: "Good Ppl" - tapOn: label: "Adds and removes users on curatelists from the profile" diff --git a/__e2e__/flows/feed-reorder.yml b/__e2e__/flows/feed-reorder.yml index 4b96a201ce..449df065d7 100644 --- a/__e2e__/flows/feed-reorder.yml +++ b/__e2e__/flows/feed-reorder.yml @@ -18,8 +18,7 @@ appId: xyz.blueskyweb.app direction: LEFT - tapOn: id: "profilePager-selector-4" -- tapOn: - id: "feed-alice-favs" +- tapOn: "alice-favs" - tapOn: "Pin to Home" - tapOn: id: "bottomBarHomeBtn" @@ -36,12 +35,15 @@ appId: xyz.blueskyweb.app id: "viewHeaderDrawerBtn" - tapOn: id: "menuItemButton-Feeds" -- tapOn: "Edit Saved Feeds" +- tapOn: + id: "editFeedsBtn" - tapOn: label: "Tap on down arrow" point: "79%,23%" - tapOn: - id: "bottomBarHomeBtn" + id: "viewHeaderDrawerBtn" +- tapOn: + id: "viewHeaderDrawerBtn" - assertVisible: id: "homeScreenFeedTabs-selector-0" text: "alice-favs" @@ -54,11 +56,15 @@ appId: xyz.blueskyweb.app id: "viewHeaderDrawerBtn" - tapOn: id: "menuItemButton-Feeds" +- tapOn: + id: "editFeedsBtn" - tapOn: label: "Tap on down arrow" point: "79%,23%" - tapOn: - id: "bottomBarHomeBtn" + id: "viewHeaderDrawerBtn" +- tapOn: + id: "viewHeaderDrawerBtn" - assertVisible: id: "homeScreenFeedTabs-selector-0" text: "Following" @@ -71,11 +77,15 @@ appId: xyz.blueskyweb.app id: "viewHeaderDrawerBtn" - tapOn: id: "menuItemButton-Feeds" +- tapOn: + id: "editFeedsBtn" - tapOn: label: "Tap on unpin" point: "91%,23%" - tapOn: - id: "bottomBarHomeBtn" + id: "viewHeaderDrawerBtn" +- tapOn: + id: "viewHeaderDrawerBtn" - assertVisible: id: "homeScreenFeedTabs-selector-0" text: "alice-favs" diff --git a/__e2e__/flows/home-screen.yml b/__e2e__/flows/home-screen.yml index 69a1fe37f4..c8d83fb1fa 100644 --- a/__e2e__/flows/home-screen.yml +++ b/__e2e__/flows/home-screen.yml @@ -23,11 +23,12 @@ appId: xyz.blueskyweb.app direction: LEFT - tapOn: id: "profilePager-selector-4" -- tapOn: - id: "feed-alice-favs" +- tapOn: "alice-favs" - tapOn: "Pin to Home" - tapOn: id: "bottomBarHomeBtn" +- tapOn: + id: "viewHeaderDrawerBtn" - assertNotVisible: "Feeds ✨" - tapOn: @@ -50,7 +51,7 @@ appId: xyz.blueskyweb.app text: "1" - tapOn: id: "repostBtn" -- tapOn: "Undo repost" +- tapOn: "Remove repost" - assertNotVisible: id: "repostCount" diff --git a/__e2e__/flows/onboarding-old.yml b/__e2e__/flows/onboarding-old.yml deleted file mode 100644 index dae24bb1c4..0000000000 --- a/__e2e__/flows/onboarding-old.yml +++ /dev/null @@ -1,31 +0,0 @@ -# Remove this test when the old onboarding is deprecated -appId: xyz.blueskyweb.app ---- -- runScript: - file: ../setupServer.js - env: - SERVER_PATH: "?users" -- runFlow: - file: ../setupApp.yml -- tapOn: - id: "e2eSignInAlice" -- tapOn: - id: "e2eStartLongboarding" -- tapOn: "Continue to next step" -- tapOn: "Continue to the next step without following any accounts" -- tapOn: Show replies in Following feed -- tapOn: Show quote-posts in Following feed -- tapOn: Show re-posts in Following feed -- tapOn: Show replies in Following feed -- waitForAnimationToEnd -- tapOn: Continue to next step -- waitForAnimationToEnd -- tapOn: "Continue to the next step" -- waitForAnimationToEnd -- tapOn: Continue to next step -- waitForAnimationToEnd -- tapOn: Continue to next step -- waitForAnimationToEnd -- tapOn: "Complete onboarding and start using your account" -- waitForAnimationToEnd -- assertVisible: Following \ No newline at end of file diff --git a/__e2e__/flows/profile-screen-edit.yml b/__e2e__/flows/profile-screen-edit.yml index 640f53882b..288a5d4f6d 100644 --- a/__e2e__/flows/profile-screen-edit.yml +++ b/__e2e__/flows/profile-screen-edit.yml @@ -21,8 +21,7 @@ appId: xyz.blueskyweb.app direction: LEFT - tapOn: id: "profilePager-selector-4" -- assertVisible: - id: "feed-alice-favs" +- assertVisible: "alice-favs" - swipe: from: id: "profilePager-selector" diff --git a/__e2e__/flows/shared-prefs.yml b/__e2e__/flows/shared-prefs.yml new file mode 100644 index 0000000000..73a0668298 --- /dev/null +++ b/__e2e__/flows/shared-prefs.yml @@ -0,0 +1,31 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: "?users&posts&feeds" +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eSignInAlice" +- tapOn: "/sys/debug" +- tapOn: + id: "sharedPrefsTestOpenBtn" +- tapOn: + id: "setStringBtn" +- assertVisible: "Hello" +- tapOn: + id: "removeStringBtn" +- assertVisible: "null" +- tapOn: + id: "setBoolBtn" +- assertVisible: "true" +- tapOn: + id: "setNumberBtn" +- assertVisible: "123" +- tapOn: + id: "addToSetBtn" +- assertVisible: "true" +- tapOn: + id: "removeFromSetBtn" +- assertVisible: "false" diff --git a/__e2e__/flows/thread-screen.yml b/__e2e__/flows/thread-screen.yml index 22f71345db..fdc732596b 100644 --- a/__e2e__/flows/thread-screen.yml +++ b/__e2e__/flows/thread-screen.yml @@ -58,7 +58,7 @@ appId: xyz.blueskyweb.app id: "repostBtn" childOf: id: "postThreadItem-by-bob.test" -- tapOn: "Undo repost" +- tapOn: "Remove repost" - assertNotVisible: id: "repostCount-expanded" @@ -77,7 +77,7 @@ appId: xyz.blueskyweb.app id: "repostBtn" childOf: id: "postThreadItem-by-carla.test" -- tapOn: "Undo repost" +- tapOn: "Remove repost" - assertNotVisible: id: "repostCount" childOf: diff --git a/__tests__/lib/string.test.ts b/__tests__/lib/string.test.ts index 75cbaeea56..f226de992b 100644 --- a/__tests__/lib/string.test.ts +++ b/__tests__/lib/string.test.ts @@ -1,12 +1,16 @@ import {RichText} from '@atproto/api' import {parseEmbedPlayerFromUrl} from 'lib/strings/embed-player' +import { + createStarterPackGooglePlayUri, + createStarterPackLinkFromAndroidReferrer, + parseStarterPackUri, +} from 'lib/strings/starter-pack' import {cleanError} from '../../src/lib/strings/errors' import {createFullHandle, makeValidHandle} from '../../src/lib/strings/handles' import {enforceLen} from '../../src/lib/strings/helpers' import {detectLinkables} from '../../src/lib/strings/rich-text-detection' import {shortenLinks} from '../../src/lib/strings/rich-text-manip' -import {ago} from '../../src/lib/strings/time' import { makeRecordUri, toNiceDomain, @@ -142,78 +146,6 @@ describe('makeRecordUri', () => { }) }) -describe('ago', () => { - const oneYearDate = new Date( - new Date().setMonth(new Date().getMonth() - 11), - ).setDate(new Date().getDate() - 28) - - const inputs = [ - 1671461038, - '04 Dec 1995 00:12:00 GMT', - new Date(), - new Date().setSeconds(new Date().getSeconds() - 10), - new Date().setMinutes(new Date().getMinutes() - 10), - new Date().setHours(new Date().getHours() - 1), - new Date().setDate(new Date().getDate() - 1), - new Date().setDate(new Date().getDate() - 20), - new Date().setDate(new Date().getDate() - 25), - new Date().setDate(new Date().getDate() - 28), - new Date().setDate(new Date().getDate() - 29), - new Date().setDate(new Date().getDate() - 30), - new Date().setMonth(new Date().getMonth() - 1), - new Date(new Date().setMonth(new Date().getMonth() - 1)).setDate( - new Date().getDate() - 20, - ), - new Date(new Date().setMonth(new Date().getMonth() - 1)).setDate( - new Date().getDate() - 25, - ), - new Date(new Date().setMonth(new Date().getMonth() - 1)).setDate( - new Date().getDate() - 28, - ), - new Date(new Date().setMonth(new Date().getMonth() - 1)).setDate( - new Date().getDate() - 29, - ), - new Date().setMonth(new Date().getMonth() - 11), - new Date(new Date().setMonth(new Date().getMonth() - 11)).setDate( - new Date().getDate() - 20, - ), - new Date(new Date().setMonth(new Date().getMonth() - 11)).setDate( - new Date().getDate() - 25, - ), - oneYearDate, - ] - const outputs = [ - new Date(1671461038).toLocaleDateString(), - new Date('04 Dec 1995 00:12:00 GMT').toLocaleDateString(), - 'now', - '10s', - '10m', - '1h', - '1d', - '20d', - '25d', - '28d', - '29d', - '1mo', - '1mo', - '1mo', - '1mo', - '2mo', - '2mo', - '11mo', - '11mo', - '11mo', - new Date(oneYearDate).toLocaleDateString(), - ] - - it('correctly calculates how much time passed, in a string', () => { - for (let i = 0; i < inputs.length; i++) { - const result = ago(inputs[i]) - expect(result).toEqual(outputs[i]) - } - }) -}) - describe('makeValidHandle', () => { const inputs = [ 'test-handle-123', @@ -408,12 +340,14 @@ describe('parseEmbedPlayerFromUrl', () => { 'https://youtube.com/watch?v=videoId', 'https://youtube.com/watch?v=videoId&feature=share', 'https://youtube.com/shorts/videoId', + 'https://youtube.com/live/videoId', 'https://m.youtube.com/watch?v=videoId', 'https://music.youtube.com/watch?v=videoId', 'https://youtube.com/shorts/', 'https://youtube.com/', 'https://youtube.com/random', + 'https://youtube.com/live/', 'https://twitch.tv/channelName', 'https://www.twitch.tv/channelName', @@ -479,6 +413,26 @@ describe('parseEmbedPlayerFromUrl', () => { 'https://media.tenor.com/someID/someName.gif', 'https://media.tenor.com/someID', 'https://media.tenor.com', + + 'https://www.flickr.com/photos/username/albums/72177720308493661', + 'https://flickr.com/photos/username/albums/72177720308493661', + 'https://flickr.com/photos/username/albums/72177720308493661/', + 'https://flickr.com/photos/username/albums/72177720308493661//', + 'https://flic.kr/s/aHBqjAES3i', + + 'https://flickr.com/foetoes/username/albums/3903', + 'https://flickr.com/albums/3903', + 'https://flic.kr/s/OolI', + 'https://flic.kr/t/aHBqjAES3i', + + 'https://www.flickr.com/groups/898944@N23/pool', + 'https://flickr.com/groups/898944@N23/pool', + 'https://flickr.com/groups/898944@N23/pool/', + 'https://flickr.com/groups/898944@N23/pool//', + 'https://flic.kr/go/8WJtR', + + 'https://www.flickr.com/groups/898944@N23/', + 'https://www.flickr.com/groups', ] const outputs = [ @@ -523,10 +477,16 @@ describe('parseEmbedPlayerFromUrl', () => { source: 'youtube', playerUri: 'https://bsky.app/iframe/youtube.html?videoId=videoId&start=0', }, + { + type: 'youtube_video', + source: 'youtube', + playerUri: 'https://bsky.app/iframe/youtube.html?videoId=videoId&start=0', + }, undefined, undefined, undefined, + undefined, { type: 'twitch_video', @@ -776,6 +736,66 @@ describe('parseEmbedPlayerFromUrl', () => { undefined, undefined, undefined, + + { + type: 'flickr_album', + source: 'flickr', + playerUri: 'https://embedr.flickr.com/photosets/72177720308493661', + }, + { + type: 'flickr_album', + source: 'flickr', + playerUri: 'https://embedr.flickr.com/photosets/72177720308493661', + }, + { + type: 'flickr_album', + source: 'flickr', + playerUri: 'https://embedr.flickr.com/photosets/72177720308493661', + }, + { + type: 'flickr_album', + source: 'flickr', + playerUri: 'https://embedr.flickr.com/photosets/72177720308493661', + }, + { + type: 'flickr_album', + source: 'flickr', + playerUri: 'https://embedr.flickr.com/photosets/72177720308493661', + }, + + undefined, + undefined, + undefined, + undefined, + + { + type: 'flickr_album', + source: 'flickr', + playerUri: 'https://embedr.flickr.com/groups/898944@N23', + }, + { + type: 'flickr_album', + source: 'flickr', + playerUri: 'https://embedr.flickr.com/groups/898944@N23', + }, + { + type: 'flickr_album', + source: 'flickr', + playerUri: 'https://embedr.flickr.com/groups/898944@N23', + }, + { + type: 'flickr_album', + source: 'flickr', + playerUri: 'https://embedr.flickr.com/groups/898944@N23', + }, + { + type: 'flickr_album', + source: 'flickr', + playerUri: 'https://embedr.flickr.com/groups/898944@N23', + }, + + undefined, + undefined, ] it('correctly grabs the correct id from uri', () => { @@ -789,3 +809,179 @@ describe('parseEmbedPlayerFromUrl', () => { } }) }) + +describe('createStarterPackLinkFromAndroidReferrer', () => { + const validOutput = 'at://haileyok.com/app.bsky.graph.starterpack/rkey' + + it('returns a link when input contains utm_source and utm_content', () => { + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_source=bluesky&utm_content=starterpack_haileyok.com_rkey', + ), + ).toEqual(validOutput) + + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_source=bluesky&utm_content=starterpack_test-lover-9000.com_rkey', + ), + ).toEqual('at://test-lover-9000.com/app.bsky.graph.starterpack/rkey') + }) + + it('returns a link when input contains utm_source and utm_content in different order', () => { + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_content=starterpack_haileyok.com_rkey&utm_source=bluesky', + ), + ).toEqual(validOutput) + }) + + it('returns a link when input contains other parameters as well', () => { + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_source=bluesky&utm_medium=starterpack&utm_content=starterpack_haileyok.com_rkey', + ), + ).toEqual(validOutput) + }) + + it('returns null when utm_source is not present', () => { + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_content=starterpack_haileyok.com_rkey', + ), + ).toEqual(null) + }) + + it('returns null when utm_content is not present', () => { + expect( + createStarterPackLinkFromAndroidReferrer('utm_source=bluesky'), + ).toEqual(null) + }) + + it('returns null when utm_content is malformed', () => { + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_content=starterpack_haileyok.com', + ), + ).toEqual(null) + + expect( + createStarterPackLinkFromAndroidReferrer('utm_content=starterpack'), + ).toEqual(null) + + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_content=starterpack_haileyok.com_rkey_more', + ), + ).toEqual(null) + + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_content=notastarterpack_haileyok.com_rkey', + ), + ).toEqual(null) + }) +}) + +describe('parseStarterPackHttpUri', () => { + const baseUri = 'https://bsky.app/start' + + it('returns a valid at uri when http uri is valid', () => { + const validHttpUri = `${baseUri}/haileyok.com/rkey` + expect(parseStarterPackUri(validHttpUri)).toEqual({ + name: 'haileyok.com', + rkey: 'rkey', + }) + + const validHttpUri2 = `${baseUri}/haileyok.com/ilovetesting` + expect(parseStarterPackUri(validHttpUri2)).toEqual({ + name: 'haileyok.com', + rkey: 'ilovetesting', + }) + + const validHttpUri3 = `${baseUri}/testlover9000.com/rkey` + expect(parseStarterPackUri(validHttpUri3)).toEqual({ + name: 'testlover9000.com', + rkey: 'rkey', + }) + }) + + it('returns null when there is no rkey', () => { + const validHttpUri = `${baseUri}/haileyok.com` + expect(parseStarterPackUri(validHttpUri)).toEqual(null) + }) + + it('returns null when there is an extra path', () => { + const validHttpUri = `${baseUri}/haileyok.com/rkey/other` + expect(parseStarterPackUri(validHttpUri)).toEqual(null) + }) + + it('returns null when there is no handle or rkey', () => { + const validHttpUri = `${baseUri}` + expect(parseStarterPackUri(validHttpUri)).toEqual(null) + }) + + it('returns null when the route is not /start or /starter-pack', () => { + const validHttpUri = 'https://bsky.app/start/haileyok.com/rkey' + expect(parseStarterPackUri(validHttpUri)).toEqual({ + name: 'haileyok.com', + rkey: 'rkey', + }) + + const validHttpUri2 = 'https://bsky.app/starter-pack/haileyok.com/rkey' + expect(parseStarterPackUri(validHttpUri2)).toEqual({ + name: 'haileyok.com', + rkey: 'rkey', + }) + + const invalidHttpUri = 'https://bsky.app/profile/haileyok.com/rkey' + expect(parseStarterPackUri(invalidHttpUri)).toEqual(null) + }) + + it('returns the at uri when the input is a valid starterpack at uri', () => { + const validAtUri = 'at://did:123/app.bsky.graph.starterpack/rkey' + expect(parseStarterPackUri(validAtUri)).toEqual({ + name: 'did:123', + rkey: 'rkey', + }) + }) + + it('returns null when the at uri has no rkey', () => { + const validAtUri = 'at://did:123/app.bsky.graph.starterpack' + expect(parseStarterPackUri(validAtUri)).toEqual(null) + }) + + it('returns null when the collection is not app.bsky.graph.starterpack', () => { + const validAtUri = 'at://did:123/app.bsky.graph.list/rkey' + expect(parseStarterPackUri(validAtUri)).toEqual(null) + }) + + it('returns null when the input is undefined', () => { + expect(parseStarterPackUri(undefined)).toEqual(null) + }) +}) + +describe('createStarterPackGooglePlayUri', () => { + const base = + 'https://play.google.com/store/apps/details?id=xyz.blueskyweb.app&referrer=utm_source%3Dbluesky%26utm_medium%3Dstarterpack%26utm_content%3Dstarterpack_' + + it('returns valid google play uri when input is valid', () => { + expect(createStarterPackGooglePlayUri('name', 'rkey')).toEqual( + `${base}name_rkey`, + ) + }) + + it('returns null when no rkey is supplied', () => { + // @ts-expect-error test + expect(createStarterPackGooglePlayUri('name', undefined)).toEqual(null) + }) + + it('returns null when no name or rkey are supplied', () => { + // @ts-expect-error test + expect(createStarterPackGooglePlayUri(undefined, undefined)).toEqual(null) + }) + + it('returns null when rkey is supplied but no name', () => { + // @ts-expect-error test + expect(createStarterPackGooglePlayUri(undefined, 'rkey')).toEqual(null) + }) +}) diff --git a/app.config.js b/app.config.js index 4ade9de31a..cd8a4b034b 100644 --- a/app.config.js +++ b/app.config.js @@ -39,6 +39,15 @@ module.exports = function (config) { const IS_TESTFLIGHT = process.env.EXPO_PUBLIC_ENV === 'testflight' const IS_PRODUCTION = process.env.EXPO_PUBLIC_ENV === 'production' + const ASSOCIATED_DOMAINS = [ + 'applinks:bsky.app', + 'applinks:staging.bsky.app', + 'appclips:bsky.app', + 'appclips:go.bsky.app', // Allows App Clip to work when scanning QR codes + // When testing local services, enter an ngrok (et al) domain here. It must use a standard HTTP/HTTPS port. + ...(IS_DEV || IS_TESTFLIGHT ? [] : []), + ] + const UPDATES_CHANNEL = IS_TESTFLIGHT ? 'testflight' : IS_PRODUCTION @@ -83,7 +92,7 @@ module.exports = function (config) { NSPhotoLibraryUsageDescription: 'Used for profile pictures, posts, and other kinds of content', }, - associatedDomains: ['applinks:bsky.app', 'applinks:staging.bsky.app'], + associatedDomains: ASSOCIATED_DOMAINS, splash: { ...SPLASH_CONFIG, dark: DARK_SPLASH_CONFIG, @@ -175,7 +184,6 @@ module.exports = function (config) { checkAutomatically: 'NEVER', channel: UPDATES_CHANNEL, }, - assetBundlePatterns: ['**/*'], plugins: [ 'expo-localization', Boolean(process.env.SENTRY_AUTH_TOKEN) && 'sentry-expo', @@ -183,7 +191,7 @@ module.exports = function (config) { 'expo-build-properties', { ios: { - deploymentTarget: '13.4', + deploymentTarget: '14.0', newArchEnabled: false, }, android: { @@ -203,6 +211,9 @@ module.exports = function (config) { sounds: PLATFORM === 'ios' ? ['assets/dm.aiff'] : ['assets/dm.mp3'], }, ], + 'expo-video', + 'react-native-compressor', + './plugins/starterPackAppClipExtension/withStarterPackAppClip.js', './plugins/withAndroidManifestPlugin.js', './plugins/withAndroidManifestFCMIconPlugin.js', './plugins/withAndroidStylesWindowBackgroundPlugin.js', @@ -210,6 +221,7 @@ module.exports = function (config) { './plugins/withAndroidSplashScreenStatusBarTranslucentPlugin.js', './plugins/shareExtension/withShareExtensions.js', './plugins/notificationsExtension/withNotificationsExtension.js', + './plugins/withAppDelegateReferrer.js', ].filter(Boolean), extra: { eas: { @@ -235,6 +247,10 @@ module.exports = function (config) { ], }, }, + { + targetName: 'BlueskyClip', + bundleIdentifier: 'xyz.blueskyweb.app.AppClip', + }, ], }, }, diff --git a/assets/icons/arrowBottom_stroke2_corner0_rounded.svg b/assets/icons/arrowBottom_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..5f4a11e09a --- /dev/null +++ b/assets/icons/arrowBottom_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/arrowRight_stroke2_corner0_rounded.svg b/assets/icons/arrowRight_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..dbbbbc2c12 --- /dev/null +++ b/assets/icons/arrowRight_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/arrowsDiagonalIn_stroke2_corner0_rounded.svg b/assets/icons/arrowsDiagonalIn_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..a9532cd9c6 --- /dev/null +++ b/assets/icons/arrowsDiagonalIn_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/arrowsDiagonalIn_stroke2_corner2_rounded.svg b/assets/icons/arrowsDiagonalIn_stroke2_corner2_rounded.svg new file mode 100644 index 0000000000..9b92e533eb --- /dev/null +++ b/assets/icons/arrowsDiagonalIn_stroke2_corner2_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/arrowsDiagonalOut_stroke2_corner0_rounded.svg b/assets/icons/arrowsDiagonalOut_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..9987b34406 --- /dev/null +++ b/assets/icons/arrowsDiagonalOut_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/arrowsDiagonalOut_stroke2_corner2_rounded.svg b/assets/icons/arrowsDiagonalOut_stroke2_corner2_rounded.svg new file mode 100644 index 0000000000..36d8e1d67c --- /dev/null +++ b/assets/icons/arrowsDiagonalOut_stroke2_corner2_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/cc_filled_stroke2_corner0_rounded.svg b/assets/icons/cc_filled_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..58823ca80d --- /dev/null +++ b/assets/icons/cc_filled_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/cc_stroke2_corner0_rounded.svg b/assets/icons/cc_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..fcda1570f9 --- /dev/null +++ b/assets/icons/cc_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/closeQuote_filled_stroke2_corner0_rounded.svg b/assets/icons/closeQuote_filled_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..41e75887c0 --- /dev/null +++ b/assets/icons/closeQuote_filled_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/closeQuote_stroke2_corner0_rounded.svg b/assets/icons/closeQuote_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..3c76c73920 --- /dev/null +++ b/assets/icons/closeQuote_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/closeQuote_stroke2_corner1_rounded.svg b/assets/icons/closeQuote_stroke2_corner1_rounded.svg new file mode 100644 index 0000000000..b27eb94f23 --- /dev/null +++ b/assets/icons/closeQuote_stroke2_corner1_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/earth_stroke2_corner0_rounded.svg b/assets/icons/earth_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..02d2fe0b0e --- /dev/null +++ b/assets/icons/earth_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/image_stroke2_corner0_rounded.svg b/assets/icons/image_stroke2_corner0_rounded.svg index 389020b0d1..3363e186db 100644 --- a/assets/icons/image_stroke2_corner0_rounded.svg +++ b/assets/icons/image_stroke2_corner0_rounded.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/assets/icons/listPlus_stroke2_corner0_rounded.svg b/assets/icons/listPlus_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..c1f38e43b9 --- /dev/null +++ b/assets/icons/listPlus_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/menu_stroke2_corner0_rounded.svg b/assets/icons/menu_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..4a5ad3bdf8 --- /dev/null +++ b/assets/icons/menu_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/moon_stroke2_corner2_rounded.svg b/assets/icons/moon_stroke2_corner2_rounded.svg new file mode 100644 index 0000000000..8f5c03699b --- /dev/null +++ b/assets/icons/moon_stroke2_corner2_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/newskie.svg b/assets/icons/newskie.svg new file mode 100644 index 0000000000..e3a9d83c80 --- /dev/null +++ b/assets/icons/newskie.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/openQuote_filled_stroke2_corner0_rounded.svg b/assets/icons/openQuote_filled_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..e8141a1128 --- /dev/null +++ b/assets/icons/openQuote_filled_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/openQuote_stroke2_corner0_rounded.svg b/assets/icons/openQuote_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..eee6344cee --- /dev/null +++ b/assets/icons/openQuote_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/pause_filled_corner0_rounded.svg b/assets/icons/pause_filled_corner0_rounded.svg new file mode 100644 index 0000000000..0037701f90 --- /dev/null +++ b/assets/icons/pause_filled_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/pause_filled_corner2_rounded.svg b/assets/icons/pause_filled_corner2_rounded.svg new file mode 100644 index 0000000000..98726d873e --- /dev/null +++ b/assets/icons/pause_filled_corner2_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/pause_stroke2_corner0_rounded.svg b/assets/icons/pause_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..d2735ed2bd --- /dev/null +++ b/assets/icons/pause_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/pause_stroke2_corner2_rounded.svg b/assets/icons/pause_stroke2_corner2_rounded.svg new file mode 100644 index 0000000000..3a8c0b4379 --- /dev/null +++ b/assets/icons/pause_stroke2_corner2_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/personPlus_filled_stroke2_corner0_rounded.svg b/assets/icons/personPlus_filled_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..d46976d84b --- /dev/null +++ b/assets/icons/personPlus_filled_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/personPlus_stroke2_corner0_rounded.svg b/assets/icons/personPlus_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..118268bf97 --- /dev/null +++ b/assets/icons/personPlus_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/phone_stroke2_corner2_rounded.svg b/assets/icons/phone_stroke2_corner2_rounded.svg new file mode 100644 index 0000000000..4f44f08e52 --- /dev/null +++ b/assets/icons/phone_stroke2_corner2_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/pin_stroke2_corner0_rounded.svg b/assets/icons/pin_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..8942f9dec9 --- /dev/null +++ b/assets/icons/pin_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/play_filled_corner0_rounded.svg b/assets/icons/play_filled_corner0_rounded.svg new file mode 100644 index 0000000000..7bee1ae9a3 --- /dev/null +++ b/assets/icons/play_filled_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/play_filled_corner2_rounded.svg b/assets/icons/play_filled_corner2_rounded.svg new file mode 100644 index 0000000000..e25e8d4628 --- /dev/null +++ b/assets/icons/play_filled_corner2_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/play_stroke2_corner0_rounded.svg b/assets/icons/play_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..d7321b9b7b --- /dev/null +++ b/assets/icons/play_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/play_stroke2_corner2_rounded.svg b/assets/icons/play_stroke2_corner2_rounded.svg new file mode 100644 index 0000000000..54bba91fb9 --- /dev/null +++ b/assets/icons/play_stroke2_corner2_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/qrCode_stroke2_corner0_rounded.svg b/assets/icons/qrCode_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..b17db39533 --- /dev/null +++ b/assets/icons/qrCode_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/repost_stroke2_corner0_rounded.svg b/assets/icons/repost_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..a3cff9c62d --- /dev/null +++ b/assets/icons/repost_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/repost_stroke2_corner3_rounded.svg b/assets/icons/repost_stroke2_corner3_rounded.svg new file mode 100644 index 0000000000..8aa7f727bd --- /dev/null +++ b/assets/icons/repost_stroke2_corner3_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/shapes_stroke2_corner0_rounded.svg b/assets/icons/shapes_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..6d6baee6d4 --- /dev/null +++ b/assets/icons/shapes_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/star_filled_corner0_rounded.svg b/assets/icons/star_filled_corner0_rounded.svg new file mode 100644 index 0000000000..d7d99cafc0 --- /dev/null +++ b/assets/icons/star_filled_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/star_stroke2_corner0_rounded.svg b/assets/icons/star_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..694b73487c --- /dev/null +++ b/assets/icons/star_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/starterPack.svg b/assets/icons/starterPack.svg new file mode 100644 index 0000000000..7f0df55952 --- /dev/null +++ b/assets/icons/starterPack.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/starter_pack_icon.svg b/assets/icons/starter_pack_icon.svg new file mode 100644 index 0000000000..47a2f49b64 --- /dev/null +++ b/assets/icons/starter_pack_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/videoClip_stroke2_corner0_rounded.svg b/assets/icons/videoClip_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..fd4c08d478 --- /dev/null +++ b/assets/icons/videoClip_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000..cc2d660341 Binary files /dev/null and b/assets/logo.png differ diff --git a/babel.config.js b/babel.config.js index 43b2c7bce3..c976d04b67 100644 --- a/babel.config.js +++ b/babel.config.js @@ -8,9 +8,6 @@ module.exports = function (api) { { lazyImports: true, native: { - // We should be able to remove this after upgrading Expo - // to a version that includes https://github.com/expo/expo/pull/24672. - unstable_transformProfile: 'hermes-stable', // Disable ESM -> CJS compilation because Metro takes care of it. // However, we need it in Jest tests since those run without Metro. disableImportExportTransform: !isTestEnv, @@ -19,6 +16,13 @@ module.exports = function (api) { ], ], plugins: [ + 'macros', + [ + 'babel-plugin-react-compiler', + { + runtimeModule: 'react-compiler-runtime', + }, + ], [ 'module:react-native-dotenv', { @@ -46,7 +50,6 @@ module.exports = function (api) { }, }, ], - 'macros', 'react-native-reanimated/plugin', // NOTE: this plugin MUST be last ], env: { diff --git a/bskyembed/.eslintrc b/bskyembed/.eslintrc index 339900dd09..2b290d5815 100644 --- a/bskyembed/.eslintrc +++ b/bskyembed/.eslintrc @@ -10,11 +10,12 @@ ], "rules": { "simple-import-sort/imports": "warn", - "simple-import-sort/exports": "warn" + "simple-import-sort/exports": "warn", + 'no-else-return': 'off' }, "parserOptions": { "sourceType": "module", "ecmaVersion": "latest", - "project": "./tsconfig.json" + "project": "./bskyembed/tsconfig.json" } -} \ No newline at end of file +} diff --git a/bskyembed/assets/starterPack.svg b/bskyembed/assets/starterPack.svg new file mode 100644 index 0000000000..eb8dd710fe --- /dev/null +++ b/bskyembed/assets/starterPack.svg @@ -0,0 +1 @@ + diff --git a/bskyembed/package.json b/bskyembed/package.json index f610e8c064..cb9a46213b 100644 --- a/bskyembed/package.json +++ b/bskyembed/package.json @@ -9,7 +9,7 @@ "lint": "eslint --cache --ext .js,.jsx,.ts,.tsx src" }, "dependencies": { - "@atproto/api": "^0.12.2", + "@atproto/api": "0.13.1", "@preact/preset-vite": "^2.8.2", "@vitejs/plugin-legacy": "^5.3.2", "preact": "^10.4.8", diff --git a/bskyembed/src/components/embed.tsx b/bskyembed/src/components/embed.tsx index 4457defce4..600c7c2c3a 100644 --- a/bskyembed/src/components/embed.tsx +++ b/bskyembed/src/components/embed.tsx @@ -6,12 +6,15 @@ import { AppBskyFeedDefs, AppBskyFeedPost, AppBskyGraphDefs, + AppBskyGraphStarterpack, AppBskyLabelerDefs, + AtUri, } from '@atproto/api' import {ComponentChildren, h} from 'preact' import {useMemo} from 'preact/hooks' import infoIcon from '../../assets/circleInfo_stroke2_corner0_rounded.svg' +import starterPackIcon from '../../assets/starterPack.svg' import {CONTENT_LABELS, labelsToInfo} from '../labels' import {getRkey} from '../utils' import {Link} from './link' @@ -105,7 +108,7 @@ export function Embed({ // Case 3.2: List if (AppBskyGraphDefs.isListView(record)) { return ( - - ) + // Embed type does not exist in the app, so show nothing + return null } - // Case 3.5: Post not found + // Case 3.5: Starter pack + if (AppBskyGraphDefs.isStarterPackViewBasic(record)) { + return + } + + // Case 3.6: Post not found if (AppBskyEmbedRecord.isViewNotFound(record)) { return Quoted post not found, it may have been deleted. } - // Case 3.6: Post blocked + // Case 3.7: Post blocked if (AppBskyEmbedRecord.isViewBlocked(record)) { return The quoted post is blocked. } - throw new Error('Unknown embed type') + // Unknown embed type + return null } // Case 4: Record with media @@ -182,7 +184,8 @@ export function Embed({ ) } - throw new Error('Unsupported embed type') + // Unknown embed type + return null } catch (err) { return ( {err instanceof Error ? err.message : 'An error occurred'} @@ -193,7 +196,7 @@ export function Embed({ function Info({children}: {children: ComponentChildren}) { return (
- +

{children}

) @@ -293,7 +296,8 @@ function ExternalEmbed({ return ( + className="w-full rounded-lg overflow-hidden border flex flex-col items-stretch" + disableTracking> {content.external.thumb && ( ) } + +function StarterPackEmbed({ + content, +}: { + content: AppBskyGraphDefs.StarterPackViewBasic +}) { + if (!AppBskyGraphStarterpack.isRecord(content.record)) { + return null + } + + const starterPackHref = getStarterPackHref(content) + const imageUri = getStarterPackImage(content) + + return ( + + +
+
+ +
+

+ {content.record.name} +

+

+ Starter pack by{' '} + {content.creator.displayName || `@${content.creator.handle}`} +

+
+
+ {content.record.description && ( +

{content.record.description}

+ )} + {!!content.joinedAllTimeCount && content.joinedAllTimeCount > 50 && ( +

+ {content.joinedAllTimeCount} users have joined! +

+ )} +
+ + ) +} + +// from #/lib/strings/starter-pack.ts +function getStarterPackImage(starterPack: AppBskyGraphDefs.StarterPackView) { + const rkey = new AtUri(starterPack.uri).rkey + return `https://ogcard.cdn.bsky.app/start/${starterPack.creator.did}/${rkey}` +} + +function getStarterPackHref( + starterPack: AppBskyGraphDefs.StarterPackViewBasic, +) { + const rkey = new AtUri(starterPack.uri).rkey + const handleOrDid = starterPack.creator.handle || starterPack.creator.did + return `/starter-pack/${handleOrDid}/${rkey}` +} diff --git a/bskyembed/src/components/link.tsx b/bskyembed/src/components/link.tsx index 64c2c9a83b..8a20fe5c10 100644 --- a/bskyembed/src/components/link.tsx +++ b/bskyembed/src/components/link.tsx @@ -3,10 +3,12 @@ import {h} from 'preact' export function Link({ href, className, + disableTracking, ...props }: { href: string className?: string + disableTracking?: boolean } & h.JSX.HTMLAttributes) { const searchParam = new URLSearchParams(window.location.search) const ref_url = searchParam.get('ref_url') @@ -19,9 +21,9 @@ export function Link({ return ( evt.stopPropagation()} diff --git a/bskyembed/src/components/post.tsx b/bskyembed/src/components/post.tsx index 3f2c745bdd..1d1e8f4d81 100644 --- a/bskyembed/src/components/post.tsx +++ b/bskyembed/src/components/post.tsx @@ -1,4 +1,9 @@ -import {AppBskyFeedDefs, AppBskyFeedPost, RichText} from '@atproto/api' +import { + AppBskyFeedDefs, + AppBskyFeedPost, + AppBskyRichtextFacet, + RichText, +} from '@atproto/api' import {h} from 'preact' import replyIcon from '../../assets/bubble_filled_stroke2_corner2_rounded.svg' @@ -56,7 +61,7 @@ export function Post({thread}: Props) { - + @@ -71,7 +76,7 @@ export function Post({thread}: Props) {
{!!post.likeCount && (
- +

{post.likeCount}

@@ -79,14 +84,14 @@ export function Post({thread}: Props) { )} {!!post.repostCount && (
- +

{post.repostCount}

)}
- +

Reply

@@ -118,16 +123,26 @@ function PostContent({record}: {record: AppBskyFeedPost.Record | null}) { let counter = 0 for (const segment of rt.segments()) { - if (segment.isLink() && segment.link) { + if ( + segment.link && + AppBskyRichtextFacet.validateLink(segment.link).success + ) { richText.push( + className="text-blue-400 hover:underline" + disableTracking={ + !segment.link.uri.startsWith('https://bsky.app') && + !segment.link.uri.startsWith('https://go.bsky.app') + }> {segment.text} , ) - } else if (segment.isMention() && segment.mention) { + } else if ( + segment.mention && + AppBskyRichtextFacet.validateMention(segment.mention).success + ) { richText.push( , ) - } else if (segment.isTag() && segment.tag) { + } else if ( + segment.tag && + AppBskyRichtextFacet.validateTag(segment.tag).success + ) { richText.push( - +

Embed a Bluesky Post

@@ -125,7 +125,7 @@ function LandingPage() { placeholder={DEFAULT_POST} /> - + {loading ? ( diff --git a/bskyembed/src/screens/post.tsx b/bskyembed/src/screens/post.tsx index 365227cd47..6ccf10a791 100644 --- a/bskyembed/src/screens/post.tsx +++ b/bskyembed/src/screens/post.tsx @@ -1,6 +1,6 @@ import '../index.css' -import {AppBskyFeedDefs, BskyAgent} from '@atproto/api' +import {AppBskyFeedDefs, AtpAgent} from '@atproto/api' import {h, render} from 'preact' import logo from '../../assets/logo.svg' @@ -12,7 +12,7 @@ import {getRkey} from '../utils' const root = document.getElementById('app') if (!root) throw new Error('No root element') -const agent = new BskyAgent({ +const agent = new AtpAgent({ service: 'https://public.api.bsky.app', }) @@ -52,7 +52,7 @@ function PwiOptOut({thread}: {thread: AppBskyFeedDefs.ThreadViewPost}) { - +

@@ -75,7 +75,7 @@ function ErrorMessage() { - +

Post not found, it may have been deleted. diff --git a/bskyembed/yarn.lock b/bskyembed/yarn.lock index 60efe36845..ca52dc0747 100644 --- a/bskyembed/yarn.lock +++ b/bskyembed/yarn.lock @@ -20,15 +20,16 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@atproto/api@^0.12.2": - version "0.12.2" - resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.12.2.tgz#5df6d4f60dea0395c84fdebd9e81a7e853edf130" - integrity sha512-UVzCiDZH2j0wrr/O8nb1edD5cYLVqB5iujueXUCbHS3rAwIxgmyLtA3Hzm2QYsGPo/+xsIg1fNvpq9rNT6KWUA== +"@atproto/api@0.13.1": + version "0.13.1" + resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.13.1.tgz#fbf4306e4465d5467aaf031308c1b47dcc8039d0" + integrity sha512-DL3iBfavn8Nnl48FmnAreQB0k0cIkW531DJ5JAHUCQZo10Nq0ZLk2/WFxcs0KuBG5wuLnGUdo+Y6/GQPVq8dYw== dependencies: "@atproto/common-web" "^0.3.0" - "@atproto/lexicon" "^0.4.0" + "@atproto/lexicon" "^0.4.1" "@atproto/syntax" "^0.3.0" - "@atproto/xrpc" "^0.5.0" + "@atproto/xrpc" "^0.6.0" + await-lock "^2.2.2" multiformats "^9.9.0" tlds "^1.234.0" @@ -42,29 +43,29 @@ uint8arrays "3.0.0" zod "^3.21.4" -"@atproto/lexicon@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@atproto/lexicon/-/lexicon-0.4.0.tgz#63e8829945d80c25524882caa8ed27b1151cc576" - integrity sha512-RvCBKdSI4M8qWm5uTNz1z3R2yIvIhmOsMuleOj8YR6BwRD+QbtUBy3l+xQ7iXf4M5fdfJFxaUNa6Ty0iRwdKqQ== +"@atproto/lexicon@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@atproto/lexicon/-/lexicon-0.4.1.tgz#19155210570a2fafbcc7d4f655d9b813948e72a0" + integrity sha512-bzyr+/VHXLQWbumViX5L7h1NKQObfs8Z+XZJl43OUK8nYFUI4e/sW1IZKRNfw7Wvi5YVNK+J+yP3DWIBZhkCYA== dependencies: "@atproto/common-web" "^0.3.0" "@atproto/syntax" "^0.3.0" iso-datestring-validator "^2.2.2" multiformats "^9.9.0" - zod "^3.21.4" + zod "^3.23.8" "@atproto/syntax@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@atproto/syntax/-/syntax-0.3.0.tgz#fafa2dbea9add37253005cb663e7373e05e618b3" integrity sha512-Weq0ZBxffGHDXHl9U7BQc2BFJi/e23AL+k+i5+D9hUq/bzT4yjGsrCejkjq0xt82xXDjmhhvQSZ0LqxyZ5woxA== -"@atproto/xrpc@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@atproto/xrpc/-/xrpc-0.5.0.tgz#dacbfd8f7b13f0ab5bd56f8fdd4b460e132a6032" - integrity sha512-swu+wyOLvYW4l3n+VAuJbHcPcES+tin2Lsrp8Bw5aIXIICiuFn1YMFlwK9JwVUzTH21Py1s1nHEjr4CJeElJog== +"@atproto/xrpc@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@atproto/xrpc/-/xrpc-0.6.0.tgz#668c3262e67e2afa65951ea79a03bfe3720ddf5c" + integrity sha512-5BbhBTv5j6MC3iIQ4+vYxQE7nLy2dDGQ+LYJrH8PptOCUdq0Pwg6aRccQ3y52kUZlhE/mzOTZ8Ngiy9pSAyfVQ== dependencies: - "@atproto/lexicon" "^0.4.0" - zod "^3.21.4" + "@atproto/lexicon" "^0.4.1" + zod "^3.23.8" "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2": version "7.24.2" @@ -1710,6 +1711,11 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" +await-lock@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/await-lock/-/await-lock-2.2.2.tgz#a95a9b269bfd2f69d22b17a321686f551152bcef" + integrity sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw== + babel-plugin-polyfill-corejs2@^0.4.10: version "0.4.10" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz#276f41710b03a64f6467433cab72cbc2653c38b1" @@ -3730,8 +3736,16 @@ stack-trace@^1.0.0-pre2: resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-1.0.0-pre2.tgz#46a83a79f1b287807e9aaafc6a5dd8bcde626f9c" integrity sha512-2ztBJRek8IVofG9DBJqdy2N5kulaacX30Nz7xmkYF6ale9WBVmIy6mFBchvGX7Vx/MyjBhx+Rcxqrj+dbOnQ6A== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: - name string-width-cjs +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -3795,7 +3809,14 @@ string.prototype.trimstart@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -4192,3 +4213,8 @@ zod@^3.21.4: version "3.22.4" resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== + +zod@^3.23.8: + version "3.23.8" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== diff --git a/bskylink/package.json b/bskylink/package.json new file mode 100644 index 0000000000..5fdee206b4 --- /dev/null +++ b/bskylink/package.json @@ -0,0 +1,26 @@ +{ + "name": "bskylink", + "version": "0.0.0", + "type": "module", + "main": "index.ts", + "scripts": { + "test": "./tests/infra/with-test-db.sh node --loader ts-node/esm --test ./tests/index.ts", + "build": "tsc" + }, + "dependencies": { + "@atproto/common": "^0.4.0", + "body-parser": "^1.20.2", + "cors": "^2.8.5", + "express": "^4.19.2", + "http-terminator": "^3.2.0", + "kysely": "^0.27.3", + "pg": "^8.12.0", + "pino": "^9.2.0", + "uint8arrays": "^5.1.0" + }, + "devDependencies": { + "@types/cors": "^2.8.17", + "@types/pg": "^8.11.6", + "typescript": "^5.4.5" + } +} diff --git a/bskylink/src/bin.ts b/bskylink/src/bin.ts new file mode 100644 index 0000000000..17f068841b --- /dev/null +++ b/bskylink/src/bin.ts @@ -0,0 +1,24 @@ +import {Database, envToCfg, httpLogger, LinkService, readEnv} from './index.js' + +async function main() { + const env = readEnv() + const cfg = envToCfg(env) + if (cfg.db.migrationUrl) { + const migrateDb = Database.postgres({ + url: cfg.db.migrationUrl, + schema: cfg.db.schema, + }) + await migrateDb.migrateToLatestOrThrow() + await migrateDb.close() + } + const link = await LinkService.create(cfg) + await link.start() + httpLogger.info('link service is running') + process.on('SIGTERM', async () => { + httpLogger.info('link service is stopping') + await link.destroy() + httpLogger.info('link service is stopped') + }) +} + +main() diff --git a/bskylink/src/config.ts b/bskylink/src/config.ts new file mode 100644 index 0000000000..ce409cccca --- /dev/null +++ b/bskylink/src/config.ts @@ -0,0 +1,82 @@ +import {envInt, envList, envStr} from '@atproto/common' + +export type Config = { + service: ServiceConfig + db: DbConfig +} + +export type ServiceConfig = { + port: number + version?: string + hostnames: string[] + appHostname: string +} + +export type DbConfig = { + url: string + migrationUrl?: string + pool: DbPoolConfig + schema?: string +} + +export type DbPoolConfig = { + size: number + maxUses: number + idleTimeoutMs: number +} + +export type Environment = { + port?: number + version?: string + hostnames: string[] + appHostname?: string + dbPostgresUrl?: string + dbPostgresMigrationUrl?: string + dbPostgresSchema?: string + dbPostgresPoolSize?: number + dbPostgresPoolMaxUses?: number + dbPostgresPoolIdleTimeoutMs?: number +} + +export const readEnv = (): Environment => { + return { + port: envInt('LINK_PORT'), + version: envStr('LINK_VERSION'), + hostnames: envList('LINK_HOSTNAMES'), + appHostname: envStr('LINK_APP_HOSTNAME'), + dbPostgresUrl: envStr('LINK_DB_POSTGRES_URL'), + dbPostgresMigrationUrl: envStr('LINK_DB_POSTGRES_MIGRATION_URL'), + dbPostgresSchema: envStr('LINK_DB_POSTGRES_SCHEMA'), + dbPostgresPoolSize: envInt('LINK_DB_POSTGRES_POOL_SIZE'), + dbPostgresPoolMaxUses: envInt('LINK_DB_POSTGRES_POOL_MAX_USES'), + dbPostgresPoolIdleTimeoutMs: envInt( + 'LINK_DB_POSTGRES_POOL_IDLE_TIMEOUT_MS', + ), + } +} + +export const envToCfg = (env: Environment): Config => { + const serviceCfg: ServiceConfig = { + port: env.port ?? 3000, + version: env.version, + hostnames: env.hostnames, + appHostname: env.appHostname || 'bsky.app', + } + if (!env.dbPostgresUrl) { + throw new Error('Must configure postgres url (LINK_DB_POSTGRES_URL)') + } + const dbCfg: DbConfig = { + url: env.dbPostgresUrl, + migrationUrl: env.dbPostgresMigrationUrl, + schema: env.dbPostgresSchema, + pool: { + idleTimeoutMs: env.dbPostgresPoolIdleTimeoutMs ?? 10000, + maxUses: env.dbPostgresPoolMaxUses ?? Infinity, + size: env.dbPostgresPoolSize ?? 10, + }, + } + return { + service: serviceCfg, + db: dbCfg, + } +} diff --git a/bskylink/src/context.ts b/bskylink/src/context.ts new file mode 100644 index 0000000000..7e6f2f34e8 --- /dev/null +++ b/bskylink/src/context.ts @@ -0,0 +1,33 @@ +import {Config} from './config.js' +import Database from './db/index.js' + +export type AppContextOptions = { + cfg: Config + db: Database +} + +export class AppContext { + cfg: Config + db: Database + abortController = new AbortController() + + constructor(private opts: AppContextOptions) { + this.cfg = this.opts.cfg + this.db = this.opts.db + } + + static async fromConfig(cfg: Config, overrides?: Partial) { + const db = Database.postgres({ + url: cfg.db.url, + schema: cfg.db.schema, + poolSize: cfg.db.pool.size, + poolMaxUses: cfg.db.pool.maxUses, + poolIdleTimeoutMs: cfg.db.pool.idleTimeoutMs, + }) + return new AppContext({ + cfg, + db, + ...overrides, + }) + } +} diff --git a/bskylink/src/db/index.ts b/bskylink/src/db/index.ts new file mode 100644 index 0000000000..5f201cc07d --- /dev/null +++ b/bskylink/src/db/index.ts @@ -0,0 +1,174 @@ +import assert from 'assert' +import { + Kysely, + KyselyPlugin, + Migrator, + PluginTransformQueryArgs, + PluginTransformResultArgs, + PostgresDialect, + QueryResult, + RootOperationNode, + UnknownRow, +} from 'kysely' +import {default as Pg} from 'pg' + +import {dbLogger as log} from '../logger.js' +import {default as migrations} from './migrations/index.js' +import {DbMigrationProvider} from './migrations/provider.js' +import {DbSchema} from './schema.js' + +export class Database { + migrator: Migrator + destroyed = false + + constructor(public db: Kysely, public cfg: PgConfig) { + this.migrator = new Migrator({ + db, + migrationTableSchema: cfg.schema, + provider: new DbMigrationProvider(migrations), + }) + } + + static postgres(opts: PgOptions): Database { + const {schema, url, txLockNonce} = opts + const pool = + opts.pool ?? + new Pg.Pool({ + connectionString: url, + max: opts.poolSize, + maxUses: opts.poolMaxUses, + idleTimeoutMillis: opts.poolIdleTimeoutMs, + }) + + // Select count(*) and other pg bigints as js integer + Pg.types.setTypeParser(Pg.types.builtins.INT8, n => parseInt(n, 10)) + + // Setup schema usage, primarily for test parallelism (each test suite runs in its own pg schema) + if (schema && !/^[a-z_]+$/i.test(schema)) { + throw new Error(`Postgres schema must only contain [A-Za-z_]: ${schema}`) + } + + pool.on('error', onPoolError) + + const db = new Kysely({ + dialect: new PostgresDialect({pool}), + }) + + return new Database(db, { + pool, + schema, + url, + txLockNonce, + }) + } + + async transaction(fn: (db: Database) => Promise): Promise { + const leakyTxPlugin = new LeakyTxPlugin() + return this.db + .withPlugin(leakyTxPlugin) + .transaction() + .execute(txn => { + const dbTxn = new Database(txn, this.cfg) + return fn(dbTxn) + .catch(async err => { + leakyTxPlugin.endTx() + // ensure that all in-flight queries are flushed & the connection is open + await dbTxn.db.getExecutor().provideConnection(async () => {}) + throw err + }) + .finally(() => leakyTxPlugin.endTx()) + }) + } + + get schema(): string | undefined { + return this.cfg.schema + } + + get isTransaction() { + return this.db.isTransaction + } + + assertTransaction() { + assert(this.isTransaction, 'Transaction required') + } + + assertNotTransaction() { + assert(!this.isTransaction, 'Cannot be in a transaction') + } + + async close(): Promise { + if (this.destroyed) return + await this.db.destroy() + this.destroyed = true + } + + async migrateToOrThrow(migration: string) { + if (this.schema) { + await this.db.schema.createSchema(this.schema).ifNotExists().execute() + } + const {error, results} = await this.migrator.migrateTo(migration) + if (error) { + throw error + } + if (!results) { + throw new Error('An unknown failure occurred while migrating') + } + return results + } + + async migrateToLatestOrThrow() { + if (this.schema) { + await this.db.schema.createSchema(this.schema).ifNotExists().execute() + } + const {error, results} = await this.migrator.migrateToLatest() + if (error) { + throw error + } + if (!results) { + throw new Error('An unknown failure occurred while migrating') + } + return results + } +} + +export default Database + +export type PgConfig = { + pool: Pg.Pool + url: string + schema?: string + txLockNonce?: string +} + +type PgOptions = { + url: string + pool?: Pg.Pool + schema?: string + poolSize?: number + poolMaxUses?: number + poolIdleTimeoutMs?: number + txLockNonce?: string +} + +class LeakyTxPlugin implements KyselyPlugin { + private txOver = false + + endTx() { + this.txOver = true + } + + transformQuery(args: PluginTransformQueryArgs): RootOperationNode { + if (this.txOver) { + throw new Error('tx already failed') + } + return args.node + } + + async transformResult( + args: PluginTransformResultArgs, + ): Promise> { + return args.result + } +} + +const onPoolError = (err: Error) => log.error({err}, 'db pool error') diff --git a/bskylink/src/db/migrations/001-init.ts b/bskylink/src/db/migrations/001-init.ts new file mode 100644 index 0000000000..fe3bcf1867 --- /dev/null +++ b/bskylink/src/db/migrations/001-init.ts @@ -0,0 +1,15 @@ +import {Kysely} from 'kysely' + +export async function up(db: Kysely): Promise { + await db.schema + .createTable('link') + .addColumn('id', 'varchar', col => col.primaryKey()) + .addColumn('type', 'smallint', col => col.notNull()) // integer enum: 1->starterpack + .addColumn('path', 'varchar', col => col.notNull()) + .addUniqueConstraint('link_path_unique', ['path']) + .execute() +} + +export async function down(db: Kysely): Promise { + await db.schema.dropTable('link').execute() +} diff --git a/bskylink/src/db/migrations/index.ts b/bskylink/src/db/migrations/index.ts new file mode 100644 index 0000000000..05e4de9377 --- /dev/null +++ b/bskylink/src/db/migrations/index.ts @@ -0,0 +1,5 @@ +import * as init from './001-init.js' + +export default { + '001': init, +} diff --git a/bskylink/src/db/migrations/provider.ts b/bskylink/src/db/migrations/provider.ts new file mode 100644 index 0000000000..bef93a48fd --- /dev/null +++ b/bskylink/src/db/migrations/provider.ts @@ -0,0 +1,8 @@ +import {Migration, MigrationProvider} from 'kysely' + +export class DbMigrationProvider implements MigrationProvider { + constructor(private migrations: Record) {} + async getMigrations(): Promise> { + return this.migrations + } +} diff --git a/bskylink/src/db/schema.ts b/bskylink/src/db/schema.ts new file mode 100644 index 0000000000..8d97f58005 --- /dev/null +++ b/bskylink/src/db/schema.ts @@ -0,0 +1,17 @@ +import {Selectable} from 'kysely' + +export type DbSchema = { + link: Link +} + +export interface Link { + id: string + type: LinkType + path: string +} + +export enum LinkType { + StarterPack = 1, +} + +export type LinkEntry = Selectable diff --git a/bskylink/src/index.ts b/bskylink/src/index.ts new file mode 100644 index 0000000000..ca425eee8c --- /dev/null +++ b/bskylink/src/index.ts @@ -0,0 +1,45 @@ +import events from 'node:events' +import http from 'node:http' + +import cors from 'cors' +import express from 'express' +import {createHttpTerminator, HttpTerminator} from 'http-terminator' + +import {Config} from './config.js' +import {AppContext} from './context.js' +import {default as routes, errorHandler} from './routes/index.js' + +export * from './config.js' +export * from './db/index.js' +export * from './logger.js' + +export class LinkService { + public server?: http.Server + private terminator?: HttpTerminator + + constructor(public app: express.Application, public ctx: AppContext) {} + + static async create(cfg: Config): Promise { + let app = express() + app.use(cors()) + + const ctx = await AppContext.fromConfig(cfg) + app = routes(ctx, app) + app.use(errorHandler) + + return new LinkService(app, ctx) + } + + async start() { + this.server = this.app.listen(this.ctx.cfg.service.port) + this.server.keepAliveTimeout = 90000 + this.terminator = createHttpTerminator({server: this.server}) + await events.once(this.server, 'listening') + } + + async destroy() { + this.ctx.abortController.abort() + await this.terminator?.terminate() + await this.ctx.db.close() + } +} diff --git a/bskylink/src/logger.ts b/bskylink/src/logger.ts new file mode 100644 index 0000000000..25bb590a1d --- /dev/null +++ b/bskylink/src/logger.ts @@ -0,0 +1,4 @@ +import {subsystemLogger} from '@atproto/common' + +export const httpLogger = subsystemLogger('bskylink') +export const dbLogger = subsystemLogger('bskylink:db') diff --git a/bskylink/src/routes/create.ts b/bskylink/src/routes/create.ts new file mode 100644 index 0000000000..db7c3f8090 --- /dev/null +++ b/bskylink/src/routes/create.ts @@ -0,0 +1,111 @@ +import assert from 'node:assert' + +import bodyParser from 'body-parser' +import {Express, Request} from 'express' + +import {AppContext} from '../context.js' +import {LinkType} from '../db/schema.js' +import {randomId} from '../util.js' +import {handler} from './util.js' + +export default function (ctx: AppContext, app: Express) { + return app.post( + '/link', + bodyParser.json(), + handler(async (req, res) => { + let path: string + if (typeof req.body?.path === 'string') { + path = req.body.path + } else { + return res.status(400).json({ + error: 'InvalidPath', + message: '"path" parameter is missing or not a string', + }) + } + if (!path.startsWith('/')) { + return res.status(400).json({ + error: 'InvalidPath', + message: + '"path" parameter must be formatted as a path, starting with a "/"', + }) + } + const parts = getPathParts(path) + if (parts.length === 3 && parts[0] === 'start') { + // link pattern: /start/{did}/{rkey} + if (!parts[1].startsWith('did:')) { + // enforce strong links + return res.status(400).json({ + error: 'InvalidPath', + message: + '"path" parameter for starter pack must contain the actor\'s DID', + }) + } + const id = await ensureLink(ctx, LinkType.StarterPack, parts) + return res.json({url: getUrl(ctx, req, id)}) + } + return res.status(400).json({ + error: 'InvalidPath', + message: '"path" parameter does not have a known format', + }) + }), + ) +} + +const ensureLink = async (ctx: AppContext, type: LinkType, parts: string[]) => { + const normalizedPath = normalizedPathFromParts(parts) + const created = await ctx.db.db + .insertInto('link') + .values({ + id: randomId(), + type, + path: normalizedPath, + }) + .onConflict(oc => oc.column('path').doNothing()) + .returningAll() + .executeTakeFirst() + if (created) { + return created.id + } + const found = await ctx.db.db + .selectFrom('link') + .selectAll() + .where('path', '=', normalizedPath) + .executeTakeFirstOrThrow() + return found.id +} + +const getUrl = (ctx: AppContext, req: Request, id: string) => { + if (!ctx.cfg.service.hostnames.length) { + assert(req.headers.host, 'request must be made with host header') + const baseUrl = + req.protocol === 'http' && req.headers.host.startsWith('localhost:') + ? `http://${req.headers.host}` + : `https://${req.headers.host}` + return `${baseUrl}/${id}` + } + const baseUrl = ctx.cfg.service.hostnames.includes(req.headers.host) + ? `https://${req.headers.host}` + : `https://${ctx.cfg.service.hostnames[0]}` + return `${baseUrl}/${id}` +} + +const normalizedPathFromParts = (parts: string[]): string => { + return ( + '/' + + parts + .map(encodeURIComponent) + .map(part => part.replaceAll('%3A', ':')) // preserve colons + .join('/') + ) +} + +const getPathParts = (path: string): string[] => { + if (path === '/') return [] + if (path.endsWith('/')) { + path = path.slice(0, -1) // ignore trailing slash + } + return path + .slice(1) // remove leading slash + .split('/') + .map(decodeURIComponent) +} diff --git a/bskylink/src/routes/health.ts b/bskylink/src/routes/health.ts new file mode 100644 index 0000000000..c8a30c59ea --- /dev/null +++ b/bskylink/src/routes/health.ts @@ -0,0 +1,20 @@ +import {Express} from 'express' +import {sql} from 'kysely' + +import {AppContext} from '../context.js' +import {handler} from './util.js' + +export default function (ctx: AppContext, app: Express) { + return app.get( + '/_health', + handler(async (_req, res) => { + const {version} = ctx.cfg.service + try { + await sql`select 1`.execute(ctx.db.db) + return res.send({version}) + } catch (err) { + return res.status(503).send({version, error: 'Service Unavailable'}) + } + }), + ) +} diff --git a/bskylink/src/routes/index.ts b/bskylink/src/routes/index.ts new file mode 100644 index 0000000000..f60b99bcb7 --- /dev/null +++ b/bskylink/src/routes/index.ts @@ -0,0 +1,17 @@ +import {Express} from 'express' + +import {AppContext} from '../context.js' +import {default as create} from './create.js' +import {default as health} from './health.js' +import {default as redirect} from './redirect.js' +import {default as siteAssociation} from './siteAssociation.js' + +export * from './util.js' + +export default function (ctx: AppContext, app: Express) { + app = health(ctx, app) // GET /_health + app = siteAssociation(ctx, app) // GET /.well-known/apple-app-site-association + app = create(ctx, app) // POST /link + app = redirect(ctx, app) // GET /:linkId (should go last due to permissive matching) + return app +} diff --git a/bskylink/src/routes/redirect.ts b/bskylink/src/routes/redirect.ts new file mode 100644 index 0000000000..276aae1ca1 --- /dev/null +++ b/bskylink/src/routes/redirect.ts @@ -0,0 +1,54 @@ +import assert from 'node:assert' + +import {DAY, SECOND} from '@atproto/common' +import {Express} from 'express' + +import {AppContext} from '../context.js' +import {handler} from './util.js' + +export default function (ctx: AppContext, app: Express) { + return app.get( + '/:linkId', + handler(async (req, res) => { + const linkId = req.params.linkId + const contentType = req.accepts(['html', 'json']) + assert( + typeof linkId === 'string', + 'express guarantees id parameter is a string', + ) + const found = await ctx.db.db + .selectFrom('link') + .selectAll() + .where('id', '=', linkId) + .executeTakeFirst() + if (!found) { + // potentially broken or mistyped link + res.setHeader('Cache-Control', 'no-store') + if (contentType === 'json') { + return res + .status(404) + .json({ + error: 'NotFound', + message: 'Link not found', + }) + .end() + } + // send the user to the app + res.setHeader('Location', `https://${ctx.cfg.service.appHostname}`) + return res.status(302).end() + } + // build url from original url in order to preserve query params + const url = new URL( + req.originalUrl, + `https://${ctx.cfg.service.appHostname}`, + ) + url.pathname = found.path + res.setHeader('Cache-Control', `max-age=${(7 * DAY) / SECOND}`) + if (contentType === 'json') { + return res.json({url: url.href}).end() + } + res.setHeader('Location', url.href) + return res.status(301).end() + }), + ) +} diff --git a/bskylink/src/routes/siteAssociation.ts b/bskylink/src/routes/siteAssociation.ts new file mode 100644 index 0000000000..7b71ccdd57 --- /dev/null +++ b/bskylink/src/routes/siteAssociation.ts @@ -0,0 +1,22 @@ +import {Express} from 'express' + +import {AppContext} from '../context.js' + +export default function (ctx: AppContext, app: Express) { + return app.get('/.well-known/apple-app-site-association', (req, res) => { + res.json({ + applinks: { + apps: [], + details: [ + { + appID: 'B3LX46C5HS.xyz.blueskyweb.app', + paths: ['*'], + }, + ], + }, + appclips: { + apps: ['B3LX46C5HS.xyz.blueskyweb.app.AppClip'], + }, + }) + }) +} diff --git a/bskylink/src/routes/util.ts b/bskylink/src/routes/util.ts new file mode 100644 index 0000000000..bcac64b01d --- /dev/null +++ b/bskylink/src/routes/util.ts @@ -0,0 +1,23 @@ +import {ErrorRequestHandler, Request, RequestHandler, Response} from 'express' + +import {httpLogger} from '../logger.js' + +export type Handler = (req: Request, res: Response) => Awaited + +export const handler = (runHandler: Handler): RequestHandler => { + return async (req, res, next) => { + try { + await runHandler(req, res) + } catch (err) { + next(err) + } + } +} + +export const errorHandler: ErrorRequestHandler = (err, _req, res, next) => { + httpLogger.error({err}, 'request error') + if (res.headersSent) { + return next(err) + } + return res.status(500).end('server error') +} diff --git a/bskylink/src/util.ts b/bskylink/src/util.ts new file mode 100644 index 0000000000..0b57dd5c5b --- /dev/null +++ b/bskylink/src/util.ts @@ -0,0 +1,8 @@ +import {randomBytes} from 'node:crypto' + +import {toString} from 'uint8arrays' + +// 40bit random id of 5-7 characters +export const randomId = () => { + return toString(randomBytes(5), 'base58btc') +} diff --git a/bskylink/tests/index.ts b/bskylink/tests/index.ts new file mode 100644 index 0000000000..c5604c7a12 --- /dev/null +++ b/bskylink/tests/index.ts @@ -0,0 +1,123 @@ +import assert from 'node:assert' +import {AddressInfo} from 'node:net' +import {after, before, describe, it} from 'node:test' + +import {Database, envToCfg, LinkService, readEnv} from '../src/index.js' + +describe('link service', async () => { + let linkService: LinkService + let baseUrl: string + before(async () => { + const env = readEnv() + const cfg = envToCfg({ + ...env, + hostnames: ['test.bsky.link'], + appHostname: 'test.bsky.app', + dbPostgresSchema: 'link_test', + dbPostgresUrl: process.env.DB_POSTGRES_URL, + }) + const migrateDb = Database.postgres({ + url: cfg.db.url, + schema: cfg.db.schema, + }) + await migrateDb.migrateToLatestOrThrow() + await migrateDb.close() + linkService = await LinkService.create(cfg) + await linkService.start() + const {port} = linkService.server?.address() as AddressInfo + baseUrl = `http://localhost:${port}` + }) + + after(async () => { + await linkService?.destroy() + }) + + it('creates a starter pack link', async () => { + const link = await getLink('/start/did:example:alice/xxx') + const url = new URL(link) + assert.strictEqual(url.origin, 'https://test.bsky.link') + assert.match(url.pathname, /^\/[a-z0-9]+$/i) + }) + + it('normalizes input paths and provides same link each time.', async () => { + const link1 = await getLink('/start/did%3Aexample%3Abob/yyy') + const link2 = await getLink('/start/did:example:bob/yyy/') + assert.strictEqual(link1, link2) + }) + + it('serves permanent redirect, preserving query params.', async () => { + const link = await getLink('/start/did:example:carol/zzz/') + const [status, location] = await getRedirect(`${link}?a=b`) + assert.strictEqual(status, 301) + const locationUrl = new URL(location) + assert.strictEqual( + locationUrl.pathname + locationUrl.search, + '/start/did:example:carol/zzz?a=b', + ) + }) + + it('returns json object with url when requested', async () => { + const link = await getLink('/start/did:example:carol/zzz/') + const [status, json] = await getJsonRedirect(link) + assert.strictEqual(status, 200) + assert(json.url) + const url = new URL(json.url) + assert.strictEqual(url.pathname, '/start/did:example:carol/zzz') + }) + + it('returns 404 for unknown link when requesting json', async () => { + const [status, json] = await getJsonRedirect( + 'https://test.bsky.link/unknown', + ) + assert(json.error) + assert(json.message) + assert.strictEqual(status, 404) + assert.strictEqual(json.error, 'NotFound') + assert.strictEqual(json.message, 'Link not found') + }) + + async function getRedirect(link: string): Promise<[number, string]> { + const url = new URL(link) + const base = new URL(baseUrl) + url.protocol = base.protocol + url.host = base.host + const res = await fetch(url, {redirect: 'manual'}) + await res.arrayBuffer() // drain + assert( + res.status === 301 || res.status === 303, + 'response was not a redirect', + ) + return [res.status, res.headers.get('location') ?? ''] + } + + async function getJsonRedirect( + link: string, + ): Promise<[number, {url?: string; error?: string; message?: string}]> { + const url = new URL(link) + const base = new URL(baseUrl) + url.protocol = base.protocol + url.host = base.host + const res = await fetch(url, { + redirect: 'manual', + headers: {accept: 'application/json,text/html'}, + }) + assert( + res.headers.get('content-type')?.startsWith('application/json'), + 'content type was not json', + ) + const json = await res.json() + return [res.status, json] + } + + async function getLink(path: string): Promise { + const res = await fetch(new URL('/link', baseUrl), { + method: 'post', + headers: {'content-type': 'application/json'}, + body: JSON.stringify({path}), + }) + assert.strictEqual(res.status, 200) + const payload = await res.json() + assert(typeof payload.url === 'string') + return payload.url + } +}) diff --git a/bskylink/tests/infra/_common.sh b/bskylink/tests/infra/_common.sh new file mode 100755 index 0000000000..1587f5c70a --- /dev/null +++ b/bskylink/tests/infra/_common.sh @@ -0,0 +1,157 @@ +#!/usr/bin/env sh + +# Exit if any command fails +set -e + +get_container_id() { + local compose_file=$1 + local service=$2 + if [ -z "${compose_file}" ] || [ -z "${service}" ]; then + echo "usage: get_container_id " + exit 1 + fi + + # first line of jq normalizes for docker compose breaking change, see docker/compose#10958 + docker compose --file $compose_file ps --format json --status running \ + | jq -sc '.[] | if type=="array" then .[] else . end' | jq -s \ + | jq -r '.[]? | select(.Service == "'${service}'") | .ID' +} + +# Exports all environment variables +export_env() { + export_pg_env +} + +# Exports postgres environment variables +export_pg_env() { + # Based on creds in compose.yaml + export PGPORT=5433 + export PGHOST=localhost + export PGUSER=pg + export PGPASSWORD=password + export PGDATABASE=postgres + export DB_POSTGRES_URL="postgresql://pg:password@127.0.0.1:5433/postgres" +} + + +pg_clear() { + local pg_uri=$1 + + for schema_name in `psql "${pg_uri}" -c "SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT LIKE 'pg_%' AND schema_name NOT LIKE 'information_schema';" -t`; do + psql "${pg_uri}" -c "DROP SCHEMA \"${schema_name}\" CASCADE;" + done +} + +pg_init() { + local pg_uri=$1 + + psql "${pg_uri}" -c "CREATE SCHEMA IF NOT EXISTS \"public\";" +} + +main_native() { + local services=${SERVICES} + local postgres_url_env_var=`[[ $services == *"db_test"* ]] && echo "DB_TEST_POSTGRES_URL" || echo "DB_POSTGRES_URL"` + + postgres_url="${!postgres_url_env_var}" + + if [ -n "${postgres_url}" ]; then + echo "Using ${postgres_url_env_var} (${postgres_url}) to connect to postgres." + pg_init "${postgres_url}" + else + echo "Postgres connection string missing did you set ${postgres_url_env_var}?" + exit 1 + fi + + cleanup() { + local services=$@ + + if [ -n "${postgres_url}" ] && [[ $services == *"db_test"* ]]; then + pg_clear "${postgres_url}" &> /dev/null + fi + } + + # trap SIGINT and performs cleanup + trap "on_sigint ${services}" INT + on_sigint() { + cleanup $@ + exit $? + } + + # Run the arguments as a command + DB_POSTGRES_URL="${postgres_url}" \ + "$@" + code=$? + + cleanup ${services} + + exit ${code} +} + +main_docker() { + # Expect a SERVICES env var to be set with the docker service names + local services=${SERVICES} + + dir=$(dirname $0) + compose_file="${dir}/docker-compose.yaml" + + # whether this particular script started the container(s) + started_container=false + + # performs cleanup as necessary, i.e. taking down containers + # if this script started them + cleanup() { + local services=$@ + echo # newline + if $started_container; then + docker compose --file $compose_file rm --force --stop --volumes ${services} + fi + } + + # trap SIGINT and performs cleanup + trap "on_sigint ${services}" INT + on_sigint() { + cleanup $@ + exit $? + } + + # check if all services are running already + not_running=false + for service in $services; do + container_id=$(get_container_id $compose_file $service) + if [ -z $container_id ]; then + not_running=true + break + fi + done + + # if any are missing, recreate all services + if $not_running; then + started_container=true + docker compose --file $compose_file up --wait --force-recreate ${services} + else + echo "all services ${services} are already running" + fi + + # do not exit when following commands fail, so we can intercept exit code & tear down docker + set +e + + # setup environment variables and run args + export_env + "$@" + # save return code for later + code=$? + + # performs cleanup as necessary + cleanup ${services} + exit ${code} +} + +# Main entry point +main() { + if ! docker ps >/dev/null 2>&1; then + echo "Docker unavailable. Running on host." + main_native $@ + else + main_docker $@ + fi +} diff --git a/bskylink/tests/infra/docker-compose.yaml b/bskylink/tests/infra/docker-compose.yaml new file mode 100644 index 0000000000..4bc939e01c --- /dev/null +++ b/bskylink/tests/infra/docker-compose.yaml @@ -0,0 +1,27 @@ +version: '3.8' +services: + # An ephermerally-stored postgres database for single-use test runs + db_test: &db_test + image: postgres:14.11-alpine + environment: + - POSTGRES_USER=pg + - POSTGRES_PASSWORD=password + ports: + - '5433:5432' + # Healthcheck ensures db is queryable when `docker-compose up --wait` completes + healthcheck: + test: 'pg_isready -U pg' + interval: 500ms + timeout: 10s + retries: 20 + # A persistently-stored postgres database + db: + <<: *db_test + ports: + - '5432:5432' + healthcheck: + disable: true + volumes: + - link_db:/var/lib/postgresql/data +volumes: + link_db: diff --git a/bskylink/tests/infra/with-test-db.sh b/bskylink/tests/infra/with-test-db.sh new file mode 100755 index 0000000000..cc083491a5 --- /dev/null +++ b/bskylink/tests/infra/with-test-db.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env sh + +# Example usage: +# ./with-test-db.sh psql postgresql://pg:password@localhost:5433/postgres -c 'select 1;' + +dir=$(dirname $0) +. ${dir}/_common.sh + +SERVICES="db_test" main "$@" diff --git a/bskylink/tsconfig.json b/bskylink/tsconfig.json new file mode 100644 index 0000000000..3c382acc41 --- /dev/null +++ b/bskylink/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "module": "NodeNext", + "esModuleInterop": true, + "moduleResolution": "NodeNext", + "outDir": "dist", + "lib": ["ES2021.String"] + }, + "include": ["./src/index.ts", "./src/bin.ts"] + } diff --git a/bskylink/yarn.lock b/bskylink/yarn.lock new file mode 100644 index 0000000000..d2fa31456b --- /dev/null +++ b/bskylink/yarn.lock @@ -0,0 +1,1027 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@atproto/common-web@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@atproto/common-web/-/common-web-0.3.0.tgz#36da8c2c31d8cf8a140c3c8f03223319bf4430bb" + integrity sha512-67VnV6JJyX+ZWyjV7xFQMypAgDmjVaR9ZCuU/QW+mqlqI7fex2uL4Fv+7/jHadgzhuJHVd6OHOvNn0wR5WZYtA== + dependencies: + graphemer "^1.4.0" + multiformats "^9.9.0" + uint8arrays "3.0.0" + zod "^3.21.4" + +"@atproto/common@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@atproto/common/-/common-0.4.0.tgz#d77696c7eb545426df727837d9ee333b429fe7ef" + integrity sha512-yOXuPlCjT/OK9j+neIGYn9wkxx/AlxQSucysAF0xgwu0Ji8jAtKBf9Jv6R5ObYAjAD/kVUvEYumle+Yq/R9/7g== + dependencies: + "@atproto/common-web" "^0.3.0" + "@ipld/dag-cbor" "^7.0.3" + cbor-x "^1.5.1" + iso-datestring-validator "^2.2.2" + multiformats "^9.9.0" + pino "^8.15.0" + +"@cbor-extract/cbor-extract-darwin-arm64@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz#8d65cb861a99622e1b4a268e2d522d2ec6137338" + integrity sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w== + +"@cbor-extract/cbor-extract-darwin-x64@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz#9fbec199c888c5ec485a1839f4fad0485ab6c40a" + integrity sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w== + +"@cbor-extract/cbor-extract-linux-arm64@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz#bf77e0db4a1d2200a5aa072e02210d5043e953ae" + integrity sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ== + +"@cbor-extract/cbor-extract-linux-arm@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz#491335037eb8533ed8e21b139c59f6df04e39709" + integrity sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q== + +"@cbor-extract/cbor-extract-linux-x64@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz#672574485ccd24759bf8fb8eab9dbca517d35b97" + integrity sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw== + +"@cbor-extract/cbor-extract-win32-x64@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz#4b3f07af047f984c082de34b116e765cb9af975f" + integrity sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w== + +"@ipld/dag-cbor@^7.0.3": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-7.0.3.tgz#aa31b28afb11a807c3d627828a344e5521ac4a1e" + integrity sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA== + dependencies: + cborg "^1.6.0" + multiformats "^9.5.4" + +"@types/cors@^2.8.17": + version "2.8.17" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.17.tgz#5d718a5e494a8166f569d986794e49c48b216b2b" + integrity sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA== + dependencies: + "@types/node" "*" + +"@types/node@*": + version "20.14.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.2.tgz#a5f4d2bcb4b6a87bffcaa717718c5a0f208f4a18" + integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q== + dependencies: + undici-types "~5.26.4" + +"@types/pg@^8.11.6": + version "8.11.6" + resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.11.6.tgz#a2d0fb0a14b53951a17df5197401569fb9c0c54b" + integrity sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ== + dependencies: + "@types/node" "*" + pg-protocol "*" + pg-types "^4.0.1" + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +body-parser@1.20.2, body-parser@^1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +boolean@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b" + integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +cbor-extract@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cbor-extract/-/cbor-extract-2.2.0.tgz#cee78e630cbeae3918d1e2e58e0cebaf3a3be840" + integrity sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA== + dependencies: + node-gyp-build-optional-packages "5.1.1" + optionalDependencies: + "@cbor-extract/cbor-extract-darwin-arm64" "2.2.0" + "@cbor-extract/cbor-extract-darwin-x64" "2.2.0" + "@cbor-extract/cbor-extract-linux-arm" "2.2.0" + "@cbor-extract/cbor-extract-linux-arm64" "2.2.0" + "@cbor-extract/cbor-extract-linux-x64" "2.2.0" + "@cbor-extract/cbor-extract-win32-x64" "2.2.0" + +cbor-x@^1.5.1: + version "1.5.9" + resolved "https://registry.yarnpkg.com/cbor-x/-/cbor-x-1.5.9.tgz#ed6b2afcd7884bdd697674bfb7332c1473a13ecf" + integrity sha512-OEI5rEu3MeR0WWNUXuIGkxmbXVhABP+VtgAXzm48c9ulkrsvxshjjk94XSOGphyAKeNGLPfAxxzEtgQ6rEVpYQ== + optionalDependencies: + cbor-extract "^2.2.0" + +cborg@^1.6.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.2.tgz#83cd581b55b3574c816f82696307c7512db759a1" + integrity sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +delay@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" + integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +express@^4.19.2: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +fast-printf@^1.6.9: + version "1.6.9" + resolved "https://registry.yarnpkg.com/fast-printf/-/fast-printf-1.6.9.tgz#212f56570d2dc8ccdd057ee93d50dd414d07d676" + integrity sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg== + dependencies: + boolean "^3.1.4" + +fast-redact@^3.1.1: + version "3.5.0" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.5.0.tgz#e9ea02f7e57d0cd8438180083e93077e496285e4" + integrity sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A== + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-terminator@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/http-terminator/-/http-terminator-3.2.0.tgz#bc158d2694b733ca4fbf22a35065a81a609fb3e9" + integrity sha512-JLjck1EzPaWjsmIf8bziM3p9fgR1Y3JoUKAkyYEbZmFrIvJM6I8vVJfBGWlEtV9IWOvzNnaTtjuwZeBY2kwB4g== + dependencies: + delay "^5.0.0" + p-wait-for "^3.2.0" + roarr "^7.0.4" + type-fest "^2.3.3" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +inherits@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +iso-datestring-validator@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz#2daa80d2900b7a954f9f731d42f96ee0c19a6895" + integrity sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA== + +kysely@^0.27.3: + version "0.27.3" + resolved "https://registry.yarnpkg.com/kysely/-/kysely-0.27.3.tgz#6cc6c757040500b43c4ac596cdbb12be400ee276" + integrity sha512-lG03Ru+XyOJFsjH3OMY6R/9U38IjDPfnOfDgO3ynhbDr+Dz8fak+X6L62vqu3iybQnj+lG84OttBuU9KY3L9kA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multiformats@^13.0.0: + version "13.1.1" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-13.1.1.tgz#b22ce4df26330d2cf0d69f5bdcbc9a787095a6e5" + integrity sha512-JiptvwMmlxlzIlLLwhCi/srf/nk409UL0eUBr0kioRJq15hqqKyg68iftrBvhCRjR6Rw4fkNnSc4ZJXJDuta/Q== + +multiformats@^9.4.2, multiformats@^9.5.4, multiformats@^9.9.0: + version "9.9.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +node-gyp-build-optional-packages@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz#52b143b9dd77b7669073cbfe39e3f4118bfc603c" + integrity sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw== + dependencies: + detect-libc "^2.0.1" + +object-assign@^4: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +obuf@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-exit-leak-free@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz#fed195c9ebddb7d9e4c3842f93f281ac8dadd3b8" + integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-timeout@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-wait-for@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-wait-for/-/p-wait-for-3.2.0.tgz#640429bcabf3b0dd9f492c31539c5718cb6a3f1f" + integrity sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA== + dependencies: + p-timeout "^3.0.0" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +pg-cloudflare@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" + integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== + +pg-connection-string@^2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d" + integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-numeric@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pg-numeric/-/pg-numeric-1.0.2.tgz#816d9a44026086ae8ae74839acd6a09b0636aa3a" + integrity sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw== + +pg-pool@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2" + integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== + +pg-protocol@*, pg-protocol@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3" + integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== + +pg-types@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg-types@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-4.0.2.tgz#399209a57c326f162461faa870145bb0f918b76d" + integrity sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng== + dependencies: + pg-int8 "1.0.1" + pg-numeric "1.0.2" + postgres-array "~3.0.1" + postgres-bytea "~3.0.0" + postgres-date "~2.1.0" + postgres-interval "^3.0.0" + postgres-range "^1.1.1" + +pg@^8.12.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.12.0.tgz#9341724db571022490b657908f65aee8db91df79" + integrity sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ== + dependencies: + pg-connection-string "^2.6.4" + pg-pool "^3.6.2" + pg-protocol "^1.6.1" + pg-types "^2.1.0" + pgpass "1.x" + optionalDependencies: + pg-cloudflare "^1.1.1" + +pgpass@1.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" + integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== + dependencies: + split2 "^4.1.0" + +pino-abstract-transport@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz#97f9f2631931e242da531b5c66d3079c12c9d1b5" + integrity sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q== + dependencies: + readable-stream "^4.0.0" + split2 "^4.0.0" + +pino-std-serializers@^6.0.0: + version "6.2.2" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz#d9a9b5f2b9a402486a5fc4db0a737570a860aab3" + integrity sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA== + +pino-std-serializers@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz#7c625038b13718dbbd84ab446bd673dc52259e3b" + integrity sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA== + +pino@^8.15.0: + version "8.21.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-8.21.0.tgz#e1207f3675a2722940d62da79a7a55a98409f00d" + integrity sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.1.1" + on-exit-leak-free "^2.1.0" + pino-abstract-transport "^1.2.0" + pino-std-serializers "^6.0.0" + process-warning "^3.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.2.0" + safe-stable-stringify "^2.3.1" + sonic-boom "^3.7.0" + thread-stream "^2.6.0" + +pino@^9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-9.2.0.tgz#e77a9516f3a3e5550d9b76d9f65ac6118ef02bdd" + integrity sha512-g3/hpwfujK5a4oVbaefoJxezLzsDgLcNJeITvC6yrfwYeT9la+edCK42j5QpEQSQCZgTKapXvnQIdgZwvRaZug== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.1.1" + on-exit-leak-free "^2.1.0" + pino-abstract-transport "^1.2.0" + pino-std-serializers "^7.0.0" + process-warning "^3.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.2.0" + safe-stable-stringify "^2.3.1" + sonic-boom "^4.0.1" + thread-stream "^3.0.0" + +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-array@~3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-3.0.2.tgz#68d6182cb0f7f152a7e60dc6a6889ed74b0a5f98" + integrity sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== + +postgres-bytea@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-3.0.0.tgz#9048dc461ac7ba70a6a42d109221619ecd1cb089" + integrity sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw== + dependencies: + obuf "~1.1.2" + +postgres-date@~1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + +postgres-date@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-2.1.0.tgz#b85d3c1fb6fb3c6c8db1e9942a13a3bf625189d0" + integrity sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + +postgres-interval@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-3.0.0.tgz#baf7a8b3ebab19b7f38f07566c7aab0962f0c86a" + integrity sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw== + +postgres-range@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/postgres-range/-/postgres-range-1.1.4.tgz#a59c5f9520909bcec5e63e8cf913a92e4c952863" + integrity sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w== + +process-warning@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-3.0.0.tgz#96e5b88884187a1dce6f5c3166d611132058710b" + integrity sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +readable-stream@^4.0.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09" + integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + +real-require@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" + integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== + +roarr@^7.0.4: + version "7.21.1" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-7.21.1.tgz#fd6452ca822a65f736c35e5372f04ee9f2ca3851" + integrity sha512-3niqt5bXFY1InKU8HKWqqYTYjtrBaxBMnXELXCXUYgtNYGUtZM5rB46HIC430AyacL95iEniGf7RgqsesykLmQ== + dependencies: + fast-printf "^1.6.9" + safe-stable-stringify "^2.4.3" + semver-compare "^1.0.0" + +safe-buffer@5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-stable-stringify@^2.3.1, safe-stable-stringify@^2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +side-channel@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +sonic-boom@^3.7.0: + version "3.8.1" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.8.1.tgz#d5ba8c4e26d6176c9a1d14d549d9ff579a163422" + integrity sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg== + dependencies: + atomic-sleep "^1.0.0" + +sonic-boom@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-4.0.1.tgz#515b7cef2c9290cb362c4536388ddeece07aed30" + integrity sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ== + dependencies: + atomic-sleep "^1.0.0" + +split2@^4.0.0, split2@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +string_decoder@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +thread-stream@^2.6.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.7.0.tgz#d8a8e1b3fd538a6cca8ce69dbe5d3d097b601e11" + integrity sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw== + dependencies: + real-require "^0.2.0" + +thread-stream@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-3.1.0.tgz#4b2ef252a7c215064507d4ef70c05a5e2d34c4f1" + integrity sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A== + dependencies: + real-require "^0.2.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +type-fest@^2.3.3: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typescript@^5.4.5: + version "5.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + +uint8arrays@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.0.0.tgz#260869efb8422418b6f04e3fac73a3908175c63b" + integrity sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA== + dependencies: + multiformats "^9.4.2" + +uint8arrays@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-5.1.0.tgz#14047c9bdf825d025b7391299436e5e50e7270f1" + integrity sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww== + dependencies: + multiformats "^13.0.0" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +zod@^3.21.4: + version "3.23.8" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== diff --git a/bskyogcard/package.json b/bskyogcard/package.json new file mode 100644 index 0000000000..176f9d8c49 --- /dev/null +++ b/bskyogcard/package.json @@ -0,0 +1,28 @@ +{ + "name": "bskyogcard", + "version": "0.0.0", + "type": "module", + "main": "src/index.ts", + "scripts": { + "start": "node --loader ts-node/esm ./src/bin.ts", + "dev": "node --watch-path ./src --loader ts-node/esm ./src/bin.ts", + "build": "tsc && cp -r src/assets dist/", + "install-fonts": "node --loader ts-node/esm scripts/install-fonts.ts" + }, + "dependencies": { + "@atproto/api": "0.12.19-next.0", + "@atproto/common": "^0.4.0", + "@resvg/resvg-js": "^2.6.2", + "express": "^4.19.2", + "http-terminator": "^3.2.0", + "pino": "^9.2.0", + "react": "^18.3.1", + "satori": "^0.10.13", + "twemoji": "^14.0.2" + }, + "devDependencies": { + "@types/node": "^20.14.3", + "ts-node": "^10.9.2", + "typescript": "^5.4.5" + } +} diff --git a/bskyogcard/scripts/install-fonts.ts b/bskyogcard/scripts/install-fonts.ts new file mode 100644 index 0000000000..5c58fb7b9e --- /dev/null +++ b/bskyogcard/scripts/install-fonts.ts @@ -0,0 +1,40 @@ +import {writeFile} from 'node:fs/promises' +import * as path from 'node:path' +import {fileURLToPath} from 'node:url' + +const __DIRNAME = path.dirname(fileURLToPath(import.meta.url)) + +const FONTS = [ + 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-jp@5.0/japanese-700-normal.ttf', + 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-tc@5.0/chinese-traditional-700-normal.ttf', + 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-sc@5.0/chinese-simplified-700-normal.ttf', + 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-hk@5.0/chinese-hongkong-700-normal.ttf', + 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-kr@5.0/korean-700-normal.ttf', + 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-thai@5.0/thai-700-normal.ttf', + 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-arabic@5.0/arabic-700-normal.ttf', + 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-hebrew@5.0/hebrew-700-normal.ttf', +] + +async function main() { + await Promise.all( + FONTS.map(async urlStr => { + const url = new URL(urlStr) + const res = await fetch(url) + const font = await res.arrayBuffer() + const filename = url.pathname + .split('/') + .slice(-2) + .join('/') + .replace(/@[\d.]+\//, '-') + if (!res.ok) { + throw new Error(`HTTP ${res.status}: fetching failed for ${filename}`) + } + await writeFile( + path.join(__DIRNAME, '..', 'src', 'assets', 'fonts', filename), + Buffer.from(font), + ) + }), + ) +} + +main() diff --git a/bskyogcard/src/assets/fonts/Inter-Bold.ttf b/bskyogcard/src/assets/fonts/Inter-Bold.ttf new file mode 100644 index 0000000000..fe23eeb9c9 Binary files /dev/null and b/bskyogcard/src/assets/fonts/Inter-Bold.ttf differ diff --git a/bskyogcard/src/bin.ts b/bskyogcard/src/bin.ts new file mode 100644 index 0000000000..ff550809db --- /dev/null +++ b/bskyogcard/src/bin.ts @@ -0,0 +1,48 @@ +import cluster, {Worker} from 'node:cluster' + +import {envInt} from '@atproto/common' + +import {CardService, envToCfg, httpLogger, readEnv} from './index.js' + +async function main() { + const env = readEnv() + const cfg = envToCfg(env) + const card = await CardService.create(cfg) + await card.start() + httpLogger.info('card service is running') + process.on('SIGTERM', async () => { + httpLogger.info('card service is stopping') + await card.destroy() + httpLogger.info('card service is stopped') + if (cluster.isWorker) process.exit(0) + }) +} + +const workerCount = envInt('CARD_CLUSTER_WORKER_COUNT') + +if (workerCount) { + if (cluster.isPrimary) { + httpLogger.info(`primary ${process.pid} is running`) + const workers = new Set() + for (let i = 0; i < workerCount; ++i) { + workers.add(cluster.fork()) + } + let teardown = false + cluster.on('exit', worker => { + workers.delete(worker) + if (!teardown) { + workers.add(cluster.fork()) // restart on crash + } + }) + process.on('SIGTERM', () => { + teardown = true + httpLogger.info('disconnecting workers') + workers.forEach(w => w.kill('SIGTERM')) + }) + } else { + httpLogger.info(`worker ${process.pid} is running`) + main() + } +} else { + main() // non-clustering +} diff --git a/bskyogcard/src/components/Butterfly.tsx b/bskyogcard/src/components/Butterfly.tsx new file mode 100644 index 0000000000..5a4124975c --- /dev/null +++ b/bskyogcard/src/components/Butterfly.tsx @@ -0,0 +1,16 @@ +import React from 'react' + +export function Butterfly(props: React.SVGAttributes) { + return ( + + + + ) +} diff --git a/bskyogcard/src/components/Img.tsx b/bskyogcard/src/components/Img.tsx new file mode 100644 index 0000000000..dac223180c --- /dev/null +++ b/bskyogcard/src/components/Img.tsx @@ -0,0 +1,10 @@ +import React from 'react' + +export function Img( + props: Omit, 'src'> & {src: Buffer}, +) { + const {src, ...others} = props + return ( + + ) +} diff --git a/bskyogcard/src/components/StarterPack.tsx b/bskyogcard/src/components/StarterPack.tsx new file mode 100644 index 0000000000..29bb8f32ab --- /dev/null +++ b/bskyogcard/src/components/StarterPack.tsx @@ -0,0 +1,152 @@ +/* eslint-disable bsky-internal/avoid-unwrapped-text */ +import React from 'react' +import {AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api' + +import {Butterfly} from './Butterfly.js' +import {Img} from './Img.js' + +export const STARTERPACK_HEIGHT = 630 +export const STARTERPACK_WIDTH = 1200 +export const TILE_SIZE = STARTERPACK_HEIGHT / 3 + +const GRADIENT_TOP = '#0A7AFF' +const GRADIENT_BOTTOM = '#59B9FF' +const IMAGE_STROKE = '#359CFF' + +export function StarterPack(props: { + starterPack: AppBskyGraphDefs.StarterPackView + images: Map +}) { + const {starterPack, images} = props + const record = AppBskyGraphStarterpack.isRecord(starterPack.record) + ? starterPack.record + : null + const imagesArray = [...images.values()] + const imageOfCreator = images.get(starterPack.creator.did) + const imagesExceptCreator = [...images.entries()] + .filter(([did]) => did !== starterPack.creator.did) + .map(([, image]) => image) + const imagesAcross: Buffer[] = [] + if (imageOfCreator) { + if (imagesExceptCreator.length >= 6) { + imagesAcross.push(...imagesExceptCreator.slice(0, 3)) + imagesAcross.push(imageOfCreator) + imagesAcross.push(...imagesExceptCreator.slice(3, 6)) + } else { + const firstHalf = Math.floor(imagesExceptCreator.length / 2) + imagesAcross.push(...imagesExceptCreator.slice(0, firstHalf)) + imagesAcross.push(imageOfCreator) + imagesAcross.push( + ...imagesExceptCreator.slice(firstHalf, imagesExceptCreator.length), + ) + } + } else { + imagesAcross.push(...imagesExceptCreator.slice(0, 7)) + } + const isLongTitle = record ? record.name.length > 30 : false + return ( +

+ {/* image tiles */} +
+ {[...Array(18)].map((_, i) => { + const image = imagesArray.at(i % imagesArray.length) + return ( +
+ {image && } +
+ ) + })} + {/* background overlay */} +
+
+ {/* foreground text & images */} +
+
+ JOIN THE CONVERSATION +
+
+ {imagesAcross.map((image, i) => { + return ( +
+ +
+ ) + })} +
+
+ {record?.name || 'Starter Pack'} +
+
+ on Bluesky +
+
+
+ ) +} diff --git a/bskyogcard/src/config.ts b/bskyogcard/src/config.ts new file mode 100644 index 0000000000..fafa18e743 --- /dev/null +++ b/bskyogcard/src/config.ts @@ -0,0 +1,40 @@ +import {envInt, envStr} from '@atproto/common' + +export type Config = { + service: ServiceConfig +} + +export type ServiceConfig = { + port: number + version?: string + appviewUrl: string + originVerify?: string +} + +export type Environment = { + port?: number + version?: string + appviewUrl?: string + originVerify?: string +} + +export const readEnv = (): Environment => { + return { + port: envInt('CARD_PORT'), + version: envStr('CARD_VERSION'), + appviewUrl: envStr('CARD_APPVIEW_URL'), + originVerify: envStr('CARD_ORIGIN_VERIFY'), + } +} + +export const envToCfg = (env: Environment): Config => { + const serviceCfg: ServiceConfig = { + port: env.port ?? 3000, + version: env.version, + appviewUrl: env.appviewUrl ?? 'https://api.bsky.app', + originVerify: env.originVerify, + } + return { + service: serviceCfg, + } +} diff --git a/bskyogcard/src/context.ts b/bskyogcard/src/context.ts new file mode 100644 index 0000000000..0c972c94de --- /dev/null +++ b/bskyogcard/src/context.ts @@ -0,0 +1,46 @@ +import {readdirSync, readFileSync} from 'node:fs' +import * as path from 'node:path' +import {fileURLToPath} from 'node:url' + +import {AtpAgent} from '@atproto/api' + +import {Config} from './config.js' + +const __DIRNAME = path.dirname(fileURLToPath(import.meta.url)) + +export type AppContextOptions = { + cfg: Config + appviewAgent: AtpAgent + fonts: {name: string; data: Buffer}[] +} + +export class AppContext { + cfg: Config + appviewAgent: AtpAgent + fonts: {name: string; data: Buffer}[] + abortController = new AbortController() + + constructor(private opts: AppContextOptions) { + this.cfg = this.opts.cfg + this.appviewAgent = this.opts.appviewAgent + this.fonts = this.opts.fonts + } + + static async fromConfig(cfg: Config, overrides?: Partial) { + const appviewAgent = new AtpAgent({service: cfg.service.appviewUrl}) + const fontDirectory = path.join(__DIRNAME, 'assets', 'fonts') + const fontFiles = readdirSync(fontDirectory) + const fonts = fontFiles.map(file => { + return { + name: path.basename(file, path.extname(file)), + data: readFileSync(path.join(fontDirectory, file)), + } + }) + return new AppContext({ + cfg, + appviewAgent, + fonts, + ...overrides, + }) + } +} diff --git a/bskyogcard/src/index.ts b/bskyogcard/src/index.ts new file mode 100644 index 0000000000..ef8d48494d --- /dev/null +++ b/bskyogcard/src/index.ts @@ -0,0 +1,41 @@ +import events from 'node:events' +import http from 'node:http' + +import express from 'express' +import {createHttpTerminator, HttpTerminator} from 'http-terminator' + +import {Config} from './config.js' +import {AppContext} from './context.js' +import {default as routes, errorHandler} from './routes/index.js' + +export * from './config.js' +export * from './logger.js' + +export class CardService { + public server?: http.Server + private terminator?: HttpTerminator + + constructor(public app: express.Application, public ctx: AppContext) {} + + static async create(cfg: Config): Promise { + let app = express() + + const ctx = await AppContext.fromConfig(cfg) + app = routes(ctx, app) + app.use(errorHandler) + + return new CardService(app, ctx) + } + + async start() { + this.server = this.app.listen(this.ctx.cfg.service.port) + this.server.keepAliveTimeout = 90000 + this.terminator = createHttpTerminator({server: this.server}) + await events.once(this.server, 'listening') + } + + async destroy() { + this.ctx.abortController.abort() + await this.terminator?.terminate() + } +} diff --git a/bskyogcard/src/logger.ts b/bskyogcard/src/logger.ts new file mode 100644 index 0000000000..3202065134 --- /dev/null +++ b/bskyogcard/src/logger.ts @@ -0,0 +1,4 @@ +import {subsystemLogger} from '@atproto/common' + +export const httpLogger = subsystemLogger('bskyogcard') +export const renderLogger = subsystemLogger('bskyogcard:render') diff --git a/bskyogcard/src/routes/health.ts b/bskyogcard/src/routes/health.ts new file mode 100644 index 0000000000..0cc69515eb --- /dev/null +++ b/bskyogcard/src/routes/health.ts @@ -0,0 +1,14 @@ +import {Express} from 'express' + +import {AppContext} from '../context.js' +import {handler} from './util.js' + +export default function (ctx: AppContext, app: Express) { + return app.get( + '/_health', + handler(async (_req, res) => { + const {version} = ctx.cfg.service + return res.send({version}) + }), + ) +} diff --git a/bskyogcard/src/routes/index.ts b/bskyogcard/src/routes/index.ts new file mode 100644 index 0000000000..0c40f89d3b --- /dev/null +++ b/bskyogcard/src/routes/index.ts @@ -0,0 +1,13 @@ +import {Express} from 'express' + +import {AppContext} from '../context.js' +import {default as health} from './health.js' +import {default as starterPack} from './starter-pack.js' + +export * from './util.js' + +export default function (ctx: AppContext, app: Express) { + app = health(ctx, app) // GET /_health + app = starterPack(ctx, app) // GET /start/:actor/:rkey + return app +} diff --git a/bskyogcard/src/routes/starter-pack.tsx b/bskyogcard/src/routes/starter-pack.tsx new file mode 100644 index 0000000000..06cd6977c0 --- /dev/null +++ b/bskyogcard/src/routes/starter-pack.tsx @@ -0,0 +1,108 @@ +import assert from 'node:assert' + +import React from 'react' +import {AppBskyGraphDefs, AtUri} from '@atproto/api' +import resvg from '@resvg/resvg-js' +import {Express} from 'express' +import satori from 'satori' + +import { + StarterPack, + STARTERPACK_HEIGHT, + STARTERPACK_WIDTH, +} from '../components/StarterPack.js' +import {AppContext} from '../context.js' +import {httpLogger} from '../logger.js' +import {loadEmojiAsSvg} from '../util.js' +import {handler, originVerifyMiddleware} from './util.js' + +export default function (ctx: AppContext, app: Express) { + return app.get( + '/start/:actor/:rkey', + originVerifyMiddleware(ctx), + handler(async (req, res) => { + const {actor, rkey} = req.params + const uri = AtUri.make(actor, 'app.bsky.graph.starterpack', rkey) + let starterPack: AppBskyGraphDefs.StarterPackView + try { + const result = await ctx.appviewAgent.api.app.bsky.graph.getStarterPack( + {starterPack: uri.toString()}, + ) + starterPack = result.data.starterPack + } catch (err) { + httpLogger.warn( + {err, uri: uri.toString()}, + 'could not fetch starter pack', + ) + return res.status(404).end('not found') + } + const imageEntries = await Promise.all( + [starterPack.creator] + .concat(starterPack.listItemsSample.map(li => li.subject)) + // has avatar + .filter(p => p.avatar) + // no sensitive labels + .filter(p => !p.labels.some(l => hideAvatarLabels.has(l.val))) + .map(async p => { + try { + assert(p.avatar) + const image = await getImage(p.avatar) + return [p.did, image] as const + } catch (err) { + httpLogger.warn( + {err, uri: uri.toString(), did: p.did}, + 'could not fetch image', + ) + return [p.did, null] as const + } + }), + ) + const images = new Map( + imageEntries.filter(([_, image]) => image !== null).slice(0, 7), + ) + const svg = await satori( + , + { + fonts: ctx.fonts, + height: STARTERPACK_HEIGHT, + width: STARTERPACK_WIDTH, + loadAdditionalAsset: async (code, text) => { + if (code === 'emoji') { + return await loadEmojiAsSvg(text) + } + }, + }, + ) + const output = await resvg.renderAsync(svg) + res.statusCode = 200 + res.setHeader('content-type', 'image/png') + res.setHeader('cdn-tag', [...images.keys()].join(',')) + return res.end(output.asPng()) + }), + ) +} + +async function getImage(url: string) { + const response = await fetch(url) + const arrayBuf = await response.arrayBuffer() // must drain body even if it will be discarded + if (response.status !== 200) return null + return Buffer.from(arrayBuf) +} + +const hideAvatarLabels = new Set([ + '!hide', + '!warn', + 'porn', + 'sexual', + 'nudity', + 'sexual-figurative', + 'graphic-media', + 'self-harm', + 'sensitive', + 'security', + 'impersonation', + 'scam', + 'spam', + 'misleading', + 'inauthentic', +]) diff --git a/bskyogcard/src/routes/util.ts b/bskyogcard/src/routes/util.ts new file mode 100644 index 0000000000..718ed592a1 --- /dev/null +++ b/bskyogcard/src/routes/util.ts @@ -0,0 +1,36 @@ +import {ErrorRequestHandler, Request, RequestHandler, Response} from 'express' + +import {AppContext} from '../context.js' +import {httpLogger} from '../logger.js' + +export type Handler = (req: Request, res: Response) => Awaited + +export const handler = (runHandler: Handler): RequestHandler => { + return async (req, res, next) => { + try { + await runHandler(req, res) + } catch (err) { + next(err) + } + } +} + +export function originVerifyMiddleware(ctx: AppContext): RequestHandler { + const {originVerify} = ctx.cfg.service + if (!originVerify) return (_req, _res, next) => next() + return (req, res, next) => { + const verifyHeader = req.headers['x-origin-verify'] + if (verifyHeader !== originVerify) { + return res.status(404).end('not found') + } + next() + } +} + +export const errorHandler: ErrorRequestHandler = (err, req, res, next) => { + httpLogger.error({err}, 'request error') + if (res.headersSent) { + return next(err) + } + return res.status(500).end('server error') +} diff --git a/bskyogcard/src/util.ts b/bskyogcard/src/util.ts new file mode 100644 index 0000000000..2b86ded066 --- /dev/null +++ b/bskyogcard/src/util.ts @@ -0,0 +1,37 @@ +import twemoji from 'twemoji' + +import {renderLogger} from './logger.js' + +const U200D = String.fromCharCode(0x200d) +const UFE0F_REGEXP = /\uFE0F/g + +export async function loadEmojiAsSvg(chars: string) { + const cached = emojiCache.get(chars) + if (cached) return cached + const iconCode = twemoji.convert.toCodePoint( + chars.indexOf(U200D) < 0 ? chars.replace(UFE0F_REGEXP, '') : chars, + ) + const res = await fetch(getEmojiUrl(iconCode)) + const body = await res.arrayBuffer() + if (!res.ok) { + renderLogger.warn( + {status: res.status, err: Buffer.from(body).toString()}, + 'could not fetch emoji', + ) + return + } + const svg = + 'data:image/svg+xml;base64,' + Buffer.from(body).toString('base64') + emojiCache.set(chars, svg) + return svg +} + +const emojiCache = new Map() + +function getEmojiUrl(code: string) { + return ( + 'https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/' + + code.toLowerCase() + + '.svg' + ) +} diff --git a/bskyogcard/tsconfig.json b/bskyogcard/tsconfig.json new file mode 100644 index 0000000000..a5c3beecb1 --- /dev/null +++ b/bskyogcard/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "NodeNext", + "esModuleInterop": true, + "moduleResolution": "NodeNext", + "jsx": "react-jsx", + "outDir": "dist" + }, + "include": ["./src/index.ts", "./src/bin.ts"] +} diff --git a/bskyogcard/yarn.lock b/bskyogcard/yarn.lock new file mode 100644 index 0000000000..484aee9ee8 --- /dev/null +++ b/bskyogcard/yarn.lock @@ -0,0 +1,1269 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@atproto/api@0.12.19-next.0": + version "0.12.19-next.0" + resolved "https://registry.npmjs.org/@atproto/api/-/api-0.12.19-next.0.tgz" + integrity sha512-wyWr4uIabTgDTBY99y3QyrFxcIx1Mh4DkURgSv8sd/b+w0lfrZAJh0Gg9BXdg/iIjcf/M2lCTL04r0vASfkMVg== + dependencies: + "@atproto/common-web" "^0.3.0" + "@atproto/lexicon" "^0.4.0" + "@atproto/syntax" "^0.3.0" + "@atproto/xrpc" "^0.5.0" + multiformats "^9.9.0" + tlds "^1.234.0" + +"@atproto/common-web@^0.3.0": + version "0.3.0" + resolved "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.3.0.tgz" + integrity sha512-67VnV6JJyX+ZWyjV7xFQMypAgDmjVaR9ZCuU/QW+mqlqI7fex2uL4Fv+7/jHadgzhuJHVd6OHOvNn0wR5WZYtA== + dependencies: + graphemer "^1.4.0" + multiformats "^9.9.0" + uint8arrays "3.0.0" + zod "^3.21.4" + +"@atproto/common@^0.4.0": + version "0.4.0" + resolved "https://registry.npmjs.org/@atproto/common/-/common-0.4.0.tgz" + integrity sha512-yOXuPlCjT/OK9j+neIGYn9wkxx/AlxQSucysAF0xgwu0Ji8jAtKBf9Jv6R5ObYAjAD/kVUvEYumle+Yq/R9/7g== + dependencies: + "@atproto/common-web" "^0.3.0" + "@ipld/dag-cbor" "^7.0.3" + cbor-x "^1.5.1" + iso-datestring-validator "^2.2.2" + multiformats "^9.9.0" + pino "^8.15.0" + +"@atproto/lexicon@^0.4.0": + version "0.4.0" + resolved "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.4.0.tgz" + integrity sha512-RvCBKdSI4M8qWm5uTNz1z3R2yIvIhmOsMuleOj8YR6BwRD+QbtUBy3l+xQ7iXf4M5fdfJFxaUNa6Ty0iRwdKqQ== + dependencies: + "@atproto/common-web" "^0.3.0" + "@atproto/syntax" "^0.3.0" + iso-datestring-validator "^2.2.2" + multiformats "^9.9.0" + zod "^3.21.4" + +"@atproto/syntax@^0.3.0": + version "0.3.0" + resolved "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.3.0.tgz" + integrity sha512-Weq0ZBxffGHDXHl9U7BQc2BFJi/e23AL+k+i5+D9hUq/bzT4yjGsrCejkjq0xt82xXDjmhhvQSZ0LqxyZ5woxA== + +"@atproto/xrpc@^0.5.0": + version "0.5.0" + resolved "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.5.0.tgz" + integrity sha512-swu+wyOLvYW4l3n+VAuJbHcPcES+tin2Lsrp8Bw5aIXIICiuFn1YMFlwK9JwVUzTH21Py1s1nHEjr4CJeElJog== + dependencies: + "@atproto/lexicon" "^0.4.0" + zod "^3.21.4" + +"@cbor-extract/cbor-extract-darwin-arm64@2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz" + integrity sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w== + +"@cbor-extract/cbor-extract-darwin-x64@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz#9fbec199c888c5ec485a1839f4fad0485ab6c40a" + integrity sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w== + +"@cbor-extract/cbor-extract-linux-arm64@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz#bf77e0db4a1d2200a5aa072e02210d5043e953ae" + integrity sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ== + +"@cbor-extract/cbor-extract-linux-arm@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz#491335037eb8533ed8e21b139c59f6df04e39709" + integrity sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q== + +"@cbor-extract/cbor-extract-linux-x64@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz#672574485ccd24759bf8fb8eab9dbca517d35b97" + integrity sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw== + +"@cbor-extract/cbor-extract-win32-x64@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz#4b3f07af047f984c082de34b116e765cb9af975f" + integrity sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@ipld/dag-cbor@^7.0.3": + version "7.0.3" + resolved "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.3.tgz" + integrity sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA== + dependencies: + cborg "^1.6.0" + multiformats "^9.5.4" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@resvg/resvg-js-android-arm-eabi@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@resvg/resvg-js-android-arm-eabi/-/resvg-js-android-arm-eabi-2.6.2.tgz#e761e0b688127db64879f455178c92468a9aeabe" + integrity sha512-FrJibrAk6v29eabIPgcTUMPXiEz8ssrAk7TXxsiZzww9UTQ1Z5KAbFJs+Z0Ez+VZTYgnE5IQJqBcoSiMebtPHA== + +"@resvg/resvg-js-android-arm64@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@resvg/resvg-js-android-arm64/-/resvg-js-android-arm64-2.6.2.tgz#b8cb564d7f6b3f37d9b43129f5dc5fe171e249e4" + integrity sha512-VcOKezEhm2VqzXpcIJoITuvUS/fcjIw5NA/w3tjzWyzmvoCdd+QXIqy3FBGulWdClvp4g+IfUemigrkLThSjAQ== + +"@resvg/resvg-js-darwin-arm64@2.6.2": + version "2.6.2" + resolved "https://registry.npmjs.org/@resvg/resvg-js-darwin-arm64/-/resvg-js-darwin-arm64-2.6.2.tgz" + integrity sha512-nmok2LnAd6nLUKI16aEB9ydMC6Lidiiq2m1nEBDR1LaaP7FGs4AJ90qDraxX+CWlVuRlvNjyYJTNv8qFjtL9+A== + +"@resvg/resvg-js-darwin-x64@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@resvg/resvg-js-darwin-x64/-/resvg-js-darwin-x64-2.6.2.tgz#e1344173aa27bfb4d880ab576d1acf1c1648faca" + integrity sha512-GInyZLjgWDfsVT6+SHxQVRwNzV0AuA1uqGsOAW+0th56J7Nh6bHHKXHBWzUrihxMetcFDmQMAX1tZ1fZDYSRsw== + +"@resvg/resvg-js-linux-arm-gnueabihf@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@resvg/resvg-js-linux-arm-gnueabihf/-/resvg-js-linux-arm-gnueabihf-2.6.2.tgz#34c445eba45efd68f6130b2ab426d76a7424253d" + integrity sha512-YIV3u/R9zJbpqTTNwTZM5/ocWetDKGsro0SWp70eGEM9eV2MerWyBRZnQIgzU3YBnSBQ1RcxRZvY/UxwESfZIw== + +"@resvg/resvg-js-linux-arm64-gnu@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@resvg/resvg-js-linux-arm64-gnu/-/resvg-js-linux-arm64-gnu-2.6.2.tgz#30da47087dd8153182198b94fe9f8d994890dae5" + integrity sha512-zc2BlJSim7YR4FZDQ8OUoJg5holYzdiYMeobb9pJuGDidGL9KZUv7SbiD4E8oZogtYY42UZEap7dqkkYuA91pg== + +"@resvg/resvg-js-linux-arm64-musl@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@resvg/resvg-js-linux-arm64-musl/-/resvg-js-linux-arm64-musl-2.6.2.tgz#5d75b8ff5c83103729c1ca3779987302753c50d4" + integrity sha512-3h3dLPWNgSsD4lQBJPb4f+kvdOSJHa5PjTYVsWHxLUzH4IFTJUAnmuWpw4KqyQ3NA5QCyhw4TWgxk3jRkQxEKg== + +"@resvg/resvg-js-linux-x64-gnu@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@resvg/resvg-js-linux-x64-gnu/-/resvg-js-linux-x64-gnu-2.6.2.tgz#411abedfaee5edc57cbb7701736cecba522e26f3" + integrity sha512-IVUe+ckIerA7xMZ50duAZzwf1U7khQe2E0QpUxu5MBJNao5RqC0zwV/Zm965vw6D3gGFUl7j4m+oJjubBVoftw== + +"@resvg/resvg-js-linux-x64-musl@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@resvg/resvg-js-linux-x64-musl/-/resvg-js-linux-x64-musl-2.6.2.tgz#fe4984038f0372f279e3ff570b72934dd7eb2a5c" + integrity sha512-UOf83vqTzoYQO9SZ0fPl2ZIFtNIz/Rr/y+7X8XRX1ZnBYsQ/tTb+cj9TE+KHOdmlTFBxhYzVkP2lRByCzqi4jQ== + +"@resvg/resvg-js-win32-arm64-msvc@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@resvg/resvg-js-win32-arm64-msvc/-/resvg-js-win32-arm64-msvc-2.6.2.tgz#d3a053cf7ff687087a2106330c0fdaae706254d1" + integrity sha512-7C/RSgCa+7vqZ7qAbItfiaAWhyRSoD4l4BQAbVDqRRsRgY+S+hgS3in0Rxr7IorKUpGE69X48q6/nOAuTJQxeQ== + +"@resvg/resvg-js-win32-ia32-msvc@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@resvg/resvg-js-win32-ia32-msvc/-/resvg-js-win32-ia32-msvc-2.6.2.tgz#7cdda1ce29ef7209e28191d917fa5bef0624a4ad" + integrity sha512-har4aPAlvjnLcil40AC77YDIk6loMawuJwFINEM7n0pZviwMkMvjb2W5ZirsNOZY4aDbo5tLx0wNMREp5Brk+w== + +"@resvg/resvg-js-win32-x64-msvc@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@resvg/resvg-js-win32-x64-msvc/-/resvg-js-win32-x64-msvc-2.6.2.tgz#cb0ad04525d65f3def4c8d346157a57976d5b388" + integrity sha512-ZXtYhtUr5SSaBrUDq7DiyjOFJqBVL/dOBN7N/qmi/pO0IgiWW/f/ue3nbvu9joWE5aAKDoIzy/CxsY0suwGosQ== + +"@resvg/resvg-js@^2.6.2": + version "2.6.2" + resolved "https://registry.npmjs.org/@resvg/resvg-js/-/resvg-js-2.6.2.tgz" + integrity sha512-xBaJish5OeGmniDj9cW5PRa/PtmuVU3ziqrbr5xJj901ZDN4TosrVaNZpEiLZAxdfnhAe7uQ7QFWfjPe9d9K2Q== + optionalDependencies: + "@resvg/resvg-js-android-arm-eabi" "2.6.2" + "@resvg/resvg-js-android-arm64" "2.6.2" + "@resvg/resvg-js-darwin-arm64" "2.6.2" + "@resvg/resvg-js-darwin-x64" "2.6.2" + "@resvg/resvg-js-linux-arm-gnueabihf" "2.6.2" + "@resvg/resvg-js-linux-arm64-gnu" "2.6.2" + "@resvg/resvg-js-linux-arm64-musl" "2.6.2" + "@resvg/resvg-js-linux-x64-gnu" "2.6.2" + "@resvg/resvg-js-linux-x64-musl" "2.6.2" + "@resvg/resvg-js-win32-arm64-msvc" "2.6.2" + "@resvg/resvg-js-win32-ia32-msvc" "2.6.2" + "@resvg/resvg-js-win32-x64-msvc" "2.6.2" + +"@shuding/opentype.js@1.4.0-beta.0": + version "1.4.0-beta.0" + resolved "https://registry.npmjs.org/@shuding/opentype.js/-/opentype.js-1.4.0-beta.0.tgz" + integrity sha512-3NgmNyH3l/Hv6EvsWJbsvpcpUba6R8IREQ83nH83cyakCw7uM1arZKNfHwv1Wz6jgqrF/j4x5ELvR6PnK9nTcA== + dependencies: + fflate "^0.7.3" + string.prototype.codepointat "^0.2.1" + +"@tsconfig/node10@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" + integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/node@^20.14.3": + version "20.14.3" + resolved "https://registry.npmjs.org/@types/node/-/node-20.14.3.tgz" + integrity sha512-Nuzqa6WAxeGnve6SXqiPAM9rA++VQs+iLZ1DDd56y0gdvygSZlQvZuvdFPR3yLqkVxPu4WrO02iDEyH1g+wazw== + dependencies: + undici-types "~5.26.4" + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-walk@^8.1.1: + version "8.3.3" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" + integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== + dependencies: + acorn "^8.11.0" + +acorn@^8.11.0, acorn@^8.4.1: + version "8.12.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.0.tgz#1627bfa2e058148036133b8d9b51a700663c294c" + integrity sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + +base64-js@0.0.8: + version "0.0.8" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" + integrity sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +boolean@^3.1.4: + version "3.2.0" + resolved "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz" + integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +camelize@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz" + integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== + +cbor-extract@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz" + integrity sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA== + dependencies: + node-gyp-build-optional-packages "5.1.1" + optionalDependencies: + "@cbor-extract/cbor-extract-darwin-arm64" "2.2.0" + "@cbor-extract/cbor-extract-darwin-x64" "2.2.0" + "@cbor-extract/cbor-extract-linux-arm" "2.2.0" + "@cbor-extract/cbor-extract-linux-arm64" "2.2.0" + "@cbor-extract/cbor-extract-linux-x64" "2.2.0" + "@cbor-extract/cbor-extract-win32-x64" "2.2.0" + +cbor-x@^1.5.1: + version "1.5.9" + resolved "https://registry.npmjs.org/cbor-x/-/cbor-x-1.5.9.tgz" + integrity sha512-OEI5rEu3MeR0WWNUXuIGkxmbXVhABP+VtgAXzm48c9ulkrsvxshjjk94XSOGphyAKeNGLPfAxxzEtgQ6rEVpYQ== + optionalDependencies: + cbor-extract "^2.2.0" + +cborg@^1.6.0: + version "1.10.2" + resolved "https://registry.npmjs.org/cborg/-/cborg-1.10.2.tgz" + integrity sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug== + +color-name@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +css-background-parser@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/css-background-parser/-/css-background-parser-0.1.0.tgz" + integrity sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA== + +css-box-shadow@1.0.0-3: + version "1.0.0-3" + resolved "https://registry.npmjs.org/css-box-shadow/-/css-box-shadow-1.0.0-3.tgz" + integrity sha512-9jaqR6e7Ohds+aWwmhe6wILJ99xYQbfmK9QQB9CcMjDbTxPZjwEmUQpU91OG05Xgm8BahT5fW+svbsQGjS/zPg== + +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz" + integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== + +css-to-react-native@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz" + integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +delay@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^2.0.1: + version "2.0.3" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz" + integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +emoji-regex@^10.2.1: + version "10.3.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz" + integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +events@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +express@^4.19.2: + version "4.19.2" + resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +fast-printf@^1.6.9: + version "1.6.9" + resolved "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz" + integrity sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg== + dependencies: + boolean "^3.1.4" + +fast-redact@^3.1.1: + version "3.5.0" + resolved "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz" + integrity sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A== + +fflate@^0.7.3: + version "0.7.4" + resolved "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz" + integrity sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw== + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@^8.0.1: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +hex-rgb@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/hex-rgb/-/hex-rgb-4.3.0.tgz" + integrity sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-terminator@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/http-terminator/-/http-terminator-3.2.0.tgz" + integrity sha512-JLjck1EzPaWjsmIf8bziM3p9fgR1Y3JoUKAkyYEbZmFrIvJM6I8vVJfBGWlEtV9IWOvzNnaTtjuwZeBY2kwB4g== + dependencies: + delay "^5.0.0" + p-wait-for "^3.2.0" + roarr "^7.0.4" + type-fest "^2.3.3" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +inherits@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +iso-datestring-validator@^2.2.2: + version "2.2.2" + resolved "https://registry.npmjs.org/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz" + integrity sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA== + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-5.0.0.tgz#e6b718f73da420d612823996fdf14a03f6ff6922" + integrity sha512-NQRZ5CRo74MhMMC3/3r5g2k4fjodJ/wh8MxjFbCViWKFjxrnudWSY5vomh+23ZaXzAS7J3fBZIR2dV6WbmfM0w== + dependencies: + universalify "^0.1.2" + optionalDependencies: + graceful-fs "^4.1.6" + +linebreak@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/linebreak/-/linebreak-1.1.0.tgz" + integrity sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ== + dependencies: + base64-js "0.0.8" + unicode-trie "^2.0.0" + +loose-envify@^1.1.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multiformats@^9.4.2, multiformats@^9.5.4, multiformats@^9.9.0: + version "9.9.0" + resolved "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +node-gyp-build-optional-packages@5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz" + integrity sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw== + dependencies: + detect-libc "^2.0.1" + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +on-exit-leak-free@^2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz" + integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-timeout@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-wait-for@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.2.0.tgz" + integrity sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA== + dependencies: + p-timeout "^3.0.0" + +pako@^0.2.5: + version "0.2.9" + resolved "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz" + integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA== + +parse-css-color@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/parse-css-color/-/parse-css-color-0.2.1.tgz" + integrity sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg== + dependencies: + color-name "^1.1.4" + hex-rgb "^4.1.0" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +pino-abstract-transport@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz" + integrity sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q== + dependencies: + readable-stream "^4.0.0" + split2 "^4.0.0" + +pino-std-serializers@^6.0.0: + version "6.2.2" + resolved "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz" + integrity sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA== + +pino-std-serializers@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz" + integrity sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA== + +pino@^8.15.0: + version "8.21.0" + resolved "https://registry.npmjs.org/pino/-/pino-8.21.0.tgz" + integrity sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.1.1" + on-exit-leak-free "^2.1.0" + pino-abstract-transport "^1.2.0" + pino-std-serializers "^6.0.0" + process-warning "^3.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.2.0" + safe-stable-stringify "^2.3.1" + sonic-boom "^3.7.0" + thread-stream "^2.6.0" + +pino@^9.2.0: + version "9.2.0" + resolved "https://registry.npmjs.org/pino/-/pino-9.2.0.tgz" + integrity sha512-g3/hpwfujK5a4oVbaefoJxezLzsDgLcNJeITvC6yrfwYeT9la+edCK42j5QpEQSQCZgTKapXvnQIdgZwvRaZug== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.1.1" + on-exit-leak-free "^2.1.0" + pino-abstract-transport "^1.2.0" + pino-std-serializers "^7.0.0" + process-warning "^3.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.2.0" + safe-stable-stringify "^2.3.1" + sonic-boom "^4.0.1" + thread-stream "^3.0.0" + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +process-warning@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz" + integrity sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react@^18.3.1: + version "18.3.1" + resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + +readable-stream@^4.0.0: + version "4.5.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz" + integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + +real-require@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz" + integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== + +roarr@^7.0.4: + version "7.21.1" + resolved "https://registry.npmjs.org/roarr/-/roarr-7.21.1.tgz" + integrity sha512-3niqt5bXFY1InKU8HKWqqYTYjtrBaxBMnXELXCXUYgtNYGUtZM5rB46HIC430AyacL95iEniGf7RgqsesykLmQ== + dependencies: + fast-printf "^1.6.9" + safe-stable-stringify "^2.4.3" + semver-compare "^1.0.0" + +safe-buffer@5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-stable-stringify@^2.3.1, safe-stable-stringify@^2.4.3: + version "2.4.3" + resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +satori@^0.10.13: + version "0.10.13" + resolved "https://registry.npmjs.org/satori/-/satori-0.10.13.tgz" + integrity sha512-klCwkVYMQ/ZN5inJLHzrUmGwoRfsdP7idB5hfpJ1jfiJk1ErDitK8Hkc6Kll1+Ox2WtqEuGecSZLnmup3CGzvQ== + dependencies: + "@shuding/opentype.js" "1.4.0-beta.0" + css-background-parser "^0.1.0" + css-box-shadow "1.0.0-3" + css-to-react-native "^3.0.0" + emoji-regex "^10.2.1" + escape-html "^1.0.3" + linebreak "^1.1.0" + parse-css-color "^0.2.1" + postcss-value-parser "^4.2.0" + yoga-wasm-web "^0.3.3" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +side-channel@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +sonic-boom@^3.7.0: + version "3.8.1" + resolved "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz" + integrity sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg== + dependencies: + atomic-sleep "^1.0.0" + +sonic-boom@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz" + integrity sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ== + dependencies: + atomic-sleep "^1.0.0" + +split2@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +string.prototype.codepointat@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz" + integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== + +string_decoder@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +thread-stream@^2.6.0: + version "2.7.0" + resolved "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz" + integrity sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw== + dependencies: + real-require "^0.2.0" + +thread-stream@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz" + integrity sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A== + dependencies: + real-require "^0.2.0" + +tiny-inflate@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz" + integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== + +tlds@^1.234.0: + version "1.252.0" + resolved "https://registry.npmjs.org/tlds/-/tlds-1.252.0.tgz" + integrity sha512-GA16+8HXvqtfEnw/DTcwB0UU354QE1n3+wh08oFjr6Znl7ZLAeUgYzCcK+/CCrOyE0vnHR8/pu3XXG3vDijXpQ== + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +ts-node@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +twemoji-parser@14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/twemoji-parser/-/twemoji-parser-14.0.0.tgz#13dabcb6d3a261d9efbf58a1666b182033bf2b62" + integrity sha512-9DUOTGLOWs0pFWnh1p6NF+C3CkQ96PWmEFwhOVmT3WbecRC+68AIqpsnJXygfkFcp4aXbOp8Dwbhh/HQgvoRxA== + +twemoji@^14.0.2: + version "14.0.2" + resolved "https://registry.yarnpkg.com/twemoji/-/twemoji-14.0.2.tgz#c53adb01dab22bf4870f648ca8cc347ce99ee37e" + integrity sha512-BzOoXIe1QVdmsUmZ54xbEH+8AgtOKUiG53zO5vVP2iUu6h5u9lN15NcuS6te4OY96qx0H7JK9vjjl9WQbkTRuA== + dependencies: + fs-extra "^8.0.1" + jsonfile "^5.0.0" + twemoji-parser "14.0.0" + universalify "^0.1.2" + +type-fest@^2.3.3: + version "2.19.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typescript@^5.4.5: + version "5.4.5" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + +uint8arrays@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz" + integrity sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA== + dependencies: + multiformats "^9.4.2" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unicode-trie@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz" + integrity sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ== + dependencies: + pako "^0.2.5" + tiny-inflate "^1.0.0" + +universalify@^0.1.0, universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yoga-wasm-web@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/yoga-wasm-web/-/yoga-wasm-web-0.3.3.tgz" + integrity sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA== + +zod@^3.21.4: + version "3.23.8" + resolved "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== diff --git a/bskyweb/README.md b/bskyweb/README.md index 640c30f4ad..4717c45e0c 100644 --- a/bskyweb/README.md +++ b/bskyweb/README.md @@ -24,7 +24,7 @@ Then build and copy over the big 'ol `bundle.web.js` file: ### Golang Daemon -Install golang. We are generally using v1.21+. +Install golang. We are generally using v1.22+. In this directory (`bskyweb/`): diff --git a/bskyweb/cmd/bskyweb/main.go b/bskyweb/cmd/bskyweb/main.go index 5185ff573a..d9235afdee 100644 --- a/bskyweb/cmd/bskyweb/main.go +++ b/bskyweb/cmd/bskyweb/main.go @@ -35,11 +35,17 @@ func run(args []string) { Flags: []cli.Flag{ &cli.StringFlag{ Name: "appview-host", - Usage: "method, hostname, and port of PDS instance", + Usage: "scheme, hostname, and port of PDS instance", Value: "http://localhost:2584", // retain old PDS env var for easy transition EnvVars: []string{"ATP_APPVIEW_HOST", "ATP_PDS_HOST"}, }, + &cli.StringFlag{ + Name: "ogcard-host", + Usage: "scheme, hostname, and port of ogcard service", + Required: false, + EnvVars: []string{"OGCARD_HOST"}, + }, &cli.StringFlag{ Name: "http-address", Usage: "Specify the local IP/port to bind to", @@ -47,6 +53,13 @@ func run(args []string) { Value: ":8100", EnvVars: []string{"HTTP_ADDRESS"}, }, + &cli.StringFlag{ + Name: "link-host", + Usage: "scheme, hostname, and port of link service", + Required: false, + Value: "", + EnvVars: []string{"LINK_HOST"}, + }, &cli.BoolFlag{ Name: "debug", Usage: "Enable debug mode", @@ -54,6 +67,13 @@ func run(args []string) { Required: false, EnvVars: []string{"DEBUG"}, }, + &cli.StringFlag{ + Name: "basic-auth-password", + Usage: "optional password to restrict access to web interface", + Required: false, + Value: "", + EnvVars: []string{"BASIC_AUTH_PASSWORD"}, + }, }, }, } diff --git a/bskyweb/cmd/bskyweb/server.go b/bskyweb/cmd/bskyweb/server.go index 47fa2dbc7a..2d8153eb70 100644 --- a/bskyweb/cmd/bskyweb/server.go +++ b/bskyweb/cmd/bskyweb/server.go @@ -2,10 +2,12 @@ package main import ( "context" + "crypto/subtle" "errors" "fmt" "io/fs" "net/http" + "net/url" "os" "os/signal" "strings" @@ -30,12 +32,24 @@ type Server struct { echo *echo.Echo httpd *http.Server xrpcc *xrpc.Client + cfg *Config +} + +type Config struct { + debug bool + httpAddress string + appviewHost string + ogcardHost string + linkHost string } func serve(cctx *cli.Context) error { debug := cctx.Bool("debug") httpAddress := cctx.String("http-address") appviewHost := cctx.String("appview-host") + ogcardHost := cctx.String("ogcard-host") + linkHost := cctx.String("link-host") + basicAuthPassword := cctx.String("basic-auth-password") // Echo e := echo.New() @@ -71,6 +85,13 @@ func serve(cctx *cli.Context) error { server := &Server{ echo: e, xrpcc: xrpcc, + cfg: &Config{ + debug: debug, + httpAddress: httpAddress, + appviewHost: appviewHost, + ogcardHost: ogcardHost, + linkHost: linkHost, + }, } // Create the HTTP server. @@ -121,6 +142,18 @@ func serve(cctx *cli.Context) error { }, })) + // optional password gating of entire web interface + if basicAuthPassword != "" { + e.Use(middleware.BasicAuth(func(username, password string, c echo.Context) (bool, error) { + // Be careful to use constant time comparison to prevent timing attacks + if subtle.ConstantTimeCompare([]byte(username), []byte("admin")) == 1 && + subtle.ConstantTimeCompare([]byte(password), []byte(basicAuthPassword)) == 1 { + return true, nil + } + return false, nil + })) + } + // redirect trailing slash to non-trailing slash. // all of our current endpoints have no trailing slash. e.Use(middleware.RemoveTrailingSlashWithConfig(middleware.TrailingSlashConfig{ @@ -179,6 +212,7 @@ func serve(cctx *cli.Context) error { e.GET("/search", server.WebGeneric) e.GET("/feeds", server.WebGeneric) e.GET("/notifications", server.WebGeneric) + e.GET("/notifications/settings", server.WebGeneric) e.GET("/lists", server.WebGeneric) e.GET("/moderation", server.WebGeneric) e.GET("/moderation/modlists", server.WebGeneric) @@ -192,6 +226,7 @@ func serve(cctx *cli.Context) error { e.GET("/settings/threads", server.WebGeneric) e.GET("/settings/external-embeds", server.WebGeneric) e.GET("/settings/accessibility", server.WebGeneric) + e.GET("/settings/appearance", server.WebGeneric) e.GET("/sys/debug", server.WebGeneric) e.GET("/sys/debug-mod", server.WebGeneric) e.GET("/sys/log", server.WebGeneric) @@ -208,6 +243,7 @@ func serve(cctx *cli.Context) error { e.GET("/profile/:handleOrDID", server.WebProfile) e.GET("/profile/:handleOrDID/follows", server.WebGeneric) e.GET("/profile/:handleOrDID/followers", server.WebGeneric) + e.GET("/profile/:handleOrDID/known-followers", server.WebGeneric) e.GET("/profile/:handleOrDID/lists/:rkey", server.WebGeneric) e.GET("/profile/:handleOrDID/feed/:rkey", server.WebGeneric) e.GET("/profile/:handleOrDID/feed/:rkey/liked-by", server.WebGeneric) @@ -221,6 +257,21 @@ func serve(cctx *cli.Context) error { e.GET("/profile/:handleOrDID/post/:rkey/liked-by", server.WebGeneric) e.GET("/profile/:handleOrDID/post/:rkey/reposted-by", server.WebGeneric) + // video download + e.GET("/video-download", server.WebGeneric) + + // starter packs + e.GET("/starter-pack/:handleOrDID/:rkey", server.WebStarterPack) + e.GET("/start/:handleOrDID/:rkey", server.WebStarterPack) + + if linkHost != "" { + linkUrl, err := url.Parse(linkHost) + if err != nil { + return err + } + e.Group("/:linkId", server.LinkProxyMiddleware(linkUrl)) + } + // Start the server. log.Infof("starting server address=%s", httpAddress) go func() { @@ -292,6 +343,30 @@ func (srv *Server) Download(c echo.Context) error { return c.Redirect(http.StatusFound, "/") } +// Handler for proxying top-level paths to link service, which ends up serving a redirect +func (srv *Server) LinkProxyMiddleware(url *url.URL) echo.MiddlewareFunc { + return middleware.ProxyWithConfig( + middleware.ProxyConfig{ + Balancer: middleware.NewRoundRobinBalancer( + []*middleware.ProxyTarget{{URL: url}}, + ), + Skipper: func(c echo.Context) bool { + req := c.Request() + if req.Method == "GET" && + strings.LastIndex(strings.TrimRight(req.URL.Path, "/"), "/") == 0 && // top-level path + !strings.HasPrefix(req.URL.Path, "/_") { // e.g. /_health endpoint + return false + } + return true + }, + RetryCount: 2, + ErrorHandler: func(c echo.Context, err error) error { + return c.Redirect(302, "/") + }, + }, + ) +} + // handler for endpoint that have no specific server-side handling func (srv *Server) WebGeneric(c echo.Context) error { data := pongo2.Context{} @@ -377,6 +452,45 @@ func (srv *Server) WebPost(c echo.Context) error { return c.Render(http.StatusOK, "post.html", data) } +func (srv *Server) WebStarterPack(c echo.Context) error { + req := c.Request() + ctx := req.Context() + data := pongo2.Context{} + data["requestURI"] = fmt.Sprintf("https://%s%s", req.Host, req.URL.Path) + // sanity check arguments. don't 4xx, just let app handle if not expected format + rkeyParam := c.Param("rkey") + rkey, err := syntax.ParseRecordKey(rkeyParam) + if err != nil { + log.Errorf("bad rkey: %v", err) + return c.Render(http.StatusOK, "starterpack.html", data) + } + handleOrDIDParam := c.Param("handleOrDID") + handleOrDID, err := syntax.ParseAtIdentifier(handleOrDIDParam) + if err != nil { + log.Errorf("bad identifier: %v", err) + return c.Render(http.StatusOK, "starterpack.html", data) + } + identifier := handleOrDID.Normalize().String() + starterPackURI := fmt.Sprintf("at://%s/app.bsky.graph.starterpack/%s", identifier, rkey) + spv, err := appbsky.GraphGetStarterPack(ctx, srv.xrpcc, starterPackURI) + if err != nil { + log.Errorf("failed to fetch starter pack view for: %s\t%v", starterPackURI, err) + return c.Render(http.StatusOK, "starterpack.html", data) + } + if spv.StarterPack == nil || spv.StarterPack.Record == nil { + return c.Render(http.StatusOK, "starterpack.html", data) + } + rec, ok := spv.StarterPack.Record.Val.(*appbsky.GraphStarterpack) + if !ok { + return c.Render(http.StatusOK, "starterpack.html", data) + } + data["title"] = rec.Name + if srv.cfg.ogcardHost != "" { + data["imgThumbUrl"] = fmt.Sprintf("%s/start/%s/%s", srv.cfg.ogcardHost, identifier, rkey) + } + return c.Render(http.StatusOK, "starterpack.html", data) +} + func (srv *Server) WebProfile(c echo.Context) error { ctx := c.Request().Context() data := pongo2.Context{} diff --git a/bskyweb/go.mod b/bskyweb/go.mod index 0989217cac..d07bb7f89b 100644 --- a/bskyweb/go.mod +++ b/bskyweb/go.mod @@ -1,9 +1,11 @@ module github.com/bluesky-social/social-app/bskyweb -go 1.21 +go 1.22 + +toolchain go1.22.4 require ( - github.com/bluesky-social/indigo v0.0.0-20231216010655-ad730a7da4f5 + github.com/bluesky-social/indigo v0.0.0-20240624223826-fd66f93ce141 github.com/flosch/pongo2/v6 v6.0.0 github.com/ipfs/go-log v1.0.5 github.com/joho/godotenv v1.5.1 @@ -19,7 +21,7 @@ require ( github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/go-logr/logr v1.3.0 // indirect + github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -48,7 +50,7 @@ require ( github.com/jbenet/goprocess v0.1.4 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect - github.com/klauspost/cpuid/v2 v2.2.6 // indirect + github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/labstack/gommon v0.4.1 // indirect github.com/lestrrat-go/blackmagic v1.0.1 // indirect github.com/lestrrat-go/httpcc v1.0.1 // indirect @@ -58,10 +60,9 @@ require ( github.com/lestrrat-go/option v1.0.1 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-sqlite3 v1.14.18 // indirect + github.com/mattn/go-sqlite3 v1.14.22 // indirect github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect github.com/minio/sha256-simd v1.0.1 // indirect - github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mr-tron/base58 v1.2.0 // indirect github.com/multiformats/go-base32 v0.1.0 // indirect github.com/multiformats/go-base36 v0.2.0 // indirect @@ -69,6 +70,7 @@ require ( github.com/multiformats/go-multihash v0.2.3 // indirect github.com/multiformats/go-varint v0.0.7 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/orandin/slog-gorm v1.3.2 // indirect github.com/polydawn/refmt v0.89.1-0.20221221234430-40501e09de1f // indirect github.com/prometheus/client_golang v1.17.0 // indirect github.com/prometheus/client_model v0.5.0 // indirect @@ -79,28 +81,28 @@ require ( github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - github.com/whyrusleeping/cbor-gen v0.0.0-20230923211252-36a87e1ba72f // indirect + github.com/whyrusleeping/cbor-gen v0.1.1-0.20240311221002-68b9f235c302 // indirect github.com/whyrusleeping/go-did v0.0.0-20230824162731-404d1707d5d6 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect gitlab.com/yawning/secp256k1-voi v0.0.0-20230925100816-f2616030848b // indirect gitlab.com/yawning/tuplehash v0.0.0-20230713102510-df83abbf9a02 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.42.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect go.opentelemetry.io/otel v1.21.0 // indirect go.opentelemetry.io/otel/metric v1.21.0 // indirect go.opentelemetry.io/otel/trace v1.21.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.26.0 // indirect - golang.org/x/crypto v0.15.0 // indirect - golang.org/x/net v0.18.0 // indirect + golang.org/x/crypto v0.21.0 // indirect + golang.org/x/net v0.21.0 // indirect golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.14.0 // indirect + golang.org/x/sys v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/protobuf v1.31.0 // indirect - gorm.io/driver/postgres v1.5.0 // indirect - gorm.io/driver/sqlite v1.5.4 // indirect - gorm.io/gorm v1.25.5 // indirect + gorm.io/driver/postgres v1.5.7 // indirect + gorm.io/driver/sqlite v1.5.5 // indirect + gorm.io/gorm v1.25.9 // indirect lukechampine.com/blake3 v1.2.1 // indirect ) diff --git a/bskyweb/go.sum b/bskyweb/go.sum index 59797e35db..57b127b863 100644 --- a/bskyweb/go.sum +++ b/bskyweb/go.sum @@ -2,8 +2,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bluesky-social/indigo v0.0.0-20231216010655-ad730a7da4f5 h1:Zk1c+mxCYH6G/vLL0+9lO2Eci4OT3AFy73qPWa9auDM= -github.com/bluesky-social/indigo v0.0.0-20231216010655-ad730a7da4f5/go.mod h1:a8cPbqDkRX+aPwJnXF7kAi3PF26hYiR4w5H8624MB7k= +github.com/bluesky-social/indigo v0.0.0-20240624223826-fd66f93ce141 h1:F3ZceqS82fFfVV3ychWRLNDRFaFlbOwrPic0qJiUVqw= +github.com/bluesky-social/indigo v0.0.0-20240624223826-fd66f93ce141/go.mod h1:dBIOGhsiK0rgEETnxiGiuEyrSx6DKxEotHIPbiKD6WU= github.com/carlmjohnson/versioninfo v0.22.5 h1:O00sjOLUAFxYQjlN/bzYTuZiS0y6fWDQjMRvwtKgwwc= github.com/carlmjohnson/versioninfo v0.22.5/go.mod h1:QT9mph3wcVfISUKd0i9sZfVrPviHuSF+cUtLjm2WSf8= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= @@ -11,7 +11,6 @@ github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -23,8 +22,8 @@ github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSw github.com/flosch/pongo2/v6 v6.0.0 h1:lsGru8IAzHgIAw6H2m4PCyleO58I40ow6apih0WprMU= github.com/flosch/pongo2/v6 v6.0.0/go.mod h1:CuDpFm47R0uGGE7z13/tTlt1Y6zdxvr2RLT5LJhsHEU= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= -github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0= @@ -35,7 +34,6 @@ github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69 github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -60,7 +58,6 @@ github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs= github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0= github.com/ipfs/go-block-format v0.2.0 h1:ZqrkxBA2ICbDRbK8KJs/u0O3dlp6gmAuuXUJNiW1Ycs= github.com/ipfs/go-block-format v0.2.0/go.mod h1:+jpL11nFx5A/SPpsoBn6Bzkra/zaArfSmsknbPMYgzM= -github.com/ipfs/go-cid v0.0.6/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s= github.com/ipfs/go-cid v0.4.1/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk= github.com/ipfs/go-datastore v0.6.0 h1:JKyz+Gvz1QEZw0LsX1IBn+JFCJQH4SJVFtM4uWU0Myk= @@ -88,10 +85,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.3.0/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8= github.com/jackc/pgx/v5 v5.5.0 h1:NxstgwndsTRy7eq9/kqYc/BZh5w2hHJV86wjvO+1xPw= github.com/jackc/pgx/v5 v5.5.0/go.mod h1:Ig06C2Vu0t5qXC60W8sqIthScaEnFvojjj9dSljmHRA= -github.com/jackc/puddle/v2 v2.2.0/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA= @@ -109,11 +104,9 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.17.3 h1:qkRjuerhUU1EmXLYGkSH6EZL+vPSxIrYjLNAK4slzwA= github.com/klauspost/compress v1.17.3/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= -github.com/klauspost/cpuid/v2 v2.2.6 h1:ndNyv040zDGIDh8thGkXYjnFtiN02M1PVVF+JE/48xc= -github.com/klauspost/cpuid/v2 v2.2.6/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= +github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -143,37 +136,28 @@ github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27k github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-sqlite3 v1.14.18 h1:JL0eqdCOq6DJVNPSvArO/bIV9/P7fbGrV00LZHc+5aI= -github.com/mattn/go-sqlite3 v1.14.18/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= +github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= +github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= -github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= -github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= -github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= -github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE= github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI= -github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM= github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0= github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= -github.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc= github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g= github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk= -github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= github.com/multiformats/go-multihash v0.2.3 h1:7Lyc8XfX/IY2jWb/gI7JP+o7JEq9hOa7BFvVU9RSh+U= github.com/multiformats/go-multihash v0.2.3/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsCKRVch90MdaGiKsvSM= -github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/orandin/slog-gorm v1.3.2 h1:C0lKDQPAx/pF+8K2HL7bdShPwOEJpPM0Bn80zTzxU1g= +github.com/orandin/slog-gorm v1.3.2/go.mod h1:MoZ51+b7xE9lwGNPYEhxcUtRNrYzjdcKvA8QXQQGEPA= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -188,7 +172,6 @@ github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGy github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -213,9 +196,9 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/urfave/cli v1.22.10/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs= github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= @@ -225,8 +208,8 @@ github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQ github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0 h1:GDDkbFiaK8jsSDJfjId/PEGEShv6ugrt4kYsC5UIDaQ= github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= -github.com/whyrusleeping/cbor-gen v0.0.0-20230923211252-36a87e1ba72f h1:SBuSxXJL0/ZJMtTxbXZgHZkThl9dNrzyaNhlyaqscRo= -github.com/whyrusleeping/cbor-gen v0.0.0-20230923211252-36a87e1ba72f/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= +github.com/whyrusleeping/cbor-gen v0.1.1-0.20240311221002-68b9f235c302 h1:MhInbXe4SzcImAKktUvWBCWZgcw6MYf5NfumTj1BhAw= +github.com/whyrusleeping/cbor-gen v0.1.1-0.20240311221002-68b9f235c302/go.mod h1:pM99HXyEbSQHcosHc0iW7YFmwnscr+t9Te4ibko05so= github.com/whyrusleeping/go-did v0.0.0-20230824162731-404d1707d5d6 h1:yJ9/LwIGIk/c0CdoavpC9RNSGSruIspSZtxG3Nnldic= github.com/whyrusleeping/go-did v0.0.0-20230824162731-404d1707d5d6/go.mod h1:39U9RRVr4CKbXpXYopWn+FSH5s+vWu6+RmguSPWAq5s= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= @@ -239,8 +222,8 @@ gitlab.com/yawning/secp256k1-voi v0.0.0-20230925100816-f2616030848b h1:CzigHMRyS gitlab.com/yawning/secp256k1-voi v0.0.0-20230925100816-f2616030848b/go.mod h1:/y/V339mxv2sZmYYR64O07VuCpdNZqCTwO8ZcouTMI8= gitlab.com/yawning/tuplehash v0.0.0-20230713102510-df83abbf9a02 h1:qwDnMxjkyLmAFgcfgTnfJrmYKWhHnci3GjDqcZp1M3Q= gitlab.com/yawning/tuplehash v0.0.0-20230713102510-df83abbf9a02/go.mod h1:JTnUj0mpYiAsuZLmKjTx/ex3AtMowcCgnE7YNyCEP0I= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.42.0 h1:pginetY7+onl4qN1vl0xW/V/v6OBZ0vVdH+esuJgvmM= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.42.0/go.mod h1:XiYsayHc36K3EByOO6nbAXnAWbrUxdjUROCEeeROOH8= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= @@ -265,14 +248,12 @@ go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= -golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -290,8 +271,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= -golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -316,8 +297,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -365,13 +346,12 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= -gorm.io/driver/postgres v1.5.0/go.mod h1:FUZXzO+5Uqg5zzwzv4KK49R8lvGIyscBOqYrtI1Ce9A= -gorm.io/driver/sqlite v1.5.4 h1:IqXwXi8M/ZlPzH/947tn5uik3aYQslP9BVveoax0nV0= -gorm.io/driver/sqlite v1.5.4/go.mod h1:qxAuCol+2r6PannQDpOP1FP6ag3mKi4esLnB/jHed+4= -gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/gorm v1.25.5 h1:zR9lOiiYf09VNh5Q1gphfyia1JpiClIWG9hQaxB/mls= -gorm.io/gorm v1.25.5/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= +gorm.io/driver/postgres v1.5.7 h1:8ptbNJTDbEmhdr62uReG5BGkdQyeasu/FZHxI0IMGnM= +gorm.io/driver/postgres v1.5.7/go.mod h1:3e019WlBaYI5o5LIdNV+LyxCMNtLOQETBXL2h4chKpA= +gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= +gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= +gorm.io/gorm v1.25.9 h1:wct0gxZIELDk8+ZqF/MVnHLkA1rvYlBWUMv2EdsK1g8= +gorm.io/gorm v1.25.9/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= diff --git a/bskyweb/static/.well-known/apple-app-site-association b/bskyweb/static/.well-known/apple-app-site-association index 232acdf255..f5752d7c15 100644 --- a/bskyweb/static/.well-known/apple-app-site-association +++ b/bskyweb/static/.well-known/apple-app-site-association @@ -1,6 +1,5 @@ { "applinks": { - "apps": [], "details": [ { "appID": "B3LX46C5HS.xyz.blueskyweb.app", @@ -9,5 +8,8 @@ ] } ] + }, + "appclips": { + "apps": ["B3LX46C5HS.xyz.blueskyweb.app.AppClip"] } -} \ No newline at end of file +} diff --git a/bskyweb/static/robots.txt b/bskyweb/static/robots.txt index 4b53a1d996..ed110a32a7 100644 --- a/bskyweb/static/robots.txt +++ b/bskyweb/static/robots.txt @@ -7,4 +7,5 @@ # be ok. User-Agent: * Allow: / +Disallow: /video-download Disallow: /ACKNOWLEDGEMENTS.txt diff --git a/bskyweb/templates/starterpack.html b/bskyweb/templates/starterpack.html new file mode 100644 index 0000000000..80cbfc80a6 --- /dev/null +++ b/bskyweb/templates/starterpack.html @@ -0,0 +1,26 @@ +{% extends "base.html" %} + +{% block html_head_extra -%} + + {%- if requestURI %} + + {% endif -%} + {%- if imgThumbUrl %} + + + {%- else -%} + + + {% endif -%} + + {%- if title %} + + + {%- else -%} + + + {% endif -%} + + + +{%- endblock %} diff --git a/docs/build.md b/docs/build.md index 88733d3b09..dc710686e7 100644 --- a/docs/build.md +++ b/docs/build.md @@ -4,7 +4,10 @@ - Set up your environment [using the expo instructions](https://docs.expo.dev/guides/local-app-development/). - make sure that the JAVA_HOME points to the zulu-17 directory in your `.zshrc` or `.bashrc` file: `export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home`. DO NOT use another JDK or you will encounter build errors. -- If you're running macOS, make sure you are running the correct versions of Ruby and Cocoapods: +- If you're running macOS, make sure you are running the correct versions of Ruby and Cocoapods:- + - If you are using Apple Silicon and this is the first time you are building for RN 0.74+, you may need to run: + - `arch -arm64 brew install llvm` + - `sudo gem install ffi` - Check if you've installed Cocoapods through `homebrew`. If you have, remove it: - `brew info cocoapods` - If output says `Installed`: diff --git a/docs/deploy-ota.md b/docs/deploy-ota.md new file mode 100644 index 0000000000..391a6bf6bf --- /dev/null +++ b/docs/deploy-ota.md @@ -0,0 +1,95 @@ +# OTA Deployments + +## Overview + +![OTA Deployment](./img/ota-flow.png) + +## Internal Deployments + +Internal OTA deployments should be performed automatically upon all merges into main. In cases where the fingerprint +diff results in incompatible native changes, a new client build will automatically be ran and deployed to TestFlight +(iOS) or delivered in Slack (Android). + +## Production Deployments + +### Prerequisites + +- Find the latest production build number for both iOS and Android in Slack. These are listed in #client-builds + - Production builds always send the Version Number and Build Number in the Slack message. Search for the latest + production version number, and you should find the correct information. + + ![slack-build-info](./img/slack-build-info.png) + +- It may also be useful to check the current production clients for these values. This will also help for testing. Note +that you will need to _fully_ remove the existing internal client build from your device, otherwise the given values in +the app may differ from the actual production values. + + ![app-build-number](./img/app-build-number.png) + +- You should have signed in to EAS locally through npx eas login. You will need to modify the build number in a +subsequent step. +- Ensure that the commit the initial client was cut from is properly tagged in git. The tag should be in the format of 1.X.0 + - Note: If the commit is not properly tagged, then the OTA deployment will simply fail since the GitHub Action will + not be able to find a commit to fingerprint and diff against. + +### Preparation + +- Create a new branch from the git tag that the initial release was cut from if no OTA deployment has been made yet for this +client. Name this branch `1.X.0-ota-1` +- If a deployment has been made previously for this release, increment the branch name, i.e. `1.x.0-ota-2` +- If necessary, cherry-pick the commit(s) that you wish to deploy +- Ensure that the package.json’s version field is set to the appropriate value. As long as used the correct git tag +to create your branch from, this should be properly set. + +### Deployment + +- Update the build number through EAS to match the build numbers of the + production iOS/Android apps + - Note: This isn’t strictly necessary, but having a step that takes you off of GitHub and into the terminal provides + a little “friction” to avoid fat fingering a release. Since there are legitimate reasons to just “click and deploy” + for internal builds, I felt it useful to make sure it doesn’t accidentally become a prod deployment. + - Set the build numbers to the values found in the prerequisite steps. Again, this should be the + build number for the current production release you want to deploy for. + - `npx eas build:version:set -p ios` + - `npx eas build:version:set -p android` + - These steps should spit out what the current build number is, save those values + for later too +- Run the deployment + - Navigate to https://github.com/bluesky-social/social-app/actions/workflows/bundle-deploy-eas-update.yml + - Select the “Run Workflow” dropdown + + ![run-workflow](./img/run-workflow.png) + + - Select the branch for the deployment you are releasing. + + ![branch-selection](./img/branch-selection.png) + + - Double check the branch selection. + - Select the production channel + - Enter the version for the client you are releasing to, i.e. 1.80.0 + - Note: If you do enter an incorrect version here, the deployment will either: + - Fail because the action cannot find a commit with your misentered version + - Succeed - but with no users receiving the update. This is because the version you entered will not properly + correlate to a _build number_ as well, so no clients in the wild will be able to receive the update. + + ![other-ota-options](./img/other-ota-options.png) + + - Triple check the branch selection. + - You selected the correct branch + - You selected the "Production" channel + - You entered the correct version in the format of `1.X.0`. + - Press “Run Workflow” + +In about five minutes, the new deployment should be available for download. To test: + +- Remove the internal build of the app from your device +- Download the app from the App Store/Google Play +- Launch the app once and wait approximately 15 seconds +- Relaunch the app +- Check the Settings page and scroll to the bottom. The commit hash should now be the latest commit on your deployed branch. + +### Post Deployment + +- Reset both platforms build numbers to what they were before the OTA + deployment. These values should have been logged by the EAS CLI when you + reset them to the production values prior to OTA. diff --git a/docs/img/app-build-number.png b/docs/img/app-build-number.png new file mode 100644 index 0000000000..449309bd33 Binary files /dev/null and b/docs/img/app-build-number.png differ diff --git a/docs/img/branch-selection.png b/docs/img/branch-selection.png new file mode 100644 index 0000000000..650583687c Binary files /dev/null and b/docs/img/branch-selection.png differ diff --git a/docs/img/ota-flow.png b/docs/img/ota-flow.png new file mode 100644 index 0000000000..f7b72b35df Binary files /dev/null and b/docs/img/ota-flow.png differ diff --git a/docs/img/other-ota-options.png b/docs/img/other-ota-options.png new file mode 100644 index 0000000000..8715c65c1f Binary files /dev/null and b/docs/img/other-ota-options.png differ diff --git a/docs/img/run-workflow.png b/docs/img/run-workflow.png new file mode 100644 index 0000000000..f0aa2fcb1f Binary files /dev/null and b/docs/img/run-workflow.png differ diff --git a/docs/img/slack-build-info.png b/docs/img/slack-build-info.png new file mode 100644 index 0000000000..1f69518ced Binary files /dev/null and b/docs/img/slack-build-info.png differ diff --git a/eas.json b/eas.json index ed647dbb9c..a705c40027 100644 --- a/eas.json +++ b/eas.json @@ -46,6 +46,20 @@ "EXPO_PUBLIC_ENV": "production" } }, + "production-apk": { + "extends": "base", + "distribution": "internal", + "ios": { + "autoIncrement": false + }, + "android": { + "autoIncrement": false + }, + "channel": "production", + "env": { + "EXPO_PUBLIC_ENV": "production" + } + }, "testflight": { "extends": "base", "ios": { diff --git a/eslint/index.js b/eslint/index.js index bb31a942d1..cf5d41225d 100644 --- a/eslint/index.js +++ b/eslint/index.js @@ -3,6 +3,7 @@ module.exports = { rules: { 'avoid-unwrapped-text': require('./avoid-unwrapped-text'), + 'use-exact-imports': require('./use-exact-imports'), 'use-typed-gates': require('./use-typed-gates'), }, } diff --git a/eslint/use-exact-imports.js b/eslint/use-exact-imports.js new file mode 100644 index 0000000000..06723043fe --- /dev/null +++ b/eslint/use-exact-imports.js @@ -0,0 +1,22 @@ +/* eslint-disable bsky-internal/use-exact-imports */ +const BANNED_IMPORTS = [ + '@fortawesome/free-regular-svg-icons', + '@fortawesome/free-solid-svg-icons', +] + +exports.create = function create(context) { + return { + Literal(node) { + if (typeof node.value !== 'string') { + return + } + if (BANNED_IMPORTS.includes(node.value)) { + context.report({ + node, + message: + 'Import the specific thing you want instead of the entire package', + }) + } + }, + } +} diff --git a/index.js b/index.js index 7630d0538a..2f13ce1ea1 100644 --- a/index.js +++ b/index.js @@ -1,14 +1,11 @@ import 'react-native-gesture-handler' // must be first -import {LogBox} from 'react-native' - import '#/platform/polyfills' -import {IS_TEST} from '#/env' + +import {LogBox} from 'react-native' import {registerRootComponent} from 'expo' -import {doPolyfill} from '#/lib/api/api-polyfill' import App from '#/App' - -doPolyfill() +import {IS_TEST} from '#/env' if (IS_TEST) { LogBox.ignoreAllLogs() // suppress all logs in tests diff --git a/index.web.js b/index.web.js index 9623734512..be75bc772e 100644 --- a/index.web.js +++ b/index.web.js @@ -1,9 +1,8 @@ import '#/platform/markBundleStartTime' - import '#/platform/polyfills' + import {registerRootComponent} from 'expo' -import {doPolyfill} from '#/lib/api/api-polyfill' + import App from '#/App' -doPolyfill() registerRootComponent(App) diff --git a/jest/jestSetup.js b/jest/jestSetup.js index e690e813a9..a68c1dc4bf 100644 --- a/jest/jestSetup.js +++ b/jest/jestSetup.js @@ -1,10 +1,10 @@ /* global jest */ -import {configure} from '@testing-library/react-native' import 'react-native-gesture-handler/jestSetup' - // IMPORTANT: this is what's used in the native runtime import 'react-native-url-polyfill/auto' +import {configure} from '@testing-library/react-native' + configure({asyncUtilTimeout: 20000}) jest.mock('@react-native-async-storage/async-storage', () => @@ -90,3 +90,21 @@ jest.mock('sentry-expo', () => ({ })) jest.mock('crypto', () => ({})) + +jest.mock('expo-application', () => ({ + nativeApplicationVersion: '1.0.0', + nativeBuildVersion: '1', +})) + +jest.mock('expo-modules-core', () => ({ + requireNativeModule: jest.fn().mockImplementation(moduleName => { + if (moduleName === 'ExpoPlatformInfo') { + return { + getIsReducedMotionEnabled: () => false, + } + } + }), + requireNativeViewManager: jest.fn().mockImplementation(moduleName => { + return () => null + }), +})) diff --git a/jest/test-pds.ts b/jest/test-pds.ts index 2fe623ca98..bfcc970c2f 100644 --- a/jest/test-pds.ts +++ b/jest/test-pds.ts @@ -156,7 +156,7 @@ class Mocker { } async createUser(name: string) { - const agent = new BskyAgent({service: this.agent.service}) + const agent = new BskyAgent({service: this.service}) const inviteRes = await agent.api.com.atproto.server.createInviteCode( {useCount: 1}, @@ -332,7 +332,7 @@ class Mocker { } async createInvite(forAccount: string) { - const agent = new BskyAgent({service: this.agent.service}) + const agent = new BskyAgent({service: this.service}) await agent.api.com.atproto.server.createInviteCode( {useCount: 1, forAccount}, { diff --git a/lib/react-compiler-runtime/index.js b/lib/react-compiler-runtime/index.js new file mode 100644 index 0000000000..44f80e0c98 --- /dev/null +++ b/lib/react-compiler-runtime/index.js @@ -0,0 +1,21 @@ +const React = require('react') +const $empty = Symbol.for('react.memo_cache_sentinel') +/** + * DANGER: this hook is NEVER meant to be called directly! + * + * Note that this is a temporary userspace implementation of this function + * from React 19. It is not as efficient and may invalidate more frequently + * than the official API. Please upgrade to React 19 as soon as you can. + **/ +export function c(size) { + // eslint-disable-next-line react-hooks/rules-of-hooks + return React.useState(() => { + const $ = new Array(size) + for (let ii = 0; ii < size; ii++) { + $[ii] = $empty + } + // @ts-ignore + $[$empty] = true + return $ + })[0] +} diff --git a/lib/react-compiler-runtime/package.json b/lib/react-compiler-runtime/package.json new file mode 100644 index 0000000000..cb8f78bd55 --- /dev/null +++ b/lib/react-compiler-runtime/package.json @@ -0,0 +1,9 @@ +{ + "name": "react-compiler-runtime", + "version": "0.0.1", + "license": "MIT", + "main": "index.js", + "peerDependencies": { + "react": "^18.2.0" + } +} \ No newline at end of file diff --git a/modules/BlueskyClip/AppDelegate.swift b/modules/BlueskyClip/AppDelegate.swift new file mode 100644 index 0000000000..684194953c --- /dev/null +++ b/modules/BlueskyClip/AppDelegate.swift @@ -0,0 +1,32 @@ +import UIKit + +@main +class AppDelegate: UIResponder, UIApplicationDelegate { + var window: UIWindow? + var controller: ViewController? + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + let window = UIWindow() + self.window = UIWindow() + + let controller = ViewController(window: window) + self.controller = controller + + window.rootViewController = self.controller + window.makeKeyAndVisible() + + return true + } + + func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { + self.controller?.handleURL(url: url) + return true + } + + func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { + if let incomingURL = userActivity.webpageURL { + self.controller?.handleURL(url: incomingURL) + } + return true + } +} diff --git a/modules/BlueskyClip/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png b/modules/BlueskyClip/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png new file mode 100644 index 0000000000..75ce4b813a Binary files /dev/null and b/modules/BlueskyClip/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png differ diff --git a/modules/BlueskyClip/Images.xcassets/AppIcon.appiconset/Contents.json b/modules/BlueskyClip/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..c3bb428dbd --- /dev/null +++ b/modules/BlueskyClip/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "App-Icon-1024x1024@1x.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/modules/BlueskyClip/Images.xcassets/Contents.json b/modules/BlueskyClip/Images.xcassets/Contents.json new file mode 100644 index 0000000000..73c00596a7 --- /dev/null +++ b/modules/BlueskyClip/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/modules/BlueskyClip/ViewController.swift b/modules/BlueskyClip/ViewController.swift new file mode 100644 index 0000000000..b178644b8f --- /dev/null +++ b/modules/BlueskyClip/ViewController.swift @@ -0,0 +1,133 @@ +import UIKit +import WebKit +import StoreKit + +class ViewController: UIViewController, WKScriptMessageHandler, WKNavigationDelegate { + let defaults = UserDefaults(suiteName: "group.app.bsky") + + var window: UIWindow + var webView: WKWebView? + + var prevUrl: URL? + var starterPackUrl: URL? + + init(window: UIWindow) { + self.window = window + super.init(nibName: nil, bundle: nil) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func viewDidLoad() { + super.viewDidLoad() + + let contentController = WKUserContentController() + contentController.add(self, name: "onMessage") + let configuration = WKWebViewConfiguration() + configuration.userContentController = contentController + + let webView = WKWebView(frame: self.view.bounds, configuration: configuration) + webView.translatesAutoresizingMaskIntoConstraints = false + webView.contentMode = .scaleToFill + webView.navigationDelegate = self + self.view.addSubview(webView) + self.webView = webView + } + + func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { + guard let response = message.body as? String, + let data = response.data(using: .utf8), + let payload = try? JSONDecoder().decode(WebViewActionPayload.self, from: data) else { + return + } + + switch payload.action { + case .present: + guard let url = self.starterPackUrl else { + return + } + + self.presentAppStoreOverlay() + defaults?.setValue(url.absoluteString, forKey: "starterPackUri") + + case .store: + guard let keyToStoreAs = payload.keyToStoreAs, let jsonToStore = payload.jsonToStore else { + return + } + + self.defaults?.setValue(jsonToStore, forKey: keyToStoreAs) + } + } + + func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction) async -> WKNavigationActionPolicy { + // Detect when we land on the right URL. This is incase of a short link opening the app clip + guard let url = navigationAction.request.url else { + return .allow + } + + // Store the previous one to compare later, but only set starterPackUrl when we find the right one + prevUrl = url + // pathComponents starts with "/" as the first component, then each path name. so... + // ["/", "start", "name", "rkey"] + if url.pathComponents.count == 4, + url.pathComponents[1] == "start" { + self.starterPackUrl = url + } + + return .allow + } + + func handleURL(url: URL) { + let urlString = "\(url.absoluteString)?clip=true" + if let url = URL(string: urlString) { + self.webView?.load(URLRequest(url: url)) + } + } + + func presentAppStoreOverlay() { + guard let windowScene = self.window.windowScene else { + return + } + + let configuration = SKOverlay.AppClipConfiguration(position: .bottomRaised) + let overlay = SKOverlay(configuration: configuration) + + overlay.present(in: windowScene) + } + + func getHost(_ url: URL?) -> String? { + if #available(iOS 16.0, *) { + return url?.host() + } else { + return url?.host + } + } + + func getQuery(_ url: URL?) -> String? { + if #available(iOS 16.0, *) { + return url?.query() + } else { + return url?.query + } + } + + func urlMatchesPrevious(_ url: URL?) -> Bool { + if #available(iOS 16.0, *) { + return url?.query() == prevUrl?.query() && url?.host() == prevUrl?.host() && url?.query() == prevUrl?.query() + } else { + return url?.query == prevUrl?.query && url?.host == prevUrl?.host && url?.query == prevUrl?.query + } + } +} + +struct WebViewActionPayload: Decodable { + enum Action: String, Decodable { + case present, store + } + + let action: Action + let keyToStoreAs: String? + let jsonToStore: String? +} diff --git a/modules/BlueskyNSE/NotificationService.swift b/modules/BlueskyNSE/NotificationService.swift index c6f391e007..f863eaf223 100644 --- a/modules/BlueskyNSE/NotificationService.swift +++ b/modules/BlueskyNSE/NotificationService.swift @@ -1,4 +1,5 @@ import UserNotifications +import UIKit let APP_GROUP = "group.app.bsky" @@ -6,45 +7,49 @@ class NotificationService: UNNotificationServiceExtension { var prefs = UserDefaults(suiteName: APP_GROUP) override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) { - guard var bestAttempt = createCopy(request.content), + guard let bestAttempt = createCopy(request.content), let reason = request.content.userInfo["reason"] as? String else { contentHandler(request.content) return } - + if reason == "chat-message" { mutateWithChatMessage(bestAttempt) + } else { + mutateWithBadge(bestAttempt) } - - // The badge should always be incremented when in the background - mutateWithBadge(bestAttempt) - + contentHandler(bestAttempt) } - + override func serviceExtensionTimeWillExpire() { // If for some reason the alloted time expires, we don't actually want to display a notification } - + func createCopy(_ content: UNNotificationContent) -> UNMutableNotificationContent? { return content.mutableCopy() as? UNMutableNotificationContent } - + func mutateWithBadge(_ content: UNMutableNotificationContent) { - content.badge = 1 + var count = prefs?.integer(forKey: "badgeCount") ?? 0 + count += 1 + + // Set the new badge number for the notification, then store that value for using later + content.badge = NSNumber(value: count) + prefs?.setValue(count, forKey: "badgeCount") } - + func mutateWithChatMessage(_ content: UNMutableNotificationContent) { if self.prefs?.bool(forKey: "playSoundChat") == true { mutateWithDmSound(content) } } - + func mutateWithDefaultSound(_ content: UNMutableNotificationContent) { content.sound = UNNotificationSound.default } - + func mutateWithDmSound(_ content: UNMutableNotificationContent) { content.sound = UNNotificationSound(named: UNNotificationSoundName(rawValue: "dm.aiff")) } diff --git a/modules/Share-with-Bluesky/ShareViewController.swift b/modules/Share-with-Bluesky/ShareViewController.swift index 4c1d635ce3..c045d578fe 100644 --- a/modules/Share-with-Bluesky/ShareViewController.swift +++ b/modules/Share-with-Bluesky/ShareViewController.swift @@ -30,12 +30,11 @@ class ShareViewController: UIViewController { } } - private func handleText(item: NSItemProvider) async -> Void { + private func handleText(item: NSItemProvider) async { do { if let data = try await item.loadItem(forTypeIdentifier: "public.text") as? String { if let encoded = data.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed), - let url = URL(string: "\(self.appScheme)://intent/compose?text=\(encoded)") - { + let url = URL(string: "\(self.appScheme)://intent/compose?text=\(encoded)") { _ = self.openURL(url) } } @@ -45,12 +44,11 @@ class ShareViewController: UIViewController { } } - private func handleUrl(item: NSItemProvider) async -> Void { + private func handleUrl(item: NSItemProvider) async { do { if let data = try await item.loadItem(forTypeIdentifier: "public.url") as? URL { if let encoded = data.absoluteString.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed), - let url = URL(string: "\(self.appScheme)://intent/compose?text=\(encoded)") - { + let url = URL(string: "\(self.appScheme)://intent/compose?text=\(encoded)") { _ = self.openURL(url) } } @@ -60,7 +58,7 @@ class ShareViewController: UIViewController { } } - private func handleImages(items: [NSItemProvider]) async -> Void { + private func handleImages(items: [NSItemProvider]) async { let firstFourItems: [NSItemProvider] if items.count < 4 { firstFourItems = items @@ -72,7 +70,7 @@ class ShareViewController: UIViewController { var imageUris = "" for (index, item) in firstFourItems.enumerated() { - var imageUriInfo: String? = nil + var imageUriInfo: String? do { if let dataUri = try await item.loadItem(forTypeIdentifier: "public.image") as? URL { @@ -100,8 +98,7 @@ class ShareViewController: UIViewController { if valid, let encoded = imageUris.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed), - let url = URL(string: "\(self.appScheme)://intent/compose?imageUris=\(encoded)") - { + let url = URL(string: "\(self.appScheme)://intent/compose?imageUris=\(encoded)") { _ = self.openURL(url) } @@ -119,13 +116,11 @@ class ShareViewController: UIViewController { // extension does. if let dir = FileManager() .containerURL( - forSecurityApplicationGroupIdentifier: "group.app.bsky") - { + forSecurityApplicationGroupIdentifier: "group.app.bsky") { let filePath = "\(dir.absoluteString)\(ProcessInfo.processInfo.globallyUniqueString).jpeg" if let newUri = URL(string: filePath), - let jpegData = image.jpegData(compressionQuality: 1) - { + let jpegData = image.jpegData(compressionQuality: 1) { try jpegData.write(to: newUri) return "\(newUri.absoluteString)|\(image.size.width)|\(image.size.height)" } @@ -136,7 +131,7 @@ class ShareViewController: UIViewController { } } - private func completeRequest() -> Void { + private func completeRequest() { self.extensionContext?.completeRequest(returningItems: nil) } diff --git a/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/BackgroundNotificationHandler.kt b/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/BackgroundNotificationHandler.kt index 344508523d..7c1494c706 100644 --- a/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/BackgroundNotificationHandler.kt +++ b/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/BackgroundNotificationHandler.kt @@ -5,7 +5,7 @@ import com.google.firebase.messaging.RemoteMessage class BackgroundNotificationHandler( private val context: Context, - private val notifInterface: BackgroundNotificationHandlerInterface + private val notifInterface: BackgroundNotificationHandlerInterface, ) { fun handleMessage(remoteMessage: RemoteMessage) { if (ExpoBackgroundNotificationHandlerModule.isForegrounded) { @@ -35,5 +35,8 @@ class BackgroundNotificationHandler( remoteMessage.data["sound"] = null } } + + // TODO - Remove this once we have more backend capability + remoteMessage.data["badge"] = null } } diff --git a/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/ExpoBackgroundNotificationHandlerModule.kt b/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/ExpoBackgroundNotificationHandlerModule.kt index 083ff1223c..0cc5fa6ab1 100644 --- a/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/ExpoBackgroundNotificationHandlerModule.kt +++ b/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/ExpoBackgroundNotificationHandlerModule.kt @@ -8,63 +8,68 @@ class ExpoBackgroundNotificationHandlerModule : Module() { var isForegrounded = false } - override fun definition() = ModuleDefinition { - Name("ExpoBackgroundNotificationHandler") + override fun definition() = + ModuleDefinition { + Name("ExpoBackgroundNotificationHandler") - OnCreate { - NotificationPrefs(appContext.reactContext).initialize() - } + OnCreate { + NotificationPrefs(appContext.reactContext).initialize() + } - OnActivityEntersForeground { - isForegrounded = true - } + OnActivityEntersForeground { + isForegrounded = true + } - OnActivityEntersBackground { - isForegrounded = false - } + OnActivityEntersBackground { + isForegrounded = false + } - AsyncFunction("getAllPrefsAsync") { - return@AsyncFunction NotificationPrefs(appContext.reactContext).getAllPrefs() - } + AsyncFunction("getAllPrefsAsync") { + return@AsyncFunction NotificationPrefs(appContext.reactContext).getAllPrefs() + } - AsyncFunction("getBoolAsync") { forKey: String -> - return@AsyncFunction NotificationPrefs(appContext.reactContext).getBoolean(forKey) - } + AsyncFunction("getBoolAsync") { forKey: String -> + return@AsyncFunction NotificationPrefs(appContext.reactContext).getBoolean(forKey) + } - AsyncFunction("getStringAsync") { forKey: String -> - return@AsyncFunction NotificationPrefs(appContext.reactContext).getString(forKey) - } + AsyncFunction("getStringAsync") { forKey: String -> + return@AsyncFunction NotificationPrefs(appContext.reactContext).getString(forKey) + } - AsyncFunction("getStringArrayAsync") { forKey: String -> - return@AsyncFunction NotificationPrefs(appContext.reactContext).getStringArray(forKey) - } + AsyncFunction("getStringArrayAsync") { forKey: String -> + return@AsyncFunction NotificationPrefs(appContext.reactContext).getStringArray(forKey) + } - AsyncFunction("setBoolAsync") { forKey: String, value: Boolean -> - NotificationPrefs(appContext.reactContext).setBoolean(forKey, value) - } + AsyncFunction("setBoolAsync") { forKey: String, value: Boolean -> + NotificationPrefs(appContext.reactContext).setBoolean(forKey, value) + } - AsyncFunction("setStringAsync") { forKey: String, value: String -> - NotificationPrefs(appContext.reactContext).setString(forKey, value) - } + AsyncFunction("setStringAsync") { forKey: String, value: String -> + NotificationPrefs(appContext.reactContext).setString(forKey, value) + } - AsyncFunction("setStringArrayAsync") { forKey: String, value: Array -> - NotificationPrefs(appContext.reactContext).setStringArray(forKey, value) - } + AsyncFunction("setStringArrayAsync") { forKey: String, value: Array -> + NotificationPrefs(appContext.reactContext).setStringArray(forKey, value) + } - AsyncFunction("addToStringArrayAsync") { forKey: String, string: String -> - NotificationPrefs(appContext.reactContext).addToStringArray(forKey, string) - } + AsyncFunction("addToStringArrayAsync") { forKey: String, string: String -> + NotificationPrefs(appContext.reactContext).addToStringArray(forKey, string) + } - AsyncFunction("removeFromStringArrayAsync") { forKey: String, string: String -> - NotificationPrefs(appContext.reactContext).removeFromStringArray(forKey, string) - } + AsyncFunction("removeFromStringArrayAsync") { forKey: String, string: String -> + NotificationPrefs(appContext.reactContext).removeFromStringArray(forKey, string) + } - AsyncFunction("addManyToStringArrayAsync") { forKey: String, strings: Array -> - NotificationPrefs(appContext.reactContext).addManyToStringArray(forKey, strings) - } + AsyncFunction("addManyToStringArrayAsync") { forKey: String, strings: Array -> + NotificationPrefs(appContext.reactContext).addManyToStringArray(forKey, strings) + } - AsyncFunction("removeManyFromStringArrayAsync") { forKey: String, strings: Array -> - NotificationPrefs(appContext.reactContext).removeManyFromStringArray(forKey, strings) + AsyncFunction("removeManyFromStringArrayAsync") { forKey: String, strings: Array -> + NotificationPrefs(appContext.reactContext).removeManyFromStringArray(forKey, strings) + } + + AsyncFunction("setBadgeCountAsync") { _: Int -> + // This does nothing on Android + } } - } } diff --git a/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/NotificationPrefs.kt b/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/NotificationPrefs.kt index 17ef9205ef..97b05b4d73 100644 --- a/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/NotificationPrefs.kt +++ b/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/NotificationPrefs.kt @@ -2,20 +2,24 @@ package expo.modules.backgroundnotificationhandler import android.content.Context -val DEFAULTS = mapOf( - "playSoundChat" to true, - "playSoundFollow" to false, - "playSoundLike" to false, - "playSoundMention" to false, - "playSoundQuote" to false, - "playSoundReply" to false, - "playSoundRepost" to false, - "mutedThreads" to mapOf>() -) +val DEFAULTS = + mapOf( + "playSoundChat" to true, + "playSoundFollow" to false, + "playSoundLike" to false, + "playSoundMention" to false, + "playSoundQuote" to false, + "playSoundReply" to false, + "playSoundRepost" to false, + "mutedThreads" to mapOf>(), + ) -class NotificationPrefs (private val context: Context?) { - private val prefs = context?.getSharedPreferences("xyz.blueskyweb.app", Context.MODE_PRIVATE) - ?: throw Error("Context is null") +class NotificationPrefs( + private val context: Context?, +) { + private val prefs = + context?.getSharedPreferences("xyz.blueskyweb.app", Context.MODE_PRIVATE) + ?: throw Error("Context is null") fun initialize() { prefs @@ -41,94 +45,99 @@ class NotificationPrefs (private val context: Context?) { } } } - } - .apply() + }.apply() } - fun getAllPrefs(): MutableMap { - return prefs.all - } + fun getAllPrefs(): MutableMap = prefs.all - fun getBoolean(key: String): Boolean { - return prefs.getBoolean(key, false) - } + fun getBoolean(key: String): Boolean = prefs.getBoolean(key, false) - fun getString(key: String): String? { - return prefs.getString(key, null) - } + fun getString(key: String): String? = prefs.getString(key, null) - fun getStringArray(key: String): Array? { - return prefs.getStringSet(key, null)?.toTypedArray() - } + fun getStringArray(key: String): Array? = prefs.getStringSet(key, null)?.toTypedArray() - fun setBoolean(key: String, value: Boolean) { + fun setBoolean( + key: String, + value: Boolean, + ) { prefs .edit() .apply { putBoolean(key, value) - } - .apply() + }.apply() } - fun setString(key: String, value: String) { + fun setString( + key: String, + value: String, + ) { prefs .edit() .apply { putString(key, value) - } - .apply() + }.apply() } - fun setStringArray(key: String, value: Array) { + fun setStringArray( + key: String, + value: Array, + ) { prefs .edit() .apply { putStringSet(key, value.toSet()) - } - .apply() + }.apply() } - fun addToStringArray(key: String, string: String) { + fun addToStringArray( + key: String, + string: String, + ) { prefs .edit() .apply { val set = prefs.getStringSet(key, null)?.toMutableSet() ?: mutableSetOf() set.add(string) putStringSet(key, set) - } - .apply() + }.apply() } - fun removeFromStringArray(key: String, string: String) { + fun removeFromStringArray( + key: String, + string: String, + ) { prefs .edit() .apply { val set = prefs.getStringSet(key, null)?.toMutableSet() ?: mutableSetOf() set.remove(string) putStringSet(key, set) - } - .apply() + }.apply() } - fun addManyToStringArray(key: String, strings: Array) { + fun addManyToStringArray( + key: String, + strings: Array, + ) { prefs .edit() .apply { val set = prefs.getStringSet(key, null)?.toMutableSet() ?: mutableSetOf() set.addAll(strings.toSet()) putStringSet(key, set) - } - .apply() + }.apply() } - fun removeManyFromStringArray(key: String, strings: Array) { + fun removeManyFromStringArray( + key: String, + strings: Array, + ) { prefs .edit() .apply { val set = prefs.getStringSet(key, null)?.toMutableSet() ?: mutableSetOf() set.removeAll(strings.toSet()) putStringSet(key, set) - } - .apply() + }.apply() } -} \ No newline at end of file +} diff --git a/modules/expo-background-notification-handler/ios/ExpoBackgroundNotificationHandlerModule.swift b/modules/expo-background-notification-handler/ios/ExpoBackgroundNotificationHandlerModule.swift index 08972a04c5..3845fe765c 100644 --- a/modules/expo-background-notification-handler/ios/ExpoBackgroundNotificationHandlerModule.swift +++ b/modules/expo-background-notification-handler/ios/ExpoBackgroundNotificationHandlerModule.swift @@ -2,15 +2,16 @@ import ExpoModulesCore let APP_GROUP = "group.app.bsky" -let DEFAULTS: [String:Any] = [ - "playSoundChat" : true, +let DEFAULTS: [String: Any] = [ + "playSoundChat": true, "playSoundFollow": false, "playSoundLike": false, "playSoundMention": false, "playSoundQuote": false, "playSoundReply": false, "playSoundRepost": false, - "mutedThreads": [:] as! [String:[String]] + "mutedThreads": [:] as! [String: [String]], + "badgeCount": 0 ] /* @@ -22,10 +23,10 @@ let DEFAULTS: [String:Any] = [ */ public class ExpoBackgroundNotificationHandlerModule: Module { let userDefaults = UserDefaults(suiteName: APP_GROUP) - + public func definition() -> ModuleDefinition { Name("ExpoBackgroundNotificationHandler") - + OnCreate { DEFAULTS.forEach { p in if userDefaults?.value(forKey: p.key) == nil { @@ -33,57 +34,56 @@ public class ExpoBackgroundNotificationHandlerModule: Module { } } } - - AsyncFunction("getAllPrefsAsync") { () -> [String:Any]? in + + AsyncFunction("getAllPrefsAsync") { () -> [String: Any]? in var keys: [String] = [] DEFAULTS.forEach { p in keys.append(p.key) } return userDefaults?.dictionaryWithValues(forKeys: keys) } - + AsyncFunction("getBoolAsync") { (forKey: String) -> Bool in if let pref = userDefaults?.bool(forKey: forKey) { return pref } return false } - + AsyncFunction("getStringAsync") { (forKey: String) -> String? in if let pref = userDefaults?.string(forKey: forKey) { return pref } return nil } - + AsyncFunction("getStringArrayAsync") { (forKey: String) -> [String]? in if let pref = userDefaults?.stringArray(forKey: forKey) { return pref } return nil } - - AsyncFunction("setBoolAsync") { (forKey: String, value: Bool) -> Void in + + AsyncFunction("setBoolAsync") { (forKey: String, value: Bool) in userDefaults?.setValue(value, forKey: forKey) } - - AsyncFunction("setStringAsync") { (forKey: String, value: String) -> Void in + + AsyncFunction("setStringAsync") { (forKey: String, value: String) in userDefaults?.setValue(value, forKey: forKey) } - - AsyncFunction("setStringArrayAsync") { (forKey: String, value: [String]) -> Void in + + AsyncFunction("setStringArrayAsync") { (forKey: String, value: [String]) in userDefaults?.setValue(value, forKey: forKey) } - + AsyncFunction("addToStringArrayAsync") { (forKey: String, string: String) in if var curr = userDefaults?.stringArray(forKey: forKey), - !curr.contains(string) - { + !curr.contains(string) { curr.append(string) userDefaults?.setValue(curr, forKey: forKey) } } - + AsyncFunction("removeFromStringArrayAsync") { (forKey: String, string: String) in if var curr = userDefaults?.stringArray(forKey: forKey) { curr.removeAll { s in @@ -92,7 +92,7 @@ public class ExpoBackgroundNotificationHandlerModule: Module { userDefaults?.setValue(curr, forKey: forKey) } } - + AsyncFunction("addManyToStringArrayAsync") { (forKey: String, strings: [String]) in if var curr = userDefaults?.stringArray(forKey: forKey) { strings.forEach { s in @@ -103,7 +103,7 @@ public class ExpoBackgroundNotificationHandlerModule: Module { userDefaults?.setValue(curr, forKey: forKey) } } - + AsyncFunction("removeManyFromStringArrayAsync") { (forKey: String, strings: [String]) in if var curr = userDefaults?.stringArray(forKey: forKey) { strings.forEach { s in @@ -112,5 +112,9 @@ public class ExpoBackgroundNotificationHandlerModule: Module { userDefaults?.setValue(curr, forKey: forKey) } } + + AsyncFunction("setBadgeCountAsync") { (count: Int) in + userDefaults?.setValue(count, forKey: "badgeCount") + } } } diff --git a/modules/expo-background-notification-handler/src/ExpoBackgroundNotificationHandler.types.ts b/modules/expo-background-notification-handler/src/ExpoBackgroundNotificationHandler.types.ts index 5fbd302da9..b74148db48 100644 --- a/modules/expo-background-notification-handler/src/ExpoBackgroundNotificationHandler.types.ts +++ b/modules/expo-background-notification-handler/src/ExpoBackgroundNotificationHandler.types.ts @@ -31,6 +31,7 @@ export type ExpoBackgroundNotificationHandlerModule = { forKey: keyof BackgroundNotificationHandlerPreferences, value: string[], ) => Promise + setBadgeCountAsync: (count: number) => Promise } // TODO there are more preferences in the native code, however they have not been added here yet. diff --git a/modules/expo-background-notification-handler/src/ExpoBackgroundNotificationHandlerModule.web.ts b/modules/expo-background-notification-handler/src/ExpoBackgroundNotificationHandlerModule.web.ts index 29e27fd0fa..893548e183 100644 --- a/modules/expo-background-notification-handler/src/ExpoBackgroundNotificationHandlerModule.web.ts +++ b/modules/expo-background-notification-handler/src/ExpoBackgroundNotificationHandlerModule.web.ts @@ -24,4 +24,5 @@ export const BackgroundNotificationHandler = { removeFromStringArrayAsync: async (_: string, __: string) => {}, addManyToStringArrayAsync: async (_: string, __: string[]) => {}, removeManyFromStringArrayAsync: async (_: string, __: string[]) => {}, + setBadgeCountAsync: async (_: number) => {}, } as ExpoBackgroundNotificationHandlerModule diff --git a/modules/expo-bluesky-gif-view/android/src/main/java/expo/modules/blueskygifview/AppCompatImageViewExtended.kt b/modules/expo-bluesky-gif-view/android/src/main/java/expo/modules/blueskygifview/AppCompatImageViewExtended.kt index 5d20848453..5ba5ccf71a 100644 --- a/modules/expo-bluesky-gif-view/android/src/main/java/expo/modules/blueskygifview/AppCompatImageViewExtended.kt +++ b/modules/expo-bluesky-gif-view/android/src/main/java/expo/modules/blueskygifview/AppCompatImageViewExtended.kt @@ -5,7 +5,10 @@ import android.graphics.Canvas import android.graphics.drawable.Animatable import androidx.appcompat.widget.AppCompatImageView -class AppCompatImageViewExtended(context: Context, private val parent: GifView): AppCompatImageView(context) { +class AppCompatImageViewExtended( + context: Context, + private val parent: GifView, +) : AppCompatImageView(context) { override fun onDraw(canvas: Canvas) { super.onDraw(canvas) @@ -34,4 +37,4 @@ class AppCompatImageViewExtended(context: Context, private val parent: GifView): drawable.start() } } -} \ No newline at end of file +} diff --git a/modules/expo-bluesky-gif-view/android/src/main/java/expo/modules/blueskygifview/ExpoBlueskyGifViewModule.kt b/modules/expo-bluesky-gif-view/android/src/main/java/expo/modules/blueskygifview/ExpoBlueskyGifViewModule.kt index 625e1d45f9..b0b3e8eeb7 100644 --- a/modules/expo-bluesky-gif-view/android/src/main/java/expo/modules/blueskygifview/ExpoBlueskyGifViewModule.kt +++ b/modules/expo-bluesky-gif-view/android/src/main/java/expo/modules/blueskygifview/ExpoBlueskyGifViewModule.kt @@ -6,49 +6,50 @@ import expo.modules.kotlin.modules.Module import expo.modules.kotlin.modules.ModuleDefinition class ExpoBlueskyGifViewModule : Module() { - override fun definition() = ModuleDefinition { - Name("ExpoBlueskyGifView") + override fun definition() = + ModuleDefinition { + Name("ExpoBlueskyGifView") - AsyncFunction("prefetchAsync") { sources: List -> - val activity = appContext.currentActivity ?: return@AsyncFunction - val glide = Glide.with(activity) + AsyncFunction("prefetchAsync") { sources: List -> + val activity = appContext.currentActivity ?: return@AsyncFunction + val glide = Glide.with(activity) - sources.forEach { source -> - glide - .download(source) - .diskCacheStrategy(DiskCacheStrategy.DATA) - .submit() + sources.forEach { source -> + glide + .download(source) + .diskCacheStrategy(DiskCacheStrategy.DATA) + .submit() + } + } + + View(GifView::class) { + Events( + "onPlayerStateChange", + ) + + Prop("source") { view: GifView, source: String -> + view.source = source + } + + Prop("placeholderSource") { view: GifView, source: String -> + view.placeholderSource = source + } + + Prop("autoplay") { view: GifView, autoplay: Boolean -> + view.autoplay = autoplay + } + + AsyncFunction("playAsync") { view: GifView -> + view.play() + } + + AsyncFunction("pauseAsync") { view: GifView -> + view.pause() + } + + AsyncFunction("toggleAsync") { view: GifView -> + view.toggle() + } } } - - View(GifView::class) { - Events( - "onPlayerStateChange" - ) - - Prop("source") { view: GifView, source: String -> - view.source = source - } - - Prop("placeholderSource") { view: GifView, source: String -> - view.placeholderSource = source - } - - Prop("autoplay") { view: GifView, autoplay: Boolean -> - view.autoplay = autoplay - } - - AsyncFunction("playAsync") { view: GifView -> - view.play() - } - - AsyncFunction("pauseAsync") { view: GifView -> - view.pause() - } - - AsyncFunction("toggleAsync") { view: GifView -> - view.toggle() - } - } - } } diff --git a/modules/expo-bluesky-gif-view/android/src/main/java/expo/modules/blueskygifview/GifView.kt b/modules/expo-bluesky-gif-view/android/src/main/java/expo/modules/blueskygifview/GifView.kt index be5830df7a..5e467a1603 100644 --- a/modules/expo-bluesky-gif-view/android/src/main/java/expo/modules/blueskygifview/GifView.kt +++ b/modules/expo-bluesky-gif-view/android/src/main/java/expo/modules/blueskygifview/GifView.kt @@ -1,6 +1,5 @@ package expo.modules.blueskygifview - import android.content.Context import android.graphics.Color import android.graphics.drawable.Animatable @@ -15,7 +14,10 @@ import expo.modules.kotlin.exception.Exceptions import expo.modules.kotlin.viewevent.EventDispatcher import expo.modules.kotlin.views.ExpoView -class GifView(context: Context, appContext: AppContext) : ExpoView(context, appContext) { +class GifView( + context: Context, + appContext: AppContext, +) : ExpoView(context, appContext) { // Events private val onPlayerStateChange by EventDispatcher() @@ -44,8 +46,7 @@ class GifView(context: Context, appContext: AppContext) : ExpoView(context, appC } } - - // + // init { this.setBackgroundColor(Color.TRANSPARENT) @@ -70,80 +71,82 @@ class GifView(context: Context, appContext: AppContext) : ExpoView(context, appC super.onDetachedFromWindow() } - // + // - // + // private fun load() { if (placeholderSource == null || source == null) { return } - this.webpRequest = glide.load(source) - .diskCacheStrategy(DiskCacheStrategy.DATA) - .skipMemoryCache(false) - .listener(object: RequestListener { - override fun onResourceReady( - resource: Drawable?, - model: Any?, - target: Target?, - dataSource: com.bumptech.glide.load.DataSource?, - isFirstResource: Boolean - ): Boolean { - if (placeholderRequest != null) { - glide.clear(placeholderRequest) - } - return false - } + this.webpRequest = + glide + .load(source) + .diskCacheStrategy(DiskCacheStrategy.DATA) + .skipMemoryCache(false) + .listener( + object : RequestListener { + override fun onResourceReady( + resource: Drawable?, + model: Any?, + target: Target?, + dataSource: com.bumptech.glide.load.DataSource?, + isFirstResource: Boolean, + ): Boolean { + if (placeholderRequest != null) { + glide.clear(placeholderRequest) + } + return false + } - override fun onLoadFailed( - e: GlideException?, - model: Any?, - target: Target?, - isFirstResource: Boolean - ): Boolean { - return true - } - }) - .into(this.imageView) + override fun onLoadFailed( + e: GlideException?, + model: Any?, + target: Target?, + isFirstResource: Boolean, + ): Boolean = true + }, + ).into(this.imageView) if (this.imageView.drawable == null || this.imageView.drawable !is Animatable) { - this.placeholderRequest = glide.load(placeholderSource) - .diskCacheStrategy(DiskCacheStrategy.DATA) - // Let's not bloat the memory cache with placeholders - .skipMemoryCache(true) - .listener(object: RequestListener { - override fun onResourceReady( - resource: Drawable?, - model: Any?, - target: Target?, - dataSource: com.bumptech.glide.load.DataSource?, - isFirstResource: Boolean - ): Boolean { - // Incase this request finishes after the webp, let's just not set - // the drawable. This shouldn't happen because the request should get cancelled - if (imageView.drawable == null) { - imageView.setImageDrawable(resource) - } - return true - } + this.placeholderRequest = + glide + .load(placeholderSource) + .diskCacheStrategy(DiskCacheStrategy.DATA) + // Let's not bloat the memory cache with placeholders + .skipMemoryCache(true) + .listener( + object : RequestListener { + override fun onResourceReady( + resource: Drawable?, + model: Any?, + target: Target?, + dataSource: com.bumptech.glide.load.DataSource?, + isFirstResource: Boolean, + ): Boolean { + // Incase this request finishes after the webp, let's just not set + // the drawable. This shouldn't happen because the request should get cancelled + if (imageView.drawable == null) { + imageView.setImageDrawable(resource) + } + return true + } - override fun onLoadFailed( - e: GlideException?, - model: Any?, - target: Target?, - isFirstResource: Boolean - ): Boolean { - return true - } - }) - .submit() + override fun onLoadFailed( + e: GlideException?, + model: Any?, + target: Target?, + isFirstResource: Boolean, + ): Boolean = true + }, + ).submit() } } - // + // - // + // fun play() { this.imageView.play() @@ -165,16 +168,18 @@ class GifView(context: Context, appContext: AppContext) : ExpoView(context, appC } } - // + // - // + // fun firePlayerStateChange() { - onPlayerStateChange(mapOf( - "isPlaying" to this.isPlaying, - "isLoaded" to this.isLoaded, - )) + onPlayerStateChange( + mapOf( + "isPlaying" to this.isPlaying, + "isLoaded" to this.isLoaded, + ), + ) } - // + // } diff --git a/modules/expo-bluesky-gif-view/ios/ExpoBlueskyGifView.podspec b/modules/expo-bluesky-gif-view/ios/ExpoBlueskyGifView.podspec index ddd0877b24..352812640b 100644 --- a/modules/expo-bluesky-gif-view/ios/ExpoBlueskyGifView.podspec +++ b/modules/expo-bluesky-gif-view/ios/ExpoBlueskyGifView.podspec @@ -10,8 +10,8 @@ Pod::Spec.new do |s| s.static_framework = true s.dependency 'ExpoModulesCore' - s.dependency 'SDWebImage', '~> 5.17.0' - s.dependency 'SDWebImageWebPCoder', '~> 0.13.0' + s.dependency 'SDWebImage', '~> 5.19.1' + s.dependency 'SDWebImageWebPCoder', '~> 0.14.6' # Swift/Objective-C compatibility s.pod_target_xcconfig = { diff --git a/modules/expo-bluesky-gif-view/ios/ExpoBlueskyGifViewModule.swift b/modules/expo-bluesky-gif-view/ios/ExpoBlueskyGifViewModule.swift index 7c7132290d..9156bd1990 100644 --- a/modules/expo-bluesky-gif-view/ios/ExpoBlueskyGifViewModule.swift +++ b/modules/expo-bluesky-gif-view/ios/ExpoBlueskyGifViewModule.swift @@ -5,11 +5,11 @@ import SDWebImageWebPCoder public class ExpoBlueskyGifViewModule: Module { public func definition() -> ModuleDefinition { Name("ExpoBlueskyGifView") - + OnCreate { SDImageCodersManager.shared.addCoder(SDImageGIFCoder.shared) } - + AsyncFunction("prefetchAsync") { (sources: [URL]) in SDWebImagePrefetcher.shared.prefetchURLs(sources, context: Util.createContext(), progress: nil) } @@ -18,27 +18,27 @@ public class ExpoBlueskyGifViewModule: Module { Events( "onPlayerStateChange" ) - + Prop("source") { (view: GifView, prop: String) in view.source = prop } - + Prop("placeholderSource") { (view: GifView, prop: String) in view.placeholderSource = prop } - + Prop("autoplay") { (view: GifView, prop: Bool) in view.autoplay = prop } - + AsyncFunction("toggleAsync") { (view: GifView) in view.toggle() } - + AsyncFunction("playAsync") { (view: GifView) in view.play() } - + AsyncFunction("pauseAsync") { (view: GifView) in view.pause() } diff --git a/modules/expo-bluesky-gif-view/ios/GifView.swift b/modules/expo-bluesky-gif-view/ios/GifView.swift index de722d7a63..b42a4735c6 100644 --- a/modules/expo-bluesky-gif-view/ios/GifView.swift +++ b/modules/expo-bluesky-gif-view/ios/GifView.swift @@ -16,14 +16,14 @@ public class GifView: ExpoView, AVPlayerViewControllerDelegate { ) private var isPlaying = true private var isLoaded = false - + // Requests private var webpOperation: SDWebImageCombinedOperation? private var placeholderOperation: SDWebImageCombinedOperation? // Props - var source: String? = nil - var placeholderSource: String? = nil + var source: String? + var placeholderSource: String? var autoplay = true { didSet { if !autoplay { @@ -78,8 +78,7 @@ public class GifView: ExpoView, AVPlayerViewControllerDelegate { // See: // https://github.com/SDWebImage/SDWebImage/blob/master/Docs/HowToUse.md#using-asynchronous-image-caching-independently if !SDImageCache.shared.diskImageDataExists(withKey: source), - let url = URL(string: placeholderSource) - { + let url = URL(string: placeholderSource) { self.placeholderOperation = imageManager.loadImage( with: url, options: [.retryFailed], @@ -132,8 +131,7 @@ public class GifView: ExpoView, AVPlayerViewControllerDelegate { if let placeholderSource = self.placeholderSource, imageUrl?.absoluteString == placeholderSource, self.imageView.image == nil, - let image = image - { + let image = image { self.setImage(image) return } @@ -142,8 +140,7 @@ public class GifView: ExpoView, AVPlayerViewControllerDelegate { imageUrl?.absoluteString == source, // UIImage perf suckssss if the image is animated let data = data, - let animatedImage = SDAnimatedImage(data: data) - { + let animatedImage = SDAnimatedImage(data: data) { self.placeholderOperation?.cancel() self.isPlaying = self.autoplay self.isLoaded = true diff --git a/modules/expo-bluesky-swiss-army/android/build.gradle b/modules/expo-bluesky-swiss-army/android/build.gradle new file mode 100644 index 0000000000..b031cde57e --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/build.gradle @@ -0,0 +1,47 @@ +apply plugin: 'com.android.library' + +group = 'expo.modules.blueskyswissarmy' +version = '0.6.0' + +def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle") +apply from: expoModulesCorePlugin +applyKotlinExpoModulesCorePlugin() +useCoreDependencies() +useExpoPublishing() + +// If you want to use the managed Android SDK versions from expo-modules-core, set this to true. +// The Android SDK versions will be bumped from time to time in SDK releases and may introduce breaking changes in your module code. +// Most of the time, you may like to manage the Android SDK versions yourself. +def useManagedAndroidSdkVersions = false +if (useManagedAndroidSdkVersions) { + useDefaultAndroidSdkVersions() +} else { + buildscript { + // Simple helper that allows the root project to override versions declared by this library. + ext.safeExtGet = { prop, fallback -> + rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback + } + } + project.android { + compileSdkVersion safeExtGet("compileSdkVersion", 34) + defaultConfig { + minSdkVersion safeExtGet("minSdkVersion", 21) + targetSdkVersion safeExtGet("targetSdkVersion", 34) + } + } +} + +android { + namespace "expo.modules.blueskyswissarmy" + defaultConfig { + versionCode 1 + versionName "0.6.0" + } + lintOptions { + abortOnError false + } +} + +dependencies { + implementation("com.android.installreferrer:installreferrer:2.2") +} diff --git a/modules/expo-bluesky-swiss-army/android/src/main/AndroidManifest.xml b/modules/expo-bluesky-swiss-army/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..bdae66c8f5 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/hlsdownload/ExpoHLSDownloadModule.kt b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/hlsdownload/ExpoHLSDownloadModule.kt new file mode 100644 index 0000000000..786b84e41c --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/hlsdownload/ExpoHLSDownloadModule.kt @@ -0,0 +1,35 @@ +package expo.modules.blueskyswissarmy.hlsdownload + +import android.net.Uri +import expo.modules.kotlin.modules.Module +import expo.modules.kotlin.modules.ModuleDefinition + +class ExpoHLSDownloadModule : Module() { + override fun definition() = + ModuleDefinition { + Name("ExpoHLSDownload") + + Function("isAvailable") { + return@Function true + } + + View(HLSDownloadView::class) { + Events( + arrayOf( + "onStart", + "onError", + "onProgress", + "onSuccess", + ), + ) + + Prop("downloaderUrl") { view: HLSDownloadView, downloaderUrl: Uri -> + view.downloaderUrl = downloaderUrl + } + + AsyncFunction("startDownloadAsync") { view: HLSDownloadView, sourceUrl: Uri -> + view.startDownload(sourceUrl) + } + } + } +} diff --git a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/hlsdownload/HLSDownloadView.kt b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/hlsdownload/HLSDownloadView.kt new file mode 100644 index 0000000000..5f3082a819 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/hlsdownload/HLSDownloadView.kt @@ -0,0 +1,141 @@ +package expo.modules.blueskyswissarmy.hlsdownload + +import android.annotation.SuppressLint +import android.content.Context +import android.net.Uri +import android.util.Base64 +import android.util.Log +import android.webkit.DownloadListener +import android.webkit.JavascriptInterface +import android.webkit.WebView +import expo.modules.kotlin.AppContext +import expo.modules.kotlin.viewevent.EventDispatcher +import expo.modules.kotlin.viewevent.ViewEventCallback +import expo.modules.kotlin.views.ExpoView +import org.json.JSONObject +import java.io.File +import java.io.FileOutputStream +import java.net.URI +import java.util.UUID + +class HLSDownloadView( + context: Context, + appContext: AppContext, +) : ExpoView(context, appContext), + DownloadListener { + private val webView = WebView(context) + + var downloaderUrl: Uri? = null + + private val onStart by EventDispatcher() + private val onError by EventDispatcher() + private val onProgress by EventDispatcher() + private val onSuccess by EventDispatcher() + + init { + this.setupWebView() + this.addView(this.webView, LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)) + } + + @SuppressLint("SetJavaScriptEnabled") + private fun setupWebView() { + val webSettings = this.webView.settings + webSettings.javaScriptEnabled = true + webSettings.domStorageEnabled = true + + webView.setDownloadListener(this) + webView.addJavascriptInterface(WebAppInterface(this.onProgress, this.onError), "AndroidInterface") + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + this.webView.stopLoading() + this.webView.clearHistory() + this.webView.removeAllViews() + this.webView.destroy() + } + + fun startDownload(sourceUrl: Uri) { + if (this.downloaderUrl == null) { + this.onError(mapOf(ERROR_KEY to "Downloader URL is not set.")) + return + } + + val url = URI("${this.downloaderUrl}?videoUrl=$sourceUrl") + this.webView.loadUrl(url.toString()) + this.onStart(mapOf()) + } + + override fun onDownloadStart( + url: String?, + userAgent: String?, + contentDisposition: String?, + mimeType: String?, + contentLength: Long, + ) { + if (url == null) { + this.onError(mapOf(ERROR_KEY to "Failed to retrieve download URL from webview.")) + return + } + + val tempDir = context.cacheDir + val fileName = "${UUID.randomUUID()}.mp4" + val file = File(tempDir, fileName) + + val base64 = url.split(",")[1] + val bytes = Base64.decode(base64, Base64.DEFAULT) + + val fos = FileOutputStream(file) + try { + fos.write(bytes) + } catch (e: Exception) { + Log.e("FileDownload", "Error downloading file", e) + this.onError(mapOf(ERROR_KEY to e.message.toString())) + return + } finally { + fos.close() + } + + val uri = Uri.fromFile(file) + this.onSuccess(mapOf("uri" to uri.toString())) + } + + companion object { + const val ERROR_KEY = "message" + } +} + +public class WebAppInterface( + val onProgress: ViewEventCallback>, + val onError: ViewEventCallback>, +) { + @JavascriptInterface + public fun onMessage(message: String) { + val jsonObject = JSONObject(message) + val action = jsonObject.getString("action") + + when (action) { + "error" -> { + val messageStr = jsonObject.get("messageStr") + if (messageStr !is String) { + this.onError(mapOf(ERROR_KEY to "Failed to decode JSON post message.")) + return + } + this.onError(mapOf(ERROR_KEY to messageStr)) + } + "progress" -> { + val messageFloat = jsonObject.get("messageFloat") + if (messageFloat !is Number) { + this.onError(mapOf(ERROR_KEY to "Failed to decode JSON post message.")) + return + } + this.onProgress(mapOf(PROGRESS_KEY to messageFloat)) + } + } + } + + companion object { + const val PROGRESS_KEY = "progress" + const val ERROR_KEY = "message" + } +} diff --git a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/platforminfo/ExpoPlatformInfoModule.kt b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/platforminfo/ExpoPlatformInfoModule.kt new file mode 100644 index 0000000000..189796f817 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/platforminfo/ExpoPlatformInfoModule.kt @@ -0,0 +1,24 @@ +package expo.modules.blueskyswissarmy.platforminfo + +import android.provider.Settings +import expo.modules.kotlin.modules.Module +import expo.modules.kotlin.modules.ModuleDefinition + +class ExpoPlatformInfoModule : Module() { + override fun definition() = + ModuleDefinition { + Name("ExpoPlatformInfo") + + // See https://github.com/software-mansion/react-native-reanimated/blob/7df5fd57d608fe25724608835461cd925ff5151d/packages/react-native-reanimated/android/src/main/java/com/swmansion/reanimated/nativeProxy/NativeProxyCommon.java#L242 + Function("getIsReducedMotionEnabled") { + val resolver = appContext.reactContext?.contentResolver ?: return@Function false + val scale = Settings.Global.getString(resolver, Settings.Global.TRANSITION_ANIMATION_SCALE) ?: return@Function false + + try { + return@Function scale.toFloat() == 0f + } catch (_: Error) { + return@Function false + } + } + } +} diff --git a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/referrer/ExpoBlueskyReferrerModule.kt b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/referrer/ExpoBlueskyReferrerModule.kt new file mode 100644 index 0000000000..52b4daa303 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/referrer/ExpoBlueskyReferrerModule.kt @@ -0,0 +1,103 @@ +package expo.modules.blueskyswissarmy.referrer + +import android.content.Intent +import android.net.Uri +import android.os.Build +import android.util.Log +import com.android.installreferrer.api.InstallReferrerClient +import com.android.installreferrer.api.InstallReferrerStateListener +import expo.modules.kotlin.Promise +import expo.modules.kotlin.modules.Module +import expo.modules.kotlin.modules.ModuleDefinition + +class ExpoBlueskyReferrerModule : Module() { + private var intent: Intent? = null + private var activityReferrer: Uri? = null + + override fun definition() = + ModuleDefinition { + Name("ExpoBlueskyReferrer") + + OnNewIntent { + intent = it + activityReferrer = appContext.currentActivity?.referrer + } + + Function("getReferrerInfo") { + val intentReferrer = + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + intent?.getParcelableExtra(Intent.EXTRA_REFERRER, Uri::class.java) + } else { + intent?.getParcelableExtra(Intent.EXTRA_REFERRER) + } + + // Some apps explicitly set a referrer, like Chrome. In these cases, we prefer this since + // it's the actual website that the user came from rather than the app. + if (intentReferrer is Uri) { + val res = + mapOf( + "referrer" to intentReferrer.toString(), + "hostname" to intentReferrer.host, + ) + intent = null + return@Function res + } + + // In all other cases, we'll just record the app that sent the intent. + if (activityReferrer != null) { + // referrer could become null here. `.toString()` though can be called on null + val res = + mapOf( + "referrer" to activityReferrer.toString(), + "hostname" to (activityReferrer?.host ?: ""), + ) + activityReferrer = null + return@Function res + } + + return@Function null + } + + AsyncFunction("getGooglePlayReferrerInfoAsync") { promise: Promise -> + val referrerClient = InstallReferrerClient.newBuilder(appContext.reactContext).build() + referrerClient.startConnection( + object : InstallReferrerStateListener { + override fun onInstallReferrerSetupFinished(responseCode: Int) { + if (responseCode == InstallReferrerClient.InstallReferrerResponse.OK) { + Log.d("ExpoGooglePlayReferrer", "Successfully retrieved referrer info.") + + val response = referrerClient.installReferrer + Log.d("ExpoGooglePlayReferrer", "Install referrer: ${response.installReferrer}") + + promise.resolve( + mapOf( + "installReferrer" to response.installReferrer, + "clickTimestamp" to response.referrerClickTimestampSeconds, + "installTimestamp" to response.installBeginTimestampSeconds, + ), + ) + } else { + Log.d("ExpoGooglePlayReferrer", "Failed to get referrer info. Unknown error.") + promise.reject( + "ERR_GOOGLE_PLAY_REFERRER_UNKNOWN", + "Failed to get referrer info", + Exception("Failed to get referrer info"), + ) + } + referrerClient.endConnection() + } + + override fun onInstallReferrerServiceDisconnected() { + Log.d("ExpoGooglePlayReferrer", "Failed to get referrer info. Service disconnected.") + referrerClient.endConnection() + promise.reject( + "ERR_GOOGLE_PLAY_REFERRER_DISCONNECTED", + "Failed to get referrer info", + Exception("Failed to get referrer info"), + ) + } + }, + ) + } + } +} diff --git a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/ExpoBlueskySharedPrefsModule.kt b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/ExpoBlueskySharedPrefsModule.kt new file mode 100644 index 0000000000..271956878a --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/ExpoBlueskySharedPrefsModule.kt @@ -0,0 +1,69 @@ +package expo.modules.blueskyswissarmy.sharedprefs + +import android.content.Context +import android.util.Log +import expo.modules.kotlin.jni.JavaScriptValue +import expo.modules.kotlin.modules.Module +import expo.modules.kotlin.modules.ModuleDefinition + +class ExpoBlueskySharedPrefsModule : Module() { + private fun getContext(): Context { + val context = appContext.reactContext ?: throw Error("Context is null") + return context + } + + override fun definition() = + ModuleDefinition { + Name("ExpoBlueskySharedPrefs") + + Function("setString") { key: String, value: String -> + return@Function SharedPrefs(getContext()).setValue(key, value) + } + + Function("setValue") { key: String, value: JavaScriptValue -> + val context = getContext() + Log.d("ExpoBlueskySharedPrefs", "Setting value for key: $key") + try { + if (value.isNumber()) { + SharedPrefs(context).setValue(key, value.getFloat()) + } else if (value.isBool()) { + SharedPrefs(context).setValue(key, value.getBool()) + } else if (value.isNull() || value.isUndefined()) { + SharedPrefs(context).removeValue(key) + } else { + Log.d(NAME, "Unsupported type: ${value.kind()}") + } + } catch (e: Error) { + Log.d(NAME, "Error setting value: $e") + } + } + + Function("removeValue") { key: String -> + return@Function SharedPrefs(getContext()).removeValue(key) + } + + Function("getString") { key: String -> + return@Function SharedPrefs(getContext()).getString(key) + } + + Function("getNumber") { key: String -> + return@Function SharedPrefs(getContext()).getFloat(key) + } + + Function("getBool") { key: String -> + return@Function SharedPrefs(getContext()).getBoolean(key) + } + + Function("addToSet") { key: String, value: String -> + return@Function SharedPrefs(getContext()).addToSet(key, value) + } + + Function("removeFromSet") { key: String, value: String -> + return@Function SharedPrefs(getContext()).removeFromSet(key, value) + } + + Function("setContains") { key: String, value: String -> + return@Function SharedPrefs(getContext()).setContains(key, value) + } + } +} diff --git a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/SharedPrefs.kt b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/SharedPrefs.kt new file mode 100644 index 0000000000..38d79abf1f --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/SharedPrefs.kt @@ -0,0 +1,241 @@ +package expo.modules.blueskyswissarmy.sharedprefs + +import android.content.Context +import android.content.SharedPreferences +import android.util.Log + +val DEFAULTS = + mapOf( + "playSoundChat" to true, + "playSoundFollow" to false, + "playSoundLike" to false, + "playSoundMention" to false, + "playSoundQuote" to false, + "playSoundReply" to false, + "playSoundRepost" to false, + "badgeCount" to 0, + ) + +const val NAME = "SharedPrefs" + +class SharedPrefs( + private val context: Context, +) { + companion object { + private var hasInitialized = false + + private var instance: SharedPreferences? = null + + fun getInstance( + context: Context, + info: String? = "(no info)", + ): SharedPreferences { + if (instance == null) { + Log.d(NAME, "No preferences instance found, creating one.") + instance = context.getSharedPreferences("xyz.blueskyweb.app", Context.MODE_PRIVATE) + } + + val safeInstance = instance ?: throw Error("Preferences is null: $info") + + if (!hasInitialized) { + Log.d(NAME, "Preferences instance has not been initialized yet.") + initialize(safeInstance) + hasInitialized = true + Log.d(NAME, "Preferences instance has been initialized.") + } + + return safeInstance + } + + private fun initialize(instance: SharedPreferences) { + instance + .edit() + .apply { + DEFAULTS.forEach { (key, value) -> + if (instance.contains(key)) { + return@forEach + } + + when (value) { + is Boolean -> { + putBoolean(key, value) + } + + is String -> { + putString(key, value) + } + + is Array<*> -> { + putStringSet(key, value.map { it.toString() }.toSet()) + } + + is Map<*, *> -> { + putStringSet(key, value.map { it.toString() }.toSet()) + } + } + } + }.apply() + } + } + + fun setValue( + key: String, + value: String, + ) { + val safeInstance = getInstance(context) + safeInstance + .edit() + .apply { + putString(key, value) + }.apply() + } + + fun setValue( + key: String, + value: Float, + ) { + val safeInstance = getInstance(context) + safeInstance + .edit() + .apply { + putFloat(key, value) + }.apply() + } + + fun setValue( + key: String, + value: Boolean, + ) { + val safeInstance = getInstance(context) + safeInstance + .edit() + .apply { + putBoolean(key, value) + }.apply() + } + + fun setValue( + key: String, + value: Set, + ) { + val safeInstance = getInstance(context) + safeInstance + .edit() + .apply { + putStringSet(key, value) + }.apply() + } + + fun removeValue(key: String) { + val safeInstance = getInstance(context) + safeInstance + .edit() + .apply { + remove(key) + }.apply() + } + + fun getString(key: String): String? { + val safeInstance = getInstance(context) + return safeInstance.getString(key, null) + } + + fun getFloat(key: String): Float? { + val safeInstance = getInstance(context) + if (!safeInstance.contains(key)) { + return null + } + return safeInstance.getFloat(key, 0.0f) + } + + @Suppress("ktlint:standard:function-naming") + fun _setAnyValue( + key: String, + value: Any, + ) { + val safeInstance = getInstance(context) + safeInstance + .edit() + .apply { + when (value) { + is String -> putString(key, value) + is Float -> putFloat(key, value) + is Boolean -> putBoolean(key, value) + is Set<*> -> putStringSet(key, value.map { it.toString() }.toSet()) + else -> throw Error("Unsupported type: ${value::class.java}") + } + }.apply() + } + + fun getBoolean(key: String): Boolean? { + val safeInstance = getInstance(context) + if (!safeInstance.contains(key)) { + return null + } + Log.d(NAME, "Getting boolean for key: $key") + val res = safeInstance.getBoolean(key, false) + Log.d(NAME, "Got boolean for key: $key, value: $res") + return res + } + + fun addToSet( + key: String, + value: String, + ) { + val safeInstance = getInstance(context) + val set = safeInstance.getStringSet(key, setOf()) ?: setOf() + val newSet = + set.toMutableSet().apply { + add(value) + } + safeInstance + .edit() + .apply { + putStringSet(key, newSet) + }.apply() + } + + fun removeFromSet( + key: String, + value: String, + ) { + val safeInstance = getInstance(context) + val set = safeInstance.getStringSet(key, setOf()) ?: setOf() + val newSet = + set.toMutableSet().apply { + remove(value) + } + safeInstance + .edit() + .apply { + putStringSet(key, newSet) + }.apply() + } + + fun setContains( + key: String, + value: String, + ): Boolean { + val safeInstance = getInstance(context) + val set = safeInstance.getStringSet(key, setOf()) ?: setOf() + return set.contains(value) + } + + fun hasValue(key: String): Boolean { + val safeInstance = getInstance(context) + return safeInstance.contains(key) + } + + fun getValues(keys: Set): Map { + val safeInstance = getInstance(context) + return keys.associateWith { key -> + when (val value = safeInstance.all[key]) { + is String -> value + is Float -> value + is Boolean -> value + is Set<*> -> value + else -> null + } + } + } +} diff --git a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/visibilityview/ExpoBlueskyVisibilityViewModule.kt b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/visibilityview/ExpoBlueskyVisibilityViewModule.kt new file mode 100644 index 0000000000..ddbb05cde3 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/visibilityview/ExpoBlueskyVisibilityViewModule.kt @@ -0,0 +1,23 @@ +package expo.modules.blueskyswissarmy.visibilityview + +import expo.modules.kotlin.modules.Module +import expo.modules.kotlin.modules.ModuleDefinition + +class ExpoBlueskyVisibilityViewModule : Module() { + override fun definition() = + ModuleDefinition { + Name("ExpoBlueskyVisibilityView") + + AsyncFunction("updateActiveViewAsync") { + VisibilityViewManager.updateActiveView() + } + + View(VisibilityView::class) { + Events(arrayOf("onChangeStatus")) + + Prop("enabled") { view: VisibilityView, prop: Boolean -> + view.isViewEnabled = prop + } + } + } +} diff --git a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/visibilityview/VisibilityView.kt b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/visibilityview/VisibilityView.kt new file mode 100644 index 0000000000..a55ab80d5a --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/visibilityview/VisibilityView.kt @@ -0,0 +1,63 @@ +package expo.modules.blueskyswissarmy.visibilityview + +import android.content.Context +import android.graphics.Rect +import expo.modules.kotlin.AppContext +import expo.modules.kotlin.viewevent.EventDispatcher +import expo.modules.kotlin.views.ExpoView + +class VisibilityView( + context: Context, + appContext: AppContext, +) : ExpoView(context, appContext) { + var isViewEnabled: Boolean = false + + private val onChangeStatus by EventDispatcher() + + private var isCurrentlyActive = false + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + VisibilityViewManager.addView(this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + VisibilityViewManager.removeView(this) + } + + fun setIsCurrentlyActive(isActive: Boolean) { + if (isCurrentlyActive == isActive) { + return + } + + this.isCurrentlyActive = isActive + this.onChangeStatus( + mapOf( + "isActive" to isActive, + ), + ) + } + + fun getPositionOnScreen(): Rect? { + if (!this.isShown) { + return null + } + + val screenPosition = intArrayOf(0, 0) + this.getLocationInWindow(screenPosition) + return Rect( + screenPosition[0], + screenPosition[1], + screenPosition[0] + this.width, + screenPosition[1] + this.height, + ) + } + + fun isViewableEnough(): Boolean { + val positionOnScreen = this.getPositionOnScreen() ?: return false + val visibleArea = positionOnScreen.width() * positionOnScreen.height() + val totalArea = this.width * this.height + return visibleArea >= 0.5 * totalArea + } +} diff --git a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/visibilityview/VisibilityViewManager.kt b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/visibilityview/VisibilityViewManager.kt new file mode 100644 index 0000000000..ec1e49816a --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/visibilityview/VisibilityViewManager.kt @@ -0,0 +1,82 @@ +package expo.modules.blueskyswissarmy.visibilityview + +import android.graphics.Rect + +class VisibilityViewManager { + companion object { + private val views = HashMap() + private var currentlyActiveView: VisibilityView? = null + private var prevCount = 0 + + fun addView(view: VisibilityView) { + this.views[view.id] = view + + if (this.prevCount == 0) { + this.updateActiveView() + } + this.prevCount = this.views.count() + } + + fun removeView(view: VisibilityView) { + this.views.remove(view.id) + this.prevCount = this.views.count() + } + + fun updateActiveView() { + var activeView: VisibilityView? = null + val count = this.views.count() + + if (count == 1) { + val view = this.views.values.first() + if (view.isViewableEnough()) { + activeView = view + } + } else if (count > 1) { + val views = this.views.values + var mostVisibleView: VisibilityView? = null + var mostVisiblePosition: Rect? = null + + views.forEach { view -> + if (!view.isViewableEnough()) { + return + } + + val position = view.getPositionOnScreen() ?: return@forEach + val topY = position.centerY() - (position.height() / 2) + + if (topY >= 150) { + if (mostVisiblePosition == null) { + mostVisiblePosition = position + } + + if (position.centerY() <= mostVisiblePosition!!.centerY()) { + mostVisibleView = view + mostVisiblePosition = position + } + } + } + + activeView = mostVisibleView + } + + if (activeView == this.currentlyActiveView) { + return + } + + this.clearActiveView() + if (activeView != null) { + this.setActiveView(activeView) + } + } + + private fun clearActiveView() { + this.currentlyActiveView?.setIsCurrentlyActive(false) + this.currentlyActiveView = null + } + + private fun setActiveView(view: VisibilityView) { + view.setIsCurrentlyActive(true) + this.currentlyActiveView = view + } + } +} diff --git a/modules/expo-bluesky-swiss-army/expo-module.config.json b/modules/expo-bluesky-swiss-army/expo-module.config.json new file mode 100644 index 0000000000..04411ecf7e --- /dev/null +++ b/modules/expo-bluesky-swiss-army/expo-module.config.json @@ -0,0 +1,21 @@ +{ + "platforms": ["ios", "tvos", "android", "web"], + "ios": { + "modules": [ + "ExpoBlueskySharedPrefsModule", + "ExpoBlueskyReferrerModule", + "ExpoBlueskyVisibilityViewModule", + "ExpoHLSDownloadModule", + "ExpoPlatformInfoModule" + ] + }, + "android": { + "modules": [ + "expo.modules.blueskyswissarmy.sharedprefs.ExpoBlueskySharedPrefsModule", + "expo.modules.blueskyswissarmy.referrer.ExpoBlueskyReferrerModule", + "expo.modules.blueskyswissarmy.visibilityview.ExpoBlueskyVisibilityViewModule", + "expo.modules.blueskyswissarmy.platforminfo.ExpoPlatformInfoModule", + "expo.modules.blueskyswissarmy.hlsdownload.ExpoHLSDownloadModule" + ] + } +} diff --git a/modules/expo-bluesky-swiss-army/index.ts b/modules/expo-bluesky-swiss-army/index.ts new file mode 100644 index 0000000000..67dc6ee608 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/index.ts @@ -0,0 +1,15 @@ +import HLSDownloadView from './src/HLSDownload' +import * as PlatformInfo from './src/PlatformInfo' +import {AudioCategory} from './src/PlatformInfo/types' +import * as Referrer from './src/Referrer' +import * as SharedPrefs from './src/SharedPrefs' +import VisibilityView from './src/VisibilityView' + +export { + AudioCategory, + HLSDownloadView, + PlatformInfo, + Referrer, + SharedPrefs, + VisibilityView, +} diff --git a/modules/expo-bluesky-swiss-army/ios/ExpoBlueskySwissArmy.podspec b/modules/expo-bluesky-swiss-army/ios/ExpoBlueskySwissArmy.podspec new file mode 100644 index 0000000000..be4b0eae45 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/ios/ExpoBlueskySwissArmy.podspec @@ -0,0 +1,21 @@ +Pod::Spec.new do |s| + s.name = 'ExpoBlueskySwissArmy' + s.version = '1.0.0' + s.summary = 'A collection of native tools for Bluesky' + s.description = 'A collection of native tools for Bluesky' + s.author = '' + s.homepage = 'https://github.com/bluesky-social/social-app' + s.platforms = { :ios => '13.4', :tvos => '13.4' } + s.source = { git: '' } + s.static_framework = true + + s.dependency 'ExpoModulesCore' + + # Swift/Objective-C compatibility + s.pod_target_xcconfig = { + 'DEFINES_MODULE' => 'YES', + 'SWIFT_COMPILATION_MODE' => 'wholemodule' + } + + s.source_files = "**/*.{h,m,mm,swift,hpp,cpp}" +end diff --git a/modules/expo-bluesky-swiss-army/ios/HLSDownload/ExpoHLSDownloadModule.swift b/modules/expo-bluesky-swiss-army/ios/HLSDownload/ExpoHLSDownloadModule.swift new file mode 100644 index 0000000000..a9b445e489 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/ios/HLSDownload/ExpoHLSDownloadModule.swift @@ -0,0 +1,31 @@ +import ExpoModulesCore + +public class ExpoHLSDownloadModule: Module { + public func definition() -> ModuleDefinition { + Name("ExpoHLSDownload") + + Function("isAvailable") { + if #available(iOS 14.5, *) { + return true + } + return false + } + + View(HLSDownloadView.self) { + Events([ + "onStart", + "onError", + "onProgress", + "onSuccess" + ]) + + Prop("downloaderUrl") { (view: HLSDownloadView, downloaderUrl: URL) in + view.downloaderUrl = downloaderUrl + } + + AsyncFunction("startDownloadAsync") { (view: HLSDownloadView, sourceUrl: URL) in + view.startDownload(sourceUrl: sourceUrl) + } + } + } +} diff --git a/modules/expo-bluesky-swiss-army/ios/HLSDownload/HLSDownloadView.swift b/modules/expo-bluesky-swiss-army/ios/HLSDownload/HLSDownloadView.swift new file mode 100644 index 0000000000..591c09335b --- /dev/null +++ b/modules/expo-bluesky-swiss-army/ios/HLSDownload/HLSDownloadView.swift @@ -0,0 +1,148 @@ +import ExpoModulesCore +import WebKit + +class HLSDownloadView: ExpoView, WKScriptMessageHandler, WKNavigationDelegate, WKDownloadDelegate { + var webView: WKWebView! + var downloaderUrl: URL? + + private var onStart = EventDispatcher() + private var onError = EventDispatcher() + private var onProgress = EventDispatcher() + private var onSuccess = EventDispatcher() + + private var outputUrl: URL? + + public required init(appContext: AppContext? = nil) { + super.init(appContext: appContext) + + // controller for post message api + let contentController = WKUserContentController() + contentController.add(self, name: "onMessage") + let configuration = WKWebViewConfiguration() + configuration.userContentController = contentController + + // create webview + let webView = WKWebView(frame: .zero, configuration: configuration) + + // Use these for debugging, to see the webview itself + webView.autoresizingMask = [.flexibleWidth, .flexibleHeight] + webView.layer.masksToBounds = false + webView.backgroundColor = .clear + webView.contentMode = .scaleToFill + + webView.navigationDelegate = self + + self.addSubview(webView) + self.webView = webView + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // MARK: - view functions + + func startDownload(sourceUrl: URL) { + guard let downloaderUrl = self.downloaderUrl, + let url = URL(string: "\(downloaderUrl.absoluteString)?videoUrl=\(sourceUrl.absoluteString)") else { + self.onError([ + "message": "Downloader URL is not set." + ]) + return + } + + self.onStart() + self.webView.load(URLRequest(url: url)) + } + + // webview message handling + + func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { + guard let response = message.body as? String, + let data = response.data(using: .utf8), + let payload = try? JSONDecoder().decode(WebViewActionPayload.self, from: data) else { + self.onError([ + "message": "Failed to decode JSON post message." + ]) + return + } + + switch payload.action { + case .progress: + guard let progress = payload.messageFloat else { + self.onError([ + "message": "Failed to decode JSON post message." + ]) + return + } + self.onProgress([ + "progress": progress + ]) + case .error: + guard let messageStr = payload.messageStr else { + self.onError([ + "message": "Failed to decode JSON post message." + ]) + return + } + self.onError([ + "message": messageStr + ]) + } + } + + func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction) async -> WKNavigationActionPolicy { + guard #available(iOS 14.5, *) else { + return .cancel + } + + if navigationAction.shouldPerformDownload { + return .download + } else { + return .allow + } + } + + // MARK: - wkdownloaddelegate + + @available(iOS 14.5, *) + func webView(_ webView: WKWebView, navigationAction: WKNavigationAction, didBecome download: WKDownload) { + download.delegate = self + } + + @available(iOS 14.5, *) + func webView(_ webView: WKWebView, navigationResponse: WKNavigationResponse, didBecome download: WKDownload) { + download.delegate = self + } + + @available(iOS 14.5, *) + func download(_ download: WKDownload, decideDestinationUsing response: URLResponse, suggestedFilename: String, completionHandler: @escaping (URL?) -> Void) { + let directory = NSTemporaryDirectory() + let fileName = "\(NSUUID().uuidString).mp4" + let url = NSURL.fileURL(withPathComponents: [directory, fileName]) + + self.outputUrl = url + completionHandler(url) + } + + @available(iOS 14.5, *) + func downloadDidFinish(_ download: WKDownload) { + guard let url = self.outputUrl else { + return + } + self.onSuccess([ + "uri": url.absoluteString + ]) + self.outputUrl = nil + } +} + +struct WebViewActionPayload: Decodable { + enum Action: String, Decodable { + case progress, error + } + + let action: Action + let messageStr: String? + let messageFloat: Float? +} diff --git a/modules/expo-bluesky-swiss-army/ios/PlatformInfo/ExpoPlatformInfoModule.swift b/modules/expo-bluesky-swiss-army/ios/PlatformInfo/ExpoPlatformInfoModule.swift new file mode 100644 index 0000000000..02bf5c6628 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/ios/PlatformInfo/ExpoPlatformInfoModule.swift @@ -0,0 +1,46 @@ +import ExpoModulesCore + +public class ExpoPlatformInfoModule: Module { + private var prevAudioActive: Bool? + private var prevAudioCategory: AVAudioSession.Category? + + public func definition() -> ModuleDefinition { + Name("ExpoPlatformInfo") + + Function("getIsReducedMotionEnabled") { + return UIAccessibility.isReduceMotionEnabled + } + + Function("setAudioCategory") { (audioCategoryString: String) in + let audioCategory = AVAudioSession.Category(rawValue: audioCategoryString) + if audioCategory == self.prevAudioCategory { + return + } + self.prevAudioCategory = audioCategory + DispatchQueue.global(qos: .background).async { + try? AVAudioSession.sharedInstance().setCategory(audioCategory) + } + } + + Function("setAudioActive") { (active: Bool) in + if active == self.prevAudioActive { + return + } + self.prevAudioActive = active + if active { + DispatchQueue.global(qos: .background).async { + try? AVAudioSession.sharedInstance().setActive(true) + } + } else { + DispatchQueue.global(qos: .background).async { + try? AVAudioSession + .sharedInstance() + .setActive( + false, + options: [.notifyOthersOnDeactivation] + ) + } + } + } + } +} diff --git a/modules/expo-bluesky-swiss-army/ios/Referrer/ExpoBlueskyReferrerModule.swift b/modules/expo-bluesky-swiss-army/ios/Referrer/ExpoBlueskyReferrerModule.swift new file mode 100644 index 0000000000..fd28c51e6f --- /dev/null +++ b/modules/expo-bluesky-swiss-army/ios/Referrer/ExpoBlueskyReferrerModule.swift @@ -0,0 +1,7 @@ +import ExpoModulesCore + +public class ExpoBlueskyReferrerModule: Module { + public func definition() -> ModuleDefinition { + Name("ExpoBlueskyReferrer") + } +} diff --git a/modules/expo-bluesky-swiss-army/ios/SharedPrefs/ExpoBlueskySharedPrefsModule.swift b/modules/expo-bluesky-swiss-army/ios/SharedPrefs/ExpoBlueskySharedPrefsModule.swift new file mode 100644 index 0000000000..8549e5b48b --- /dev/null +++ b/modules/expo-bluesky-swiss-army/ios/SharedPrefs/ExpoBlueskySharedPrefsModule.swift @@ -0,0 +1,62 @@ +import Foundation +import ExpoModulesCore + +public class ExpoBlueskySharedPrefsModule: Module { + let defaults = UserDefaults(suiteName: "group.app.bsky") + + func getDefaults(_ info: String = "(no info)") -> UserDefaults? { + guard let defaults = self.defaults else { + NSLog("Failed to get defaults for app group: \(info)") + return nil + } + return defaults + } + + public func definition() -> ModuleDefinition { + Name("ExpoBlueskySharedPrefs") + + // JavaScripValue causes a crash when trying to check `isString()`. Let's + // explicitly define setString instead. + Function("setString") { (key: String, value: String?) in + SharedPrefs.shared.setValue(key, value) + } + + Function("setValue") { (key: String, value: JavaScriptValue) in + if value.isNumber() { + SharedPrefs.shared.setValue(key, value.getDouble()) + } else if value.isBool() { + SharedPrefs.shared.setValue(key, value.getBool()) + } else if value.isNull() || value.isUndefined() { + SharedPrefs.shared.removeValue(key) + } + } + + Function("removeValue") { (key: String) in + SharedPrefs.shared.removeValue(key) + } + + Function("getString") { (key: String) in + return SharedPrefs.shared.getString(key) + } + + Function("getBool") { (key: String) in + return SharedPrefs.shared.getBool(key) + } + + Function("getNumber") { (key: String) in + return SharedPrefs.shared.getNumber(key) + } + + Function("addToSet") { (key: String, value: String) in + SharedPrefs.shared.addToSet(key, value) + } + + Function("removeFromSet") { (key: String, value: String) in + SharedPrefs.shared.removeFromSet(key, value) + } + + Function("setContains") { (key: String, value: String) in + return SharedPrefs.shared.setContains(key, value) + } + } +} diff --git a/modules/expo-bluesky-swiss-army/ios/SharedPrefs/SharedPrefs.swift b/modules/expo-bluesky-swiss-army/ios/SharedPrefs/SharedPrefs.swift new file mode 100644 index 0000000000..a11a71834c --- /dev/null +++ b/modules/expo-bluesky-swiss-army/ios/SharedPrefs/SharedPrefs.swift @@ -0,0 +1,89 @@ +import Foundation + +public class SharedPrefs { + public static let shared = SharedPrefs() + + private let defaults = UserDefaults(suiteName: "group.app.bsky") + + init() { + if defaults == nil { + NSLog("Failed to get user defaults for app group.") + } + } + + private func getDefaults(_ info: String = "(no info)") -> UserDefaults? { + guard let defaults = self.defaults else { + NSLog("Failed to get defaults for app group: \(info)") + return nil + } + return defaults + } + + public func setValue(_ key: String, _ value: String?) { + getDefaults(key)?.setValue(value, forKey: key) + } + + public func setValue(_ key: String, _ value: Double?) { + getDefaults(key)?.setValue(value, forKey: key) + } + + public func setValue(_ key: String, _ value: Bool?) { + getDefaults(key)?.setValue(value, forKey: key) + } + + public func _setAnyValue(_ key: String, _ value: Any?) { + getDefaults(key)?.setValue(value, forKey: key) + } + + public func removeValue(_ key: String) { + getDefaults(key)?.removeObject(forKey: key) + } + + public func getString(_ key: String) -> String? { + return getDefaults(key)?.string(forKey: key) + } + + public func getNumber(_ key: String) -> Double? { + return getDefaults(key)?.double(forKey: key) + } + + public func getBool(_ key: String) -> Bool? { + return getDefaults(key)?.bool(forKey: key) + } + + public func addToSet(_ key: String, _ value: String) { + var dict: [String: Bool]? + if var currDict = getDefaults(key)?.dictionary(forKey: key) as? [String: Bool] { + currDict[value] = true + dict = currDict + } else { + dict = [ + value: true + ] + } + getDefaults(key)?.setValue(dict, forKey: key) + } + + public func removeFromSet(_ key: String, _ value: String) { + guard var dict = getDefaults(key)?.dictionary(forKey: key) as? [String: Bool] else { + return + } + dict.removeValue(forKey: value) + getDefaults(key)?.setValue(dict, forKey: key) + } + + public func setContains(_ key: String, _ value: String) -> Bool { + guard let dict = getDefaults(key)?.dictionary(forKey: key) as? [String: Bool] else { + return false + } + return dict[value] == true + } + + public func hasValue(_ key: String) -> Bool { + return getDefaults(key)?.value(forKey: key) != nil + } + + public func getValues(_ keys: [String]) -> [String: Any?]? { + return getDefaults("keys:\(keys)")?.dictionaryWithValues(forKeys: keys) + } +} diff --git a/modules/expo-bluesky-swiss-army/ios/Visibility/ExpoBlueskyVisibilityViewModule.swift b/modules/expo-bluesky-swiss-army/ios/Visibility/ExpoBlueskyVisibilityViewModule.swift new file mode 100644 index 0000000000..ec12a84af7 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/ios/Visibility/ExpoBlueskyVisibilityViewModule.swift @@ -0,0 +1,21 @@ +import ExpoModulesCore + +public class ExpoBlueskyVisibilityViewModule: Module { + public func definition() -> ModuleDefinition { + Name("ExpoBlueskyVisibilityView") + + AsyncFunction("updateActiveViewAsync") { + VisibilityViewManager.shared.updateActiveView() + } + + View(VisibilityView.self) { + Events([ + "onChangeStatus" + ]) + + Prop("enabled") { (view: VisibilityView, prop: Bool) in + view.enabled = prop + } + } + } +} diff --git a/modules/expo-bluesky-swiss-army/ios/Visibility/VisibilityViewManager.swift b/modules/expo-bluesky-swiss-army/ios/Visibility/VisibilityViewManager.swift new file mode 100644 index 0000000000..ae8e168681 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/ios/Visibility/VisibilityViewManager.swift @@ -0,0 +1,86 @@ +import Foundation + +class VisibilityViewManager { + static let shared = VisibilityViewManager() + + private let views = NSHashTable(options: .weakMemory) + private var currentlyActiveView: VisibilityView? + private var screenHeight: CGFloat = UIScreen.main.bounds.height + private var prevCount = 0 + + func addView(_ view: VisibilityView) { + self.views.add(view) + + if self.prevCount == 0 { + self.updateActiveView() + } + self.prevCount = self.views.count + } + + func removeView(_ view: VisibilityView) { + self.views.remove(view) + self.prevCount = self.views.count + } + + func updateActiveView() { + DispatchQueue.main.async { + var activeView: VisibilityView? + + if self.views.count == 1 { + let view = self.views.allObjects[0] + if view.isViewableEnough() { + activeView = view + } + } else if self.views.count > 1 { + let views = self.views.allObjects + var mostVisibleView: VisibilityView? + var mostVisiblePosition: CGRect? + + views.forEach { view in + if !view.isViewableEnough() { + return + } + + guard let position = view.getPositionOnScreen() else { + return + } + + if position.minY >= 150 { + if mostVisiblePosition == nil { + mostVisiblePosition = position + } + + if let unwrapped = mostVisiblePosition, + position.minY <= unwrapped.minY { + mostVisibleView = view + mostVisiblePosition = position + } + } + } + + activeView = mostVisibleView + } + + if activeView == self.currentlyActiveView { + return + } + + self.clearActiveView() + if let view = activeView { + self.setActiveView(view) + } + } + } + + private func clearActiveView() { + if let currentlyActiveView = self.currentlyActiveView { + currentlyActiveView.setIsCurrentlyActive(isActive: false) + self.currentlyActiveView = nil + } + } + + private func setActiveView(_ view: VisibilityView) { + view.setIsCurrentlyActive(isActive: true) + self.currentlyActiveView = view + } +} diff --git a/modules/expo-bluesky-swiss-army/ios/Visibility/VisiblityView.swift b/modules/expo-bluesky-swiss-army/ios/Visibility/VisiblityView.swift new file mode 100644 index 0000000000..fd99ee4938 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/ios/Visibility/VisiblityView.swift @@ -0,0 +1,69 @@ +import ExpoModulesCore + +class VisibilityView: ExpoView { + var enabled = false { + didSet { + if enabled { + VisibilityViewManager.shared.removeView(self) + } + } + } + + private let onChangeStatus = EventDispatcher() + private var isCurrentlyActiveView = false + + required init(appContext: AppContext? = nil) { + super.init(appContext: appContext) + } + + public override func willMove(toWindow newWindow: UIWindow?) { + super.willMove(toWindow: newWindow) + + if !self.enabled { + return + } + + if newWindow == nil { + VisibilityViewManager.shared.removeView(self) + } else { + VisibilityViewManager.shared.addView(self) + } + } + + func setIsCurrentlyActive(isActive: Bool) { + if isCurrentlyActiveView == isActive { + return + } + self.isCurrentlyActiveView = isActive + self.onChangeStatus([ + "isActive": isActive + ]) + } +} + +// 🚨 DANGER 🚨 +// These functions need to be called from the main thread. Xcode will warn you if you call one of them +// off the main thread, so pay attention! +extension UIView { + func getPositionOnScreen() -> CGRect? { + if let window = self.window { + return self.convert(self.bounds, to: window) + } + return nil + } + + func isViewableEnough() -> Bool { + guard let window = self.window else { + return false + } + + let viewFrameOnScreen = self.convert(self.bounds, to: window) + let screenBounds = window.bounds + let intersection = viewFrameOnScreen.intersection(screenBounds) + + let viewHeight = viewFrameOnScreen.height + let intersectionHeight = intersection.height + + return intersectionHeight >= 0.5 * viewHeight + } +} diff --git a/modules/expo-bluesky-swiss-army/src/HLSDownload/index.native.tsx b/modules/expo-bluesky-swiss-army/src/HLSDownload/index.native.tsx new file mode 100644 index 0000000000..92f26192e5 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/HLSDownload/index.native.tsx @@ -0,0 +1,39 @@ +import React from 'react' +import {StyleProp, ViewStyle} from 'react-native' +import {requireNativeModule, requireNativeViewManager} from 'expo-modules-core' + +import {HLSDownloadViewProps} from './types' + +const NativeModule = requireNativeModule('ExpoHLSDownload') +const NativeView: React.ComponentType< + HLSDownloadViewProps & { + ref: React.RefObject + style: StyleProp + } +> = requireNativeViewManager('ExpoHLSDownload') + +export default class HLSDownloadView extends React.PureComponent { + private nativeRef: React.RefObject = React.createRef() + + constructor(props: HLSDownloadViewProps) { + super(props) + } + + static isAvailable(): boolean { + return NativeModule.isAvailable() + } + + async startDownloadAsync(sourceUrl: string): Promise { + return await this.nativeRef.current.startDownloadAsync(sourceUrl) + } + + render() { + return ( + + ) + } +} diff --git a/modules/expo-bluesky-swiss-army/src/HLSDownload/index.tsx b/modules/expo-bluesky-swiss-army/src/HLSDownload/index.tsx new file mode 100644 index 0000000000..93c50497fa --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/HLSDownload/index.tsx @@ -0,0 +1,22 @@ +import React from 'react' + +import {NotImplementedError} from '../NotImplemented' +import {HLSDownloadViewProps} from './types' + +export default class HLSDownloadView extends React.PureComponent { + constructor(props: HLSDownloadViewProps) { + super(props) + } + + static isAvailable(): boolean { + return false + } + + async startDownloadAsync(sourceUrl: string): Promise { + throw new NotImplementedError({sourceUrl}) + } + + render() { + return null + } +} diff --git a/modules/expo-bluesky-swiss-army/src/HLSDownload/types.ts b/modules/expo-bluesky-swiss-army/src/HLSDownload/types.ts new file mode 100644 index 0000000000..6a474d2820 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/HLSDownload/types.ts @@ -0,0 +1,10 @@ +import {NativeSyntheticEvent} from 'react-native' + +export interface HLSDownloadViewProps { + downloaderUrl: string + onSuccess: (e: NativeSyntheticEvent<{uri: string}>) => void + + onStart?: () => void + onError?: (e: NativeSyntheticEvent<{message: string}>) => void + onProgress?: (e: NativeSyntheticEvent<{progress: number}>) => void +} diff --git a/modules/expo-bluesky-swiss-army/src/NotImplemented.ts b/modules/expo-bluesky-swiss-army/src/NotImplemented.ts new file mode 100644 index 0000000000..876cd7b328 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/NotImplemented.ts @@ -0,0 +1,16 @@ +import {Platform} from 'react-native' + +export class NotImplementedError extends Error { + constructor(params = {}) { + if (__DEV__) { + const caller = new Error().stack?.split('\n')[2] + super( + `Not implemented on ${Platform.OS}. Given params: ${JSON.stringify( + params, + )} ${caller}`, + ) + } else { + super('Not implemented') + } + } +} diff --git a/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.native.ts b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.native.ts new file mode 100644 index 0000000000..b515206d9f --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.native.ts @@ -0,0 +1,20 @@ +import {Platform} from 'react-native' +import {requireNativeModule} from 'expo-modules-core' + +import {AudioCategory} from './types' + +const NativeModule = requireNativeModule('ExpoPlatformInfo') + +export function getIsReducedMotionEnabled(): boolean { + return NativeModule.getIsReducedMotionEnabled() +} + +export function setAudioActive(active: boolean): void { + if (Platform.OS !== 'ios') return + NativeModule.setAudioActive(active) +} + +export function setAudioCategory(audioCategory: AudioCategory): void { + if (Platform.OS !== 'ios') return + NativeModule.setAudioCategory(audioCategory) +} diff --git a/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.ts b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.ts new file mode 100644 index 0000000000..81f8c45f4d --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.ts @@ -0,0 +1,25 @@ +import {NotImplementedError} from '../NotImplemented' +import {AudioCategory} from './types' + +export function getIsReducedMotionEnabled(): boolean { + throw new NotImplementedError() +} + +/** + * Set whether the app's audio should mix with other apps' audio. Will also resume background music playback when `false` + * if it was previously playing. + * @param mixWithOthers + * @see https://developer.apple.com/documentation/avfaudio/avaudiosession/setactiveoptions/1616603-notifyothersondeactivation + */ +export function setAudioActive(active: boolean): void { + throw new NotImplementedError({active}) +} + +/** + * Set the audio category for the app. + * @param audioCategory + * @platform ios + */ +export function setAudioCategory(audioCategory: AudioCategory): void { + throw new NotImplementedError({audioCategory}) +} diff --git a/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.web.ts b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.web.ts new file mode 100644 index 0000000000..61412753c9 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.web.ts @@ -0,0 +1,17 @@ +import {NotImplementedError} from '../NotImplemented' +import {AudioCategory} from './types' + +export function getIsReducedMotionEnabled(): boolean { + if (typeof window === 'undefined') { + return false + } + return window.matchMedia('(prefers-reduced-motion: reduce)').matches +} + +export function setAudioActive(active: boolean): void { + throw new NotImplementedError({active}) +} + +export function setAudioCategory(audioCategory: AudioCategory): void { + throw new NotImplementedError({audioCategory}) +} diff --git a/modules/expo-bluesky-swiss-army/src/PlatformInfo/types.ts b/modules/expo-bluesky-swiss-army/src/PlatformInfo/types.ts new file mode 100644 index 0000000000..374f343183 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/PlatformInfo/types.ts @@ -0,0 +1,15 @@ +/** + * Sets the audio session category on iOS. In general, we should only need to use this for the `playback` and `ambient` + * categories. This enum however includes other categories that are available in the native API for clarity and + * potential future use. + * @see https://developer.apple.com/documentation/avfoundation/avaudiosession/category + * @platform ios + */ +export enum AudioCategory { + Ambient = 'AVAudioSessionCategoryAmbient', + Playback = 'AVAudioSessionCategoryPlayback', + _SoloAmbient = 'AVAudioSessionCategorySoloAmbient', + _Record = 'AVAudioSessionCategoryRecord', + _PlayAndRecord = 'AVAudioSessionCategoryPlayAndRecord', + _MultiRoute = 'AVAudioSessionCategoryMultiRoute', +} diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts b/modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts new file mode 100644 index 0000000000..795c6146c9 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts @@ -0,0 +1,13 @@ +import {requireNativeModule} from 'expo' + +import {GooglePlayReferrerInfo, ReferrerInfo} from './types' + +export const NativeModule = requireNativeModule('ExpoBlueskyReferrer') + +export function getGooglePlayReferrerInfoAsync(): Promise { + return NativeModule.getGooglePlayReferrerInfoAsync() +} + +export function getReferrerInfo(): Promise { + return NativeModule.getReferrerInfo() +} diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/index.ios.ts b/modules/expo-bluesky-swiss-army/src/Referrer/index.ios.ts new file mode 100644 index 0000000000..e76893d308 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/Referrer/index.ios.ts @@ -0,0 +1,37 @@ +import {SharedPrefs} from '../../index' +import {NotImplementedError} from '../NotImplemented' +import {GooglePlayReferrerInfo, ReferrerInfo} from './types' + +export function getGooglePlayReferrerInfoAsync(): Promise { + throw new NotImplementedError() +} + +export function getReferrerInfo(): ReferrerInfo | null { + const referrer = SharedPrefs.getString('referrer') + if (referrer) { + SharedPrefs.removeValue('referrer') + try { + const url = new URL(referrer) + return { + referrer, + hostname: url.hostname, + } + } catch (e) { + return { + referrer, + hostname: referrer, + } + } + } + + const referrerApp = SharedPrefs.getString('referrerApp') + if (referrerApp) { + SharedPrefs.removeValue('referrerApp') + return { + referrer: referrerApp, + hostname: referrerApp, + } + } + + return null +} diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/index.ts b/modules/expo-bluesky-swiss-army/src/Referrer/index.ts new file mode 100644 index 0000000000..ac594402b8 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/Referrer/index.ts @@ -0,0 +1,10 @@ +import {NotImplementedError} from '../NotImplemented' +import {GooglePlayReferrerInfo, ReferrerInfo} from './types' + +export function getGooglePlayReferrerInfoAsync(): Promise { + throw new NotImplementedError() +} + +export function getReferrerInfo(): ReferrerInfo | null { + throw new NotImplementedError() +} diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/index.web.ts b/modules/expo-bluesky-swiss-army/src/Referrer/index.web.ts new file mode 100644 index 0000000000..cfd42642d9 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/Referrer/index.web.ts @@ -0,0 +1,33 @@ +import {Platform} from 'react-native' + +import {NotImplementedError} from '../NotImplemented' +import {GooglePlayReferrerInfo, ReferrerInfo} from './types' + +export function getGooglePlayReferrerInfoAsync(): Promise { + throw new NotImplementedError() +} + +export function getReferrerInfo(): ReferrerInfo | null { + if ( + Platform.OS === 'web' && + // for ssr + typeof document !== 'undefined' && + document != null && + document.referrer + ) { + try { + const url = new URL(document.referrer) + if (url.hostname !== 'bsky.app') { + return { + referrer: url.href, + hostname: url.hostname, + } + } + } catch { + // If something happens to the URL parsing, we don't want to actually cause any problems for the user. Just + // log the error so we might catch it + console.error('Failed to parse referrer URL') + } + } + return null +} diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/types.ts b/modules/expo-bluesky-swiss-army/src/Referrer/types.ts new file mode 100644 index 0000000000..921e3a6921 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/Referrer/types.ts @@ -0,0 +1,10 @@ +export type GooglePlayReferrerInfo = { + installReferrer?: string + clickTimestamp?: number + installTimestamp?: number +} + +export type ReferrerInfo = { + referrer: string + hostname: string +} diff --git a/modules/expo-bluesky-swiss-army/src/SharedPrefs/index.native.ts b/modules/expo-bluesky-swiss-army/src/SharedPrefs/index.native.ts new file mode 100644 index 0000000000..0cea7c53ba --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/SharedPrefs/index.native.ts @@ -0,0 +1,51 @@ +import {requireNativeModule} from 'expo-modules-core' + +const NativeModule = requireNativeModule('ExpoBlueskySharedPrefs') + +export function setValue( + key: string, + value: string | number | boolean | null | undefined, +): void { + // A bug on Android causes `JavaScripValue.isString()` to cause a crash on some occasions, seemingly because of a + // memory violation. Instead, we will use a specific function to set strings on this platform. + if (typeof value === 'string') { + return NativeModule.setString(key, value) + } + return NativeModule.setValue(key, value) +} + +export function removeValue(key: string): void { + return NativeModule.removeValue(key) +} + +export function getString(key: string): string | undefined { + return nullToUndefined(NativeModule.getString(key)) +} + +export function getNumber(key: string): number | undefined { + return nullToUndefined(NativeModule.getNumber(key)) +} + +export function getBool(key: string): boolean | undefined { + return nullToUndefined(NativeModule.getBool(key)) +} + +export function addToSet(key: string, value: string): void { + return NativeModule.addToSet(key, value) +} + +export function removeFromSet(key: string, value: string): void { + return NativeModule.removeFromSet(key, value) +} + +export function setContains(key: string, value: string): boolean { + return NativeModule.setContains(key, value) +} + +// iOS returns `null` if a value does not exist, and Android returns `undefined. Normalize these here for JS types +function nullToUndefined(value: any) { + if (value == null) { + return undefined + } + return value +} diff --git a/modules/expo-bluesky-swiss-army/src/SharedPrefs/index.ts b/modules/expo-bluesky-swiss-army/src/SharedPrefs/index.ts new file mode 100644 index 0000000000..769344007b --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/SharedPrefs/index.ts @@ -0,0 +1,36 @@ +import {NotImplementedError} from '../NotImplemented' + +export function setValue( + key: string, + value: string | number | boolean | null | undefined, +): void { + throw new NotImplementedError({key, value}) +} + +export function removeValue(key: string): void { + throw new NotImplementedError({key}) +} + +export function getString(key: string): string | null { + throw new NotImplementedError({key}) +} + +export function getNumber(key: string): number | null { + throw new NotImplementedError({key}) +} + +export function getBool(key: string): boolean | null { + throw new NotImplementedError({key}) +} + +export function addToSet(key: string, value: string): void { + throw new NotImplementedError({key, value}) +} + +export function removeFromSet(key: string, value: string): void { + throw new NotImplementedError({key, value}) +} + +export function setContains(key: string, value: string): boolean { + throw new NotImplementedError({key, value}) +} diff --git a/modules/expo-bluesky-swiss-army/src/VisibilityView/index.native.tsx b/modules/expo-bluesky-swiss-army/src/VisibilityView/index.native.tsx new file mode 100644 index 0000000000..9d0e8cf220 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/VisibilityView/index.native.tsx @@ -0,0 +1,39 @@ +import React from 'react' +import {StyleProp, ViewStyle} from 'react-native' +import {requireNativeModule, requireNativeViewManager} from 'expo-modules-core' + +import {VisibilityViewProps} from './types' +const NativeView: React.ComponentType<{ + onChangeStatus: (e: {nativeEvent: {isActive: boolean}}) => void + children: React.ReactNode + enabled: Boolean + style: StyleProp +}> = requireNativeViewManager('ExpoBlueskyVisibilityView') + +const NativeModule = requireNativeModule('ExpoBlueskyVisibilityView') + +export async function updateActiveViewAsync() { + await NativeModule.updateActiveViewAsync() +} + +export default function VisibilityView({ + children, + onChangeStatus: onChangeStatusOuter, + enabled, +}: VisibilityViewProps) { + const onChangeStatus = React.useCallback( + (e: {nativeEvent: {isActive: boolean}}) => { + onChangeStatusOuter(e.nativeEvent.isActive) + }, + [onChangeStatusOuter], + ) + + return ( + + {children} + + ) +} diff --git a/modules/expo-bluesky-swiss-army/src/VisibilityView/index.tsx b/modules/expo-bluesky-swiss-army/src/VisibilityView/index.tsx new file mode 100644 index 0000000000..8b4f1928cb --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/VisibilityView/index.tsx @@ -0,0 +1,10 @@ +import {NotImplementedError} from '../NotImplemented' +import {VisibilityViewProps} from './types' + +export async function updateActiveViewAsync() { + throw new NotImplementedError() +} + +export default function VisibilityView({children}: VisibilityViewProps) { + return children +} diff --git a/modules/expo-bluesky-swiss-army/src/VisibilityView/types.ts b/modules/expo-bluesky-swiss-army/src/VisibilityView/types.ts new file mode 100644 index 0000000000..312acf2d29 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/VisibilityView/types.ts @@ -0,0 +1,6 @@ +import React from 'react' +export interface VisibilityViewProps { + children: React.ReactNode + onChangeStatus: (isActive: boolean) => void + enabled: boolean +} diff --git a/modules/expo-receive-android-intents/android/src/main/java/xyz/blueskyweb/app/exporeceiveandroidintents/ExpoReceiveAndroidIntentsModule.kt b/modules/expo-receive-android-intents/android/src/main/java/xyz/blueskyweb/app/exporeceiveandroidintents/ExpoReceiveAndroidIntentsModule.kt index c2e17fb80a..7ecea16314 100644 --- a/modules/expo-receive-android-intents/android/src/main/java/xyz/blueskyweb/app/exporeceiveandroidintents/ExpoReceiveAndroidIntentsModule.kt +++ b/modules/expo-receive-android-intents/android/src/main/java/xyz/blueskyweb/app/exporeceiveandroidintents/ExpoReceiveAndroidIntentsModule.kt @@ -13,16 +13,17 @@ import java.io.FileOutputStream import java.net.URLEncoder class ExpoReceiveAndroidIntentsModule : Module() { - override fun definition() = ModuleDefinition { - Name("ExpoReceiveAndroidIntents") + override fun definition() = + ModuleDefinition { + Name("ExpoReceiveAndroidIntents") - OnNewIntent { - handleIntent(it) + OnNewIntent { + handleIntent(it) + } } - } private fun handleIntent(intent: Intent?) { - if(appContext.currentActivity == null || intent == null) return + if (appContext.currentActivity == null || intent == null) return if (intent.action == Intent.ACTION_SEND) { if (intent.type == "text/plain") { @@ -40,7 +41,7 @@ class ExpoReceiveAndroidIntentsModule : Module() { private fun handleTextIntent(intent: Intent) { intent.getStringExtra(Intent.EXTRA_TEXT)?.let { val encoded = URLEncoder.encode(it, "UTF-8") - "bluesky://intent/compose?text=${encoded}".toUri().let { uri -> + "bluesky://intent/compose?text=$encoded".toUri().let { uri -> val newIntent = Intent(Intent.ACTION_VIEW, uri) appContext.currentActivity?.startActivity(newIntent) } @@ -48,11 +49,12 @@ class ExpoReceiveAndroidIntentsModule : Module() { } private fun handleImageIntent(intent: Intent) { - val uri = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - intent.getParcelableExtra(Intent.EXTRA_STREAM, Uri::class.java) - } else { - intent.getParcelableExtra(Intent.EXTRA_STREAM) - } + val uri = + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + intent.getParcelableExtra(Intent.EXTRA_STREAM, Uri::class.java) + } else { + intent.getParcelableExtra(Intent.EXTRA_STREAM) + } if (uri == null) return handleImageIntents(listOf(uri)) @@ -76,16 +78,16 @@ class ExpoReceiveAndroidIntentsModule : Module() { uris.forEachIndexed { index, uri -> val info = getImageInfo(uri) val params = buildUriData(info) - allParams = "${allParams}${params}" + allParams = "${allParams}$params" if (index < uris.count() - 1) { - allParams = "${allParams}," + allParams = "$allParams," } } val encoded = URLEncoder.encode(allParams, "UTF-8") - "bluesky://intent/compose?imageUris=${encoded}".toUri().let { + "bluesky://intent/compose?imageUris=$encoded".toUri().let { val newIntent = Intent(Intent.ACTION_VIEW, it) appContext.currentActivity?.startActivity(newIntent) } @@ -104,7 +106,7 @@ class ExpoReceiveAndroidIntentsModule : Module() { return mapOf( "width" to bitmap.width, "height" to bitmap.height, - "path" to file.path.toString() + "path" to file.path.toString(), ) } @@ -114,6 +116,6 @@ class ExpoReceiveAndroidIntentsModule : Module() { val path = info.getValue("path") val width = info.getValue("width") val height = info.getValue("height") - return "file://${path}|${width}|${height}" + return "file://$path|$width|$height" } } diff --git a/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderModule.swift b/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderModule.swift index c4ecc788e5..53e2588258 100644 --- a/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderModule.swift +++ b/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderModule.swift @@ -3,7 +3,7 @@ import ExpoModulesCore public class ExpoScrollForwarderModule: Module { public func definition() -> ModuleDefinition { Name("ExpoScrollForwarder") - + View(ExpoScrollForwarderView.self) { Prop("scrollViewTag") { (view: ExpoScrollForwarderView, prop: Int) in view.scrollViewTag = prop diff --git a/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderView.swift b/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderView.swift index 9c0e2f8728..15993ef29e 100644 --- a/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderView.swift +++ b/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderView.swift @@ -8,17 +8,17 @@ class ExpoScrollForwarderView: ExpoView, UIGestureRecognizerDelegate { self.tryFindScrollView() } } - + private var rctScrollView: RCTScrollView? private var rctRefreshCtrl: RCTRefreshControl? private var cancelGestureRecognizers: [UIGestureRecognizer]? private var animTimer: Timer? private var initialOffset: CGFloat = 0.0 private var didImpact: Bool = false - + required init(appContext: AppContext? = nil) { super.init(appContext: appContext) - + let pg = UIPanGestureRecognizer(target: self, action: #selector(callOnPan(_:))) pg.delegate = self self.addGestureRecognizer(pg) @@ -34,28 +34,27 @@ class ExpoScrollForwarderView: ExpoView, UIGestureRecognizerDelegate { self.cancelGestureRecognizers = [lpg, tg] } - // We don't want to recognize the scroll pan gesture and the swipe back gesture together func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { if gestureRecognizer is UIPanGestureRecognizer, otherGestureRecognizer is UIPanGestureRecognizer { return false } - + return true } - + // We only want the "scroll" gesture to happen whenever the pan is vertical, otherwise it will // interfere with the native swipe back gesture. override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { guard let gestureRecognizer = gestureRecognizer as? UIPanGestureRecognizer else { return true } - + let velocity = gestureRecognizer.velocity(in: self) return abs(velocity.y) > abs(velocity.x) } - + // This will be used to cancel the scroll animation whenever we tap inside of the header. We don't need another // recognizer for this one. override func touchesBegan(_ touches: Set, with event: UIEvent?) { @@ -64,32 +63,32 @@ class ExpoScrollForwarderView: ExpoView, UIGestureRecognizerDelegate { // This will be used to cancel the animation whenever we press inside of the scroll view. We don't want to change // the scroll view gesture's delegate, so we add an additional recognizer to detect this. - @IBAction func callOnPress(_ sender: UITapGestureRecognizer) -> Void { + @IBAction func callOnPress(_ sender: UITapGestureRecognizer) { self.stopTimer() } - - @IBAction func callOnPan(_ sender: UIPanGestureRecognizer) -> Void { + + @IBAction func callOnPan(_ sender: UIPanGestureRecognizer) { guard let rctsv = self.rctScrollView, let sv = rctsv.scrollView else { return } let translation = sender.translation(in: self).y - + if sender.state == .began { if sv.contentOffset.y < 0 { sv.contentOffset.y = 0 } - + self.initialOffset = sv.contentOffset.y } if sender.state == .changed { sv.contentOffset.y = self.dampenOffset(-translation + self.initialOffset) - + if sv.contentOffset.y <= -130, !didImpact { let generator = UIImpactFeedbackGenerator(style: .light) generator.impactOccurred() - + self.didImpact = true } } @@ -97,7 +96,7 @@ class ExpoScrollForwarderView: ExpoView, UIGestureRecognizerDelegate { if sender.state == .ended { let velocity = sender.velocity(in: self).y self.didImpact = false - + if sv.contentOffset.y <= -130 { self.rctRefreshCtrl?.forwarderBeginRefreshing() return @@ -108,40 +107,40 @@ class ExpoScrollForwarderView: ExpoView, UIGestureRecognizerDelegate { if abs(velocity) < 250, sv.contentOffset.y >= 0 { return } - + self.startDecayAnimation(translation, velocity) } } - + func startDecayAnimation(_ translation: CGFloat, _ velocity: CGFloat) { guard let sv = self.rctScrollView?.scrollView else { return } - + var velocity = velocity - + self.enableCancelGestureRecognizers() - + if velocity > 0 { velocity = min(velocity, 5000) } else { velocity = max(velocity, -5000) } - + var animTranslation = -translation - self.animTimer = Timer.scheduledTimer(withTimeInterval: 1.0 / 120, repeats: true) { timer in + self.animTimer = Timer.scheduledTimer(withTimeInterval: 1.0 / 120, repeats: true) { _ in velocity *= 0.9875 animTranslation = (-velocity / 120) + animTranslation - + let nextOffset = self.dampenOffset(animTranslation + self.initialOffset) - + if nextOffset <= 0 { if self.initialOffset <= 1 { self.scrollToOffset(0) } else { sv.contentOffset.y = 0 } - + self.stopTimer() return } else { @@ -153,61 +152,60 @@ class ExpoScrollForwarderView: ExpoView, UIGestureRecognizerDelegate { } } } - + func dampenOffset(_ offset: CGFloat) -> CGFloat { if offset < 0 { return offset - (offset * 0.55) } - + return offset } - + func tryFindScrollView() { guard let scrollViewTag = scrollViewTag else { return } - + // Before we switch to a different scrollview, we always want to remove the cancel gesture recognizer. // Otherwise we might end up with duplicates when we switch back to that scrollview. self.removeCancelGestureRecognizers() - + self.rctScrollView = self.appContext? .findView(withTag: scrollViewTag, ofType: RCTScrollView.self) self.rctRefreshCtrl = self.rctScrollView?.scrollView.refreshControl as? RCTRefreshControl - + self.addCancelGestureRecognizers() } - + func addCancelGestureRecognizers() { self.cancelGestureRecognizers?.forEach { r in self.rctScrollView?.scrollView?.addGestureRecognizer(r) } } - + func removeCancelGestureRecognizers() { self.cancelGestureRecognizers?.forEach { r in self.rctScrollView?.scrollView?.removeGestureRecognizer(r) } } - func enableCancelGestureRecognizers() { self.cancelGestureRecognizers?.forEach { r in r.isEnabled = true } } - + func disableCancelGestureRecognizers() { self.cancelGestureRecognizers?.forEach { r in r.isEnabled = false } } - - func scrollToOffset(_ offset: Int, animated: Bool = true) -> Void { + + func scrollToOffset(_ offset: Int, animated: Bool = true) { self.rctScrollView?.scroll(toOffset: CGPoint(x: 0, y: offset), animated: animated) } - func stopTimer() -> Void { + func stopTimer() { self.disableCancelGestureRecognizers() self.animTimer?.invalidate() self.animTimer = nil diff --git a/modules/expo-scroll-forwarder/src/ExpoScrollForwarderView.tsx b/modules/expo-scroll-forwarder/src/ExpoScrollForwarderView.tsx index 93e69333fd..0f5d01c130 100644 --- a/modules/expo-scroll-forwarder/src/ExpoScrollForwarderView.tsx +++ b/modules/expo-scroll-forwarder/src/ExpoScrollForwarderView.tsx @@ -1,5 +1,7 @@ import React from 'react' + import {ExpoScrollForwarderViewProps} from './ExpoScrollForwarder.types' + export function ExpoScrollForwarderView({ children, }: React.PropsWithChildren) { diff --git a/package.json b/package.json index c00d6d4ddd..a6916be2cd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bsky.app", - "version": "1.82.0", + "version": "1.90.0", "private": true, "engines": { "node": ">=18" @@ -29,9 +29,12 @@ "test-ci": "NODE_ENV=test jest --ci --forceExit --reporters=default --reporters=jest-junit", "test-coverage": "NODE_ENV=test jest --coverage", "lint": "eslint --cache --ext .js,.jsx,.ts,.tsx src", + "lint-native": "swiftlint ./modules && ktlint ./modules", + "lint-native:fix": "swiftlint --fix ./modules && ktlint --format ./modules", "typecheck": "tsc --project ./tsconfig.check.json", "e2e:mock-server": "./jest/dev-infra/with-test-redis-and-db.sh ts-node --project tsconfig.e2e.json __e2e__/mock-server.ts", "e2e:metro": "EXPO_PUBLIC_ENV=e2e NODE_ENV=test RN_SRC_EXT=e2e.ts,e2e.tsx expo run:ios", + "e2e:metro-android": "EXPO_PUBLIC_ENV=e2e NODE_ENV=test RN_SRC_EXT=e2e.ts,e2e.tsx expo run:android", "e2e:run": "maestro test __e2e__", "perf:test": "NODE_ENV=test maestro test", "perf:test:run": "NODE_ENV=test maestro test __e2e__/perf-test.yml", @@ -50,33 +53,36 @@ "generate-acknowledgements-file": "npx generate-license-file --input ./package.json --output ./bskyweb/static/ACKNOWLEDGEMENTS.txt" }, "dependencies": { - "@atproto/api": "^0.12.10", + "@atproto/api": "0.13.0", "@bam.tech/react-native-image-resizer": "^3.0.4", "@braintree/sanitize-url": "^6.0.2", "@discord/bottom-sheet": "bluesky-social/react-native-bottom-sheet", "@emoji-mart/react": "^1.1.1", "@expo/html-elements": "^0.4.2", "@expo/webpack-config": "^19.0.0", + "@ffmpeg/ffmpeg": "^0.12.10", + "@ffmpeg/util": "^0.12.1", "@floating-ui/dom": "^1.6.3", "@floating-ui/react-dom": "^2.0.8", - "@formatjs/intl-locale": "^3.4.3", - "@formatjs/intl-pluralrules": "^5.2.10", + "@formatjs/intl-locale": "^4.0.0", + "@formatjs/intl-numberformat": "^8.10.3", + "@formatjs/intl-pluralrules": "^5.2.14", "@fortawesome/fontawesome-svg-core": "^6.1.1", "@fortawesome/free-regular-svg-icons": "^6.1.1", "@fortawesome/free-solid-svg-icons": "^6.1.1", - "@fortawesome/react-native-fontawesome": "^0.3.0", + "@fortawesome/react-native-fontawesome": "^0.3.2", "@lingui/react": "^4.5.0", - "@mattermost/react-native-paste-input": "^0.6.4", + "@mattermost/react-native-paste-input": "^0.7.1", "@miblanchard/react-native-slider": "^2.3.1", "@radix-ui/react-dropdown-menu": "^2.0.6", "@react-native-async-storage/async-storage": "1.23.1", "@react-native-masked-view/masked-view": "0.3.0", - "@react-native-menu/menu": "^0.8.0", + "@react-native-menu/menu": "^1.1.0", "@react-native-picker/picker": "2.6.1", - "@react-navigation/bottom-tabs": "^6.5.7", - "@react-navigation/drawer": "^6.6.2", - "@react-navigation/native": "^6.1.6", - "@react-navigation/native-stack": "^6.9.12", + "@react-navigation/bottom-tabs": "^6.5.20", + "@react-navigation/drawer": "^6.6.15", + "@react-navigation/native": "^6.1.17", + "@react-navigation/native-stack": "^6.9.26", "@segment/analytics-next": "^1.51.3", "@segment/analytics-react": "^1.0.0-rc1", "@segment/analytics-react-native": "^2.10.1", @@ -108,37 +114,40 @@ "base64-js": "^1.5.1", "bcp-47-match": "^2.0.3", "date-fns": "^2.30.0", + "deprecated-react-native-prop-types": "^5.0.0", "email-validator": "^2.0.4", "emoji-mart": "^5.5.2", "eventemitter3": "^5.0.1", - "expo": "^50.0.17", - "expo-application": "^5.8.3", - "expo-build-properties": "^0.11.1", - "expo-camera": "~14.0.4", - "expo-clipboard": "^5.0.1", - "expo-constants": "~15.4.5", - "expo-dev-client": "~3.3.8", - "expo-device": "~5.9.3", - "expo-file-system": "^16.0.9", - "expo-haptics": "^12.8.1", - "expo-image": "~1.10.6", - "expo-image-manipulator": "^11.8.0", - "expo-image-picker": "~14.7.1", - "expo-linear-gradient": "^12.7.2", - "expo-linking": "^6.2.2", - "expo-localization": "~14.8.3", - "expo-media-library": "~15.9.1", - "expo-navigation-bar": "~2.8.1", - "expo-notifications": "~0.27.6", - "expo-sharing": "^11.10.0", - "expo-splash-screen": "~0.26.4", - "expo-status-bar": "~1.11.1", - "expo-system-ui": "~2.9.3", - "expo-task-manager": "~11.7.2", - "expo-updates": "~0.24.10", - "expo-web-browser": "~12.8.2", + "expo": "^51.0.8", + "expo-application": "^5.9.1", + "expo-build-properties": "^0.12.1", + "expo-camera": "~15.0.9", + "expo-clipboard": "^6.0.3", + "expo-dev-client": "^4.0.14", + "expo-device": "~6.0.2", + "expo-file-system": "^17.0.1", + "expo-haptics": "^13.0.1", + "expo-image": "~1.12.9", + "expo-image-manipulator": "^12.0.5", + "expo-image-picker": "~15.0.5", + "expo-linear-gradient": "^13.0.2", + "expo-linking": "^6.3.1", + "expo-localization": "~15.0.3", + "expo-media-library": "~16.0.3", + "expo-navigation-bar": "~3.0.4", + "expo-notifications": "~0.28.7", + "expo-sharing": "^12.0.1", + "expo-splash-screen": "~0.27.4", + "expo-status-bar": "~1.12.1", + "expo-system-ui": "~3.0.4", + "expo-task-manager": "~11.8.1", + "expo-updates": "~0.25.14", + "expo-video": "^1.2.4", + "expo-web-browser": "~13.0.3", "fast-text-encoding": "^1.0.6", "history": "^5.3.0", + "hls-parser": "^0.13.3", + "hls.js": "^1.5.11", "js-sha256": "^0.9.0", "jwt-decode": "^4.0.0", "lande": "^1.0.10", @@ -162,35 +171,39 @@ "psl": "^1.9.0", "react": "18.2.0", "react-avatar-editor": "^13.0.0", + "react-compiler-runtime": "file:./lib/react-compiler-runtime", "react-dom": "^18.2.0", "react-keyed-flatten-children": "^3.0.0", - "react-native": "0.73.2", - "react-native-date-picker": "^4.4.0", + "react-native": "0.74.1", + "react-native-compressor": "^1.8.24", + "react-native-date-picker": "^4.4.2", "react-native-drawer-layout": "^4.0.0-alpha.3", "react-native-fs": "^2.20.0", - "react-native-gesture-handler": "~2.14.0", + "react-native-gesture-handler": "~2.16.2", "react-native-get-random-values": "~1.11.0", - "react-native-image-crop-picker": "^0.38.1", + "react-native-image-crop-picker": "0.40.3", "react-native-ios-context-menu": "^1.15.3", - "react-native-keyboard-controller": "^1.11.7", + "react-native-keyboard-controller": "^1.12.1", "react-native-pager-view": "6.2.3", - "react-native-picker-select": "^8.1.0", + "react-native-picker-select": "^9.1.3", "react-native-progress": "bluesky-social/react-native-progress", - "react-native-reanimated": "^3.6.0", + "react-native-qrcode-styled": "^0.3.1", + "react-native-reanimated": "^3.11.0", "react-native-root-siblings": "^4.1.1", - "react-native-safe-area-context": "4.8.2", - "react-native-screens": "~3.29.0", - "react-native-svg": "14.1.0", - "react-native-uitextview": "^1.1.6", + "react-native-safe-area-context": "4.10.1", + "react-native-screens": "~3.31.1", + "react-native-svg": "^15.3.0", + "react-native-uitextview": "^1.1.7", "react-native-url-polyfill": "^1.3.0", - "react-native-uuid": "^2.0.1", + "react-native-uuid": "^2.0.2", "react-native-view-shot": "^3.8.0", - "react-native-web": "~0.19.6", + "react-native-web": "~0.19.11", "react-native-web-webview": "^1.0.2", - "react-native-webview": "13.6.4", + "react-native-webview": "13.10.2", "react-responsive": "^9.0.2", "react-textarea-autosize": "^8.5.3", "rn-fetch-blob": "^0.12.0", + "rn-tourguide": "bluesky-social/rn-tourguide", "sentry-expo": "~7.0.1", "statsig-react-native-expo": "^4.6.1", "tippy.js": "^6.3.7", @@ -199,22 +212,23 @@ "zod": "^3.20.2" }, "devDependencies": { - "@atproto/dev-env": "^0.3.5", + "@atproto/dev-env": "^0.3.39", "@babel/core": "^7.23.2", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", "@did-plc/server": "^0.0.1", - "@expo/config-plugins": "7.8.0", + "@expo/config-plugins": "8.0.4", "@expo/prebuild-config": "6.7.0", "@lingui/cli": "^4.5.0", "@lingui/macro": "^4.5.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", "@react-native-community/eslint-config": "^3.0.0", - "@react-native/typescript-config": "^0.74.0", + "@react-native/typescript-config": "^0.74.1", "@testing-library/jest-native": "^5.4.1", "@testing-library/react-native": "^11.5.2", "@tsconfig/react-native": "^2.0.3", "@types/he": "^1.1.2", + "@types/hls-parser": "^0.8.7", "@types/jest": "^29.4.0", "@types/lodash.chunk": "^4.2.7", "@types/lodash.debounce": "^4.0.7", @@ -236,6 +250,7 @@ "babel-loader": "^9.1.2", "babel-plugin-macros": "^3.1.0", "babel-plugin-module-resolver": "^5.0.0", + "babel-plugin-react-compiler": "^0.0.0-experimental-592953e-20240517", "babel-plugin-react-native-web": "^0.18.12", "babel-preset-expo": "^10.0.0", "eslint": "^8.19.0", @@ -243,6 +258,7 @@ "eslint-plugin-ft-flow": "^2.0.3", "eslint-plugin-lingui": "^0.2.0", "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-compiler": "^0.0.0-experimental-c8b3f72-20240517", "eslint-plugin-react-native-a11y": "^3.3.0", "eslint-plugin-simple-import-sort": "^12.0.0", "html-webpack-plugin": "^5.5.0", @@ -252,14 +268,14 @@ "jest-expo": "^50.0.1", "jest-junit": "^15.0.0", "lint-staged": "^13.2.3", - "metro-react-native-babel-preset": "^0.73.7", + "metro-react-native-babel-preset": "^0.74.1", "prettier": "^2.8.3", "react-native-dotenv": "^3.3.1", "react-refresh": "^0.14.0", "react-scripts": "^5.0.1", "react-test-renderer": "18.2.0", "ts-node": "^10.9.1", - "typescript": "^5.3.3", + "typescript": "^5.5.4", "url-loader": "^4.1.1", "webpack": "^5.75.0", "webpack-bundle-analyzer": "^4.10.1", @@ -268,7 +284,11 @@ }, "resolutions": { "@types/react": "^18", - "**/zeed-dom": "0.10.9" + "**/zeed-dom": "0.10.9", + "**/zod": "3.23.8", + "**/expo-constants": "16.0.1", + "**/expo-device": "6.0.2", + "@react-native/babel-preset": "0.74.1" }, "jest": { "preset": "jest-expo/ios", diff --git a/patches/@atproto+lexicon+0.4.0.patch b/patches/@atproto+lexicon+0.4.0.patch deleted file mode 100644 index 4643db32af..0000000000 --- a/patches/@atproto+lexicon+0.4.0.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/node_modules/@atproto/lexicon/dist/validators/complex.js b/node_modules/@atproto/lexicon/dist/validators/complex.js -index 32d7798..9d688b7 100644 ---- a/node_modules/@atproto/lexicon/dist/validators/complex.js -+++ b/node_modules/@atproto/lexicon/dist/validators/complex.js -@@ -113,7 +113,22 @@ function object(lexicons, path, def, value) { - if (value[key] === null && nullableProps.has(key)) { - continue; - } -- const propDef = def.properties[key]; -+ const propDef = def.properties[key] -+ if (typeof value[key] === 'undefined' && !requiredProps.has(key)) { -+ // Fast path for non-required undefined props. -+ if ( -+ propDef.type === 'integer' || -+ propDef.type === 'boolean' || -+ propDef.type === 'string' -+ ) { -+ if (typeof propDef.default === 'undefined') { -+ continue -+ } -+ } else { -+ // Other types have no defaults. -+ continue -+ } -+ } - const propPath = `${path}/${key}`; - const validated = (0, util_1.validateOneOf)(lexicons, propPath, propDef, value[key]); - const propValue = validated.success ? validated.value : value[key]; diff --git a/patches/@mattermost+react-native-paste-input+0.6.4.patch b/patches/@mattermost+react-native-paste-input+0.6.4.patch deleted file mode 100644 index 08413846ff..0000000000 --- a/patches/@mattermost+react-native-paste-input+0.6.4.patch +++ /dev/null @@ -1,3612 +0,0 @@ -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml -new file mode 100644 -index 0000000..0249d77 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml -@@ -0,0 +1,9 @@ -+ -+ -+ -+ -+ -+ -\ No newline at end of file -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json -new file mode 100644 -index 0000000..2aeca5f ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json -@@ -0,0 +1,18 @@ -+{ -+ "version": 3, -+ "artifactType": { -+ "type": "AAPT_FRIENDLY_MERGED_MANIFESTS", -+ "kind": "Directory" -+ }, -+ "applicationId": "com.mattermost.pasteinput", -+ "variantName": "debug", -+ "elements": [ -+ { -+ "type": "SINGLE", -+ "filters": [], -+ "attributes": [], -+ "outputFile": "AndroidManifest.xml" -+ } -+ ], -+ "elementType": "File" -+} -\ No newline at end of file -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aar_metadata/debug/aar-metadata.properties b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aar_metadata/debug/aar-metadata.properties -new file mode 100644 -index 0000000..8c9c699 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aar_metadata/debug/aar-metadata.properties -@@ -0,0 +1,4 @@ -+aarFormatVersion=1.0 -+aarMetadataVersion=1.0 -+minCompileSdk=1 -+minAndroidGradlePluginVersion=1.0.0 -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/compile_r_class_jar/debug/R.jar b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/compile_r_class_jar/debug/R.jar -new file mode 100644 -index 0000000..e69de29 -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/compile_symbol_list/debug/R.txt b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/compile_symbol_list/debug/R.txt -new file mode 100644 -index 0000000..7c9d30e ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/compile_symbol_list/debug/R.txt -@@ -0,0 +1,1953 @@ -+int anim abc_fade_in 0x0 -+int anim abc_fade_out 0x0 -+int anim abc_grow_fade_in_from_bottom 0x0 -+int anim abc_popup_enter 0x0 -+int anim abc_popup_exit 0x0 -+int anim abc_shrink_fade_out_from_bottom 0x0 -+int anim abc_slide_in_bottom 0x0 -+int anim abc_slide_in_top 0x0 -+int anim abc_slide_out_bottom 0x0 -+int anim abc_slide_out_top 0x0 -+int anim abc_tooltip_enter 0x0 -+int anim abc_tooltip_exit 0x0 -+int anim btn_checkbox_to_checked_box_inner_merged_animation 0x0 -+int anim btn_checkbox_to_checked_box_outer_merged_animation 0x0 -+int anim btn_checkbox_to_checked_icon_null_animation 0x0 -+int anim btn_checkbox_to_unchecked_box_inner_merged_animation 0x0 -+int anim btn_checkbox_to_unchecked_check_path_merged_animation 0x0 -+int anim btn_checkbox_to_unchecked_icon_null_animation 0x0 -+int anim btn_radio_to_off_mtrl_dot_group_animation 0x0 -+int anim btn_radio_to_off_mtrl_ring_outer_animation 0x0 -+int anim btn_radio_to_off_mtrl_ring_outer_path_animation 0x0 -+int anim btn_radio_to_on_mtrl_dot_group_animation 0x0 -+int anim btn_radio_to_on_mtrl_ring_outer_animation 0x0 -+int anim btn_radio_to_on_mtrl_ring_outer_path_animation 0x0 -+int anim catalyst_fade_in 0x0 -+int anim catalyst_fade_out 0x0 -+int anim catalyst_push_up_in 0x0 -+int anim catalyst_push_up_out 0x0 -+int anim catalyst_slide_down 0x0 -+int anim catalyst_slide_up 0x0 -+int anim fragment_fast_out_extra_slow_in 0x0 -+int animator fragment_close_enter 0x0 -+int animator fragment_close_exit 0x0 -+int animator fragment_fade_enter 0x0 -+int animator fragment_fade_exit 0x0 -+int animator fragment_open_enter 0x0 -+int animator fragment_open_exit 0x0 -+int attr actionBarDivider 0x0 -+int attr actionBarItemBackground 0x0 -+int attr actionBarPopupTheme 0x0 -+int attr actionBarSize 0x0 -+int attr actionBarSplitStyle 0x0 -+int attr actionBarStyle 0x0 -+int attr actionBarTabBarStyle 0x0 -+int attr actionBarTabStyle 0x0 -+int attr actionBarTabTextStyle 0x0 -+int attr actionBarTheme 0x0 -+int attr actionBarWidgetTheme 0x0 -+int attr actionButtonStyle 0x0 -+int attr actionDropDownStyle 0x0 -+int attr actionLayout 0x0 -+int attr actionMenuTextAppearance 0x0 -+int attr actionMenuTextColor 0x0 -+int attr actionModeBackground 0x0 -+int attr actionModeCloseButtonStyle 0x0 -+int attr actionModeCloseContentDescription 0x0 -+int attr actionModeCloseDrawable 0x0 -+int attr actionModeCopyDrawable 0x0 -+int attr actionModeCutDrawable 0x0 -+int attr actionModeFindDrawable 0x0 -+int attr actionModePasteDrawable 0x0 -+int attr actionModePopupWindowStyle 0x0 -+int attr actionModeSelectAllDrawable 0x0 -+int attr actionModeShareDrawable 0x0 -+int attr actionModeSplitBackground 0x0 -+int attr actionModeStyle 0x0 -+int attr actionModeTheme 0x0 -+int attr actionModeWebSearchDrawable 0x0 -+int attr actionOverflowButtonStyle 0x0 -+int attr actionOverflowMenuStyle 0x0 -+int attr actionProviderClass 0x0 -+int attr actionViewClass 0x0 -+int attr activityChooserViewStyle 0x0 -+int attr actualImageResource 0x0 -+int attr actualImageScaleType 0x0 -+int attr actualImageUri 0x0 -+int attr alertDialogButtonGroupStyle 0x0 -+int attr alertDialogCenterButtons 0x0 -+int attr alertDialogStyle 0x0 -+int attr alertDialogTheme 0x0 -+int attr allowStacking 0x0 -+int attr alpha 0x0 -+int attr alphabeticModifiers 0x0 -+int attr arrowHeadLength 0x0 -+int attr arrowShaftLength 0x0 -+int attr autoCompleteTextViewStyle 0x0 -+int attr autoSizeMaxTextSize 0x0 -+int attr autoSizeMinTextSize 0x0 -+int attr autoSizePresetSizes 0x0 -+int attr autoSizeStepGranularity 0x0 -+int attr autoSizeTextType 0x0 -+int attr autofillInlineSuggestionChip 0x0 -+int attr autofillInlineSuggestionEndIconStyle 0x0 -+int attr autofillInlineSuggestionStartIconStyle 0x0 -+int attr autofillInlineSuggestionSubtitle 0x0 -+int attr autofillInlineSuggestionTitle 0x0 -+int attr background 0x0 -+int attr backgroundImage 0x0 -+int attr backgroundSplit 0x0 -+int attr backgroundStacked 0x0 -+int attr backgroundTint 0x0 -+int attr backgroundTintMode 0x0 -+int attr barLength 0x0 -+int attr borderlessButtonStyle 0x0 -+int attr buttonBarButtonStyle 0x0 -+int attr buttonBarNegativeButtonStyle 0x0 -+int attr buttonBarNeutralButtonStyle 0x0 -+int attr buttonBarPositiveButtonStyle 0x0 -+int attr buttonBarStyle 0x0 -+int attr buttonCompat 0x0 -+int attr buttonGravity 0x0 -+int attr buttonIconDimen 0x0 -+int attr buttonPanelSideLayout 0x0 -+int attr buttonStyle 0x0 -+int attr buttonStyleSmall 0x0 -+int attr buttonTint 0x0 -+int attr buttonTintMode 0x0 -+int attr checkMarkCompat 0x0 -+int attr checkMarkTint 0x0 -+int attr checkMarkTintMode 0x0 -+int attr checkboxStyle 0x0 -+int attr checkedTextViewStyle 0x0 -+int attr closeIcon 0x0 -+int attr closeItemLayout 0x0 -+int attr collapseContentDescription 0x0 -+int attr collapseIcon 0x0 -+int attr color 0x0 -+int attr colorAccent 0x0 -+int attr colorBackgroundFloating 0x0 -+int attr colorButtonNormal 0x0 -+int attr colorControlActivated 0x0 -+int attr colorControlHighlight 0x0 -+int attr colorControlNormal 0x0 -+int attr colorError 0x0 -+int attr colorPrimary 0x0 -+int attr colorPrimaryDark 0x0 -+int attr colorSwitchThumbNormal 0x0 -+int attr commitIcon 0x0 -+int attr contentDescription 0x0 -+int attr contentInsetEnd 0x0 -+int attr contentInsetEndWithActions 0x0 -+int attr contentInsetLeft 0x0 -+int attr contentInsetRight 0x0 -+int attr contentInsetStart 0x0 -+int attr contentInsetStartWithNavigation 0x0 -+int attr controlBackground 0x0 -+int attr customNavigationLayout 0x0 -+int attr defaultQueryHint 0x0 -+int attr dialogCornerRadius 0x0 -+int attr dialogPreferredPadding 0x0 -+int attr dialogTheme 0x0 -+int attr displayOptions 0x0 -+int attr divider 0x0 -+int attr dividerHorizontal 0x0 -+int attr dividerPadding 0x0 -+int attr dividerVertical 0x0 -+int attr drawableBottomCompat 0x0 -+int attr drawableEndCompat 0x0 -+int attr drawableLeftCompat 0x0 -+int attr drawableRightCompat 0x0 -+int attr drawableSize 0x0 -+int attr drawableStartCompat 0x0 -+int attr drawableTint 0x0 -+int attr drawableTintMode 0x0 -+int attr drawableTopCompat 0x0 -+int attr drawerArrowStyle 0x0 -+int attr dropDownListViewStyle 0x0 -+int attr dropdownListPreferredItemHeight 0x0 -+int attr editTextBackground 0x0 -+int attr editTextColor 0x0 -+int attr editTextStyle 0x0 -+int attr elevation 0x0 -+int attr emojiCompatEnabled 0x0 -+int attr expandActivityOverflowButtonDrawable 0x0 -+int attr fadeDuration 0x0 -+int attr failureImage 0x0 -+int attr failureImageScaleType 0x0 -+int attr firstBaselineToTopHeight 0x0 -+int attr font 0x0 -+int attr fontFamily 0x0 -+int attr fontProviderAuthority 0x0 -+int attr fontProviderCerts 0x0 -+int attr fontProviderFetchStrategy 0x0 -+int attr fontProviderFetchTimeout 0x0 -+int attr fontProviderPackage 0x0 -+int attr fontProviderQuery 0x0 -+int attr fontProviderSystemFontFamily 0x0 -+int attr fontStyle 0x0 -+int attr fontVariationSettings 0x0 -+int attr fontWeight 0x0 -+int attr gapBetweenBars 0x0 -+int attr goIcon 0x0 -+int attr height 0x0 -+int attr hideOnContentScroll 0x0 -+int attr homeAsUpIndicator 0x0 -+int attr homeLayout 0x0 -+int attr icon 0x0 -+int attr iconTint 0x0 -+int attr iconTintMode 0x0 -+int attr iconifiedByDefault 0x0 -+int attr imageButtonStyle 0x0 -+int attr indeterminateProgressStyle 0x0 -+int attr initialActivityCount 0x0 -+int attr isAutofillInlineSuggestionTheme 0x0 -+int attr isLightTheme 0x0 -+int attr itemPadding 0x0 -+int attr lStar 0x0 -+int attr lastBaselineToBottomHeight 0x0 -+int attr layout 0x0 -+int attr lineHeight 0x0 -+int attr listChoiceBackgroundIndicator 0x0 -+int attr listChoiceIndicatorMultipleAnimated 0x0 -+int attr listChoiceIndicatorSingleAnimated 0x0 -+int attr listDividerAlertDialog 0x0 -+int attr listItemLayout 0x0 -+int attr listLayout 0x0 -+int attr listMenuViewStyle 0x0 -+int attr listPopupWindowStyle 0x0 -+int attr listPreferredItemHeight 0x0 -+int attr listPreferredItemHeightLarge 0x0 -+int attr listPreferredItemHeightSmall 0x0 -+int attr listPreferredItemPaddingEnd 0x0 -+int attr listPreferredItemPaddingLeft 0x0 -+int attr listPreferredItemPaddingRight 0x0 -+int attr listPreferredItemPaddingStart 0x0 -+int attr logo 0x0 -+int attr logoDescription 0x0 -+int attr maxButtonHeight 0x0 -+int attr measureWithLargestChild 0x0 -+int attr menu 0x0 -+int attr multiChoiceItemLayout 0x0 -+int attr navigationContentDescription 0x0 -+int attr navigationIcon 0x0 -+int attr navigationMode 0x0 -+int attr nestedScrollViewStyle 0x0 -+int attr numericModifiers 0x0 -+int attr overlapAnchor 0x0 -+int attr overlayImage 0x0 -+int attr paddingBottomNoButtons 0x0 -+int attr paddingEnd 0x0 -+int attr paddingStart 0x0 -+int attr paddingTopNoTitle 0x0 -+int attr panelBackground 0x0 -+int attr panelMenuListTheme 0x0 -+int attr panelMenuListWidth 0x0 -+int attr placeholderImage 0x0 -+int attr placeholderImageScaleType 0x0 -+int attr popupMenuStyle 0x0 -+int attr popupTheme 0x0 -+int attr popupWindowStyle 0x0 -+int attr preserveIconSpacing 0x0 -+int attr pressedStateOverlayImage 0x0 -+int attr progressBarAutoRotateInterval 0x0 -+int attr progressBarImage 0x0 -+int attr progressBarImageScaleType 0x0 -+int attr progressBarPadding 0x0 -+int attr progressBarStyle 0x0 -+int attr queryBackground 0x0 -+int attr queryHint 0x0 -+int attr queryPatterns 0x0 -+int attr radioButtonStyle 0x0 -+int attr ratingBarStyle 0x0 -+int attr ratingBarStyleIndicator 0x0 -+int attr ratingBarStyleSmall 0x0 -+int attr retryImage 0x0 -+int attr retryImageScaleType 0x0 -+int attr roundAsCircle 0x0 -+int attr roundBottomEnd 0x0 -+int attr roundBottomLeft 0x0 -+int attr roundBottomRight 0x0 -+int attr roundBottomStart 0x0 -+int attr roundTopEnd 0x0 -+int attr roundTopLeft 0x0 -+int attr roundTopRight 0x0 -+int attr roundTopStart 0x0 -+int attr roundWithOverlayColor 0x0 -+int attr roundedCornerRadius 0x0 -+int attr roundingBorderColor 0x0 -+int attr roundingBorderPadding 0x0 -+int attr roundingBorderWidth 0x0 -+int attr searchHintIcon 0x0 -+int attr searchIcon 0x0 -+int attr searchViewStyle 0x0 -+int attr seekBarStyle 0x0 -+int attr selectableItemBackground 0x0 -+int attr selectableItemBackgroundBorderless 0x0 -+int attr shortcutMatchRequired 0x0 -+int attr showAsAction 0x0 -+int attr showDividers 0x0 -+int attr showText 0x0 -+int attr showTitle 0x0 -+int attr singleChoiceItemLayout 0x0 -+int attr spinBars 0x0 -+int attr spinnerDropDownItemStyle 0x0 -+int attr spinnerStyle 0x0 -+int attr splitTrack 0x0 -+int attr srcCompat 0x0 -+int attr state_above_anchor 0x0 -+int attr subMenuArrow 0x0 -+int attr submitBackground 0x0 -+int attr subtitle 0x0 -+int attr subtitleTextAppearance 0x0 -+int attr subtitleTextColor 0x0 -+int attr subtitleTextStyle 0x0 -+int attr suggestionRowLayout 0x0 -+int attr switchMinWidth 0x0 -+int attr switchPadding 0x0 -+int attr switchStyle 0x0 -+int attr switchTextAppearance 0x0 -+int attr textAllCaps 0x0 -+int attr textAppearanceLargePopupMenu 0x0 -+int attr textAppearanceListItem 0x0 -+int attr textAppearanceListItemSecondary 0x0 -+int attr textAppearanceListItemSmall 0x0 -+int attr textAppearancePopupMenuHeader 0x0 -+int attr textAppearanceSearchResultSubtitle 0x0 -+int attr textAppearanceSearchResultTitle 0x0 -+int attr textAppearanceSmallPopupMenu 0x0 -+int attr textColorAlertDialogListItem 0x0 -+int attr textColorSearchUrl 0x0 -+int attr textLocale 0x0 -+int attr theme 0x0 -+int attr thickness 0x0 -+int attr thumbTextPadding 0x0 -+int attr thumbTint 0x0 -+int attr thumbTintMode 0x0 -+int attr tickMark 0x0 -+int attr tickMarkTint 0x0 -+int attr tickMarkTintMode 0x0 -+int attr tint 0x0 -+int attr tintMode 0x0 -+int attr title 0x0 -+int attr titleMargin 0x0 -+int attr titleMarginBottom 0x0 -+int attr titleMarginEnd 0x0 -+int attr titleMarginStart 0x0 -+int attr titleMarginTop 0x0 -+int attr titleMargins 0x0 -+int attr titleTextAppearance 0x0 -+int attr titleTextColor 0x0 -+int attr titleTextStyle 0x0 -+int attr toolbarNavigationButtonStyle 0x0 -+int attr toolbarStyle 0x0 -+int attr tooltipForegroundColor 0x0 -+int attr tooltipFrameBackground 0x0 -+int attr tooltipText 0x0 -+int attr track 0x0 -+int attr trackTint 0x0 -+int attr trackTintMode 0x0 -+int attr ttcIndex 0x0 -+int attr viewAspectRatio 0x0 -+int attr viewInflaterClass 0x0 -+int attr voiceIcon 0x0 -+int attr windowActionBar 0x0 -+int attr windowActionBarOverlay 0x0 -+int attr windowActionModeOverlay 0x0 -+int attr windowFixedHeightMajor 0x0 -+int attr windowFixedHeightMinor 0x0 -+int attr windowFixedWidthMajor 0x0 -+int attr windowFixedWidthMinor 0x0 -+int attr windowMinWidthMajor 0x0 -+int attr windowMinWidthMinor 0x0 -+int attr windowNoTitle 0x0 -+int bool abc_action_bar_embed_tabs 0x0 -+int bool abc_config_actionMenuItemAllCaps 0x0 -+int color abc_background_cache_hint_selector_material_dark 0x0 -+int color abc_background_cache_hint_selector_material_light 0x0 -+int color abc_btn_colored_borderless_text_material 0x0 -+int color abc_btn_colored_text_material 0x0 -+int color abc_color_highlight_material 0x0 -+int color abc_decor_view_status_guard 0x0 -+int color abc_decor_view_status_guard_light 0x0 -+int color abc_hint_foreground_material_dark 0x0 -+int color abc_hint_foreground_material_light 0x0 -+int color abc_primary_text_disable_only_material_dark 0x0 -+int color abc_primary_text_disable_only_material_light 0x0 -+int color abc_primary_text_material_dark 0x0 -+int color abc_primary_text_material_light 0x0 -+int color abc_search_url_text 0x0 -+int color abc_search_url_text_normal 0x0 -+int color abc_search_url_text_pressed 0x0 -+int color abc_search_url_text_selected 0x0 -+int color abc_secondary_text_material_dark 0x0 -+int color abc_secondary_text_material_light 0x0 -+int color abc_tint_btn_checkable 0x0 -+int color abc_tint_default 0x0 -+int color abc_tint_edittext 0x0 -+int color abc_tint_seek_thumb 0x0 -+int color abc_tint_spinner 0x0 -+int color abc_tint_switch_track 0x0 -+int color accent_material_dark 0x0 -+int color accent_material_light 0x0 -+int color androidx_core_ripple_material_light 0x0 -+int color androidx_core_secondary_text_default_material_light 0x0 -+int color background_floating_material_dark 0x0 -+int color background_floating_material_light 0x0 -+int color background_material_dark 0x0 -+int color background_material_light 0x0 -+int color bright_foreground_disabled_material_dark 0x0 -+int color bright_foreground_disabled_material_light 0x0 -+int color bright_foreground_inverse_material_dark 0x0 -+int color bright_foreground_inverse_material_light 0x0 -+int color bright_foreground_material_dark 0x0 -+int color bright_foreground_material_light 0x0 -+int color button_material_dark 0x0 -+int color button_material_light 0x0 -+int color catalyst_logbox_background 0x0 -+int color catalyst_redbox_background 0x0 -+int color dim_foreground_disabled_material_dark 0x0 -+int color dim_foreground_disabled_material_light 0x0 -+int color dim_foreground_material_dark 0x0 -+int color dim_foreground_material_light 0x0 -+int color error_color_material_dark 0x0 -+int color error_color_material_light 0x0 -+int color foreground_material_dark 0x0 -+int color foreground_material_light 0x0 -+int color highlighted_text_material_dark 0x0 -+int color highlighted_text_material_light 0x0 -+int color material_blue_grey_800 0x0 -+int color material_blue_grey_900 0x0 -+int color material_blue_grey_950 0x0 -+int color material_deep_teal_200 0x0 -+int color material_deep_teal_500 0x0 -+int color material_grey_100 0x0 -+int color material_grey_300 0x0 -+int color material_grey_50 0x0 -+int color material_grey_600 0x0 -+int color material_grey_800 0x0 -+int color material_grey_850 0x0 -+int color material_grey_900 0x0 -+int color notification_action_color_filter 0x0 -+int color notification_icon_bg_color 0x0 -+int color primary_dark_material_dark 0x0 -+int color primary_dark_material_light 0x0 -+int color primary_material_dark 0x0 -+int color primary_material_light 0x0 -+int color primary_text_default_material_dark 0x0 -+int color primary_text_default_material_light 0x0 -+int color primary_text_disabled_material_dark 0x0 -+int color primary_text_disabled_material_light 0x0 -+int color ripple_material_dark 0x0 -+int color ripple_material_light 0x0 -+int color secondary_text_default_material_dark 0x0 -+int color secondary_text_default_material_light 0x0 -+int color secondary_text_disabled_material_dark 0x0 -+int color secondary_text_disabled_material_light 0x0 -+int color switch_thumb_disabled_material_dark 0x0 -+int color switch_thumb_disabled_material_light 0x0 -+int color switch_thumb_material_dark 0x0 -+int color switch_thumb_material_light 0x0 -+int color switch_thumb_normal_material_dark 0x0 -+int color switch_thumb_normal_material_light 0x0 -+int color tooltip_background_dark 0x0 -+int color tooltip_background_light 0x0 -+int dimen abc_action_bar_content_inset_material 0x0 -+int dimen abc_action_bar_content_inset_with_nav 0x0 -+int dimen abc_action_bar_default_height_material 0x0 -+int dimen abc_action_bar_default_padding_end_material 0x0 -+int dimen abc_action_bar_default_padding_start_material 0x0 -+int dimen abc_action_bar_elevation_material 0x0 -+int dimen abc_action_bar_icon_vertical_padding_material 0x0 -+int dimen abc_action_bar_overflow_padding_end_material 0x0 -+int dimen abc_action_bar_overflow_padding_start_material 0x0 -+int dimen abc_action_bar_stacked_max_height 0x0 -+int dimen abc_action_bar_stacked_tab_max_width 0x0 -+int dimen abc_action_bar_subtitle_bottom_margin_material 0x0 -+int dimen abc_action_bar_subtitle_top_margin_material 0x0 -+int dimen abc_action_button_min_height_material 0x0 -+int dimen abc_action_button_min_width_material 0x0 -+int dimen abc_action_button_min_width_overflow_material 0x0 -+int dimen abc_alert_dialog_button_bar_height 0x0 -+int dimen abc_alert_dialog_button_dimen 0x0 -+int dimen abc_button_inset_horizontal_material 0x0 -+int dimen abc_button_inset_vertical_material 0x0 -+int dimen abc_button_padding_horizontal_material 0x0 -+int dimen abc_button_padding_vertical_material 0x0 -+int dimen abc_cascading_menus_min_smallest_width 0x0 -+int dimen abc_config_prefDialogWidth 0x0 -+int dimen abc_control_corner_material 0x0 -+int dimen abc_control_inset_material 0x0 -+int dimen abc_control_padding_material 0x0 -+int dimen abc_dialog_corner_radius_material 0x0 -+int dimen abc_dialog_fixed_height_major 0x0 -+int dimen abc_dialog_fixed_height_minor 0x0 -+int dimen abc_dialog_fixed_width_major 0x0 -+int dimen abc_dialog_fixed_width_minor 0x0 -+int dimen abc_dialog_list_padding_bottom_no_buttons 0x0 -+int dimen abc_dialog_list_padding_top_no_title 0x0 -+int dimen abc_dialog_min_width_major 0x0 -+int dimen abc_dialog_min_width_minor 0x0 -+int dimen abc_dialog_padding_material 0x0 -+int dimen abc_dialog_padding_top_material 0x0 -+int dimen abc_dialog_title_divider_material 0x0 -+int dimen abc_disabled_alpha_material_dark 0x0 -+int dimen abc_disabled_alpha_material_light 0x0 -+int dimen abc_dropdownitem_icon_width 0x0 -+int dimen abc_dropdownitem_text_padding_left 0x0 -+int dimen abc_dropdownitem_text_padding_right 0x0 -+int dimen abc_edit_text_inset_bottom_material 0x0 -+int dimen abc_edit_text_inset_horizontal_material 0x0 -+int dimen abc_edit_text_inset_top_material 0x0 -+int dimen abc_floating_window_z 0x0 -+int dimen abc_list_item_height_large_material 0x0 -+int dimen abc_list_item_height_material 0x0 -+int dimen abc_list_item_height_small_material 0x0 -+int dimen abc_list_item_padding_horizontal_material 0x0 -+int dimen abc_panel_menu_list_width 0x0 -+int dimen abc_progress_bar_height_material 0x0 -+int dimen abc_search_view_preferred_height 0x0 -+int dimen abc_search_view_preferred_width 0x0 -+int dimen abc_seekbar_track_background_height_material 0x0 -+int dimen abc_seekbar_track_progress_height_material 0x0 -+int dimen abc_select_dialog_padding_start_material 0x0 -+int dimen abc_star_big 0x0 -+int dimen abc_star_medium 0x0 -+int dimen abc_star_small 0x0 -+int dimen abc_switch_padding 0x0 -+int dimen abc_text_size_body_1_material 0x0 -+int dimen abc_text_size_body_2_material 0x0 -+int dimen abc_text_size_button_material 0x0 -+int dimen abc_text_size_caption_material 0x0 -+int dimen abc_text_size_display_1_material 0x0 -+int dimen abc_text_size_display_2_material 0x0 -+int dimen abc_text_size_display_3_material 0x0 -+int dimen abc_text_size_display_4_material 0x0 -+int dimen abc_text_size_headline_material 0x0 -+int dimen abc_text_size_large_material 0x0 -+int dimen abc_text_size_medium_material 0x0 -+int dimen abc_text_size_menu_header_material 0x0 -+int dimen abc_text_size_menu_material 0x0 -+int dimen abc_text_size_small_material 0x0 -+int dimen abc_text_size_subhead_material 0x0 -+int dimen abc_text_size_subtitle_material_toolbar 0x0 -+int dimen abc_text_size_title_material 0x0 -+int dimen abc_text_size_title_material_toolbar 0x0 -+int dimen autofill_inline_suggestion_icon_size 0x0 -+int dimen compat_button_inset_horizontal_material 0x0 -+int dimen compat_button_inset_vertical_material 0x0 -+int dimen compat_button_padding_horizontal_material 0x0 -+int dimen compat_button_padding_vertical_material 0x0 -+int dimen compat_control_corner_material 0x0 -+int dimen compat_notification_large_icon_max_height 0x0 -+int dimen compat_notification_large_icon_max_width 0x0 -+int dimen disabled_alpha_material_dark 0x0 -+int dimen disabled_alpha_material_light 0x0 -+int dimen highlight_alpha_material_colored 0x0 -+int dimen highlight_alpha_material_dark 0x0 -+int dimen highlight_alpha_material_light 0x0 -+int dimen hint_alpha_material_dark 0x0 -+int dimen hint_alpha_material_light 0x0 -+int dimen hint_pressed_alpha_material_dark 0x0 -+int dimen hint_pressed_alpha_material_light 0x0 -+int dimen notification_action_icon_size 0x0 -+int dimen notification_action_text_size 0x0 -+int dimen notification_big_circle_margin 0x0 -+int dimen notification_content_margin_start 0x0 -+int dimen notification_large_icon_height 0x0 -+int dimen notification_large_icon_width 0x0 -+int dimen notification_main_column_padding_top 0x0 -+int dimen notification_media_narrow_margin 0x0 -+int dimen notification_right_icon_size 0x0 -+int dimen notification_right_side_padding_top 0x0 -+int dimen notification_small_icon_background_padding 0x0 -+int dimen notification_small_icon_size_as_large 0x0 -+int dimen notification_subtext_size 0x0 -+int dimen notification_top_pad 0x0 -+int dimen notification_top_pad_large_text 0x0 -+int dimen tooltip_corner_radius 0x0 -+int dimen tooltip_horizontal_padding 0x0 -+int dimen tooltip_margin 0x0 -+int dimen tooltip_precise_anchor_extra_offset 0x0 -+int dimen tooltip_precise_anchor_threshold 0x0 -+int dimen tooltip_vertical_padding 0x0 -+int dimen tooltip_y_offset_non_touch 0x0 -+int dimen tooltip_y_offset_touch 0x0 -+int drawable abc_ab_share_pack_mtrl_alpha 0x0 -+int drawable abc_action_bar_item_background_material 0x0 -+int drawable abc_btn_borderless_material 0x0 -+int drawable abc_btn_check_material 0x0 -+int drawable abc_btn_check_material_anim 0x0 -+int drawable abc_btn_check_to_on_mtrl_000 0x0 -+int drawable abc_btn_check_to_on_mtrl_015 0x0 -+int drawable abc_btn_colored_material 0x0 -+int drawable abc_btn_default_mtrl_shape 0x0 -+int drawable abc_btn_radio_material 0x0 -+int drawable abc_btn_radio_material_anim 0x0 -+int drawable abc_btn_radio_to_on_mtrl_000 0x0 -+int drawable abc_btn_radio_to_on_mtrl_015 0x0 -+int drawable abc_btn_switch_to_on_mtrl_00001 0x0 -+int drawable abc_btn_switch_to_on_mtrl_00012 0x0 -+int drawable abc_cab_background_internal_bg 0x0 -+int drawable abc_cab_background_top_material 0x0 -+int drawable abc_cab_background_top_mtrl_alpha 0x0 -+int drawable abc_control_background_material 0x0 -+int drawable abc_dialog_material_background 0x0 -+int drawable abc_edit_text_material 0x0 -+int drawable abc_ic_ab_back_material 0x0 -+int drawable abc_ic_arrow_drop_right_black_24dp 0x0 -+int drawable abc_ic_clear_material 0x0 -+int drawable abc_ic_commit_search_api_mtrl_alpha 0x0 -+int drawable abc_ic_go_search_api_material 0x0 -+int drawable abc_ic_menu_copy_mtrl_am_alpha 0x0 -+int drawable abc_ic_menu_cut_mtrl_alpha 0x0 -+int drawable abc_ic_menu_overflow_material 0x0 -+int drawable abc_ic_menu_paste_mtrl_am_alpha 0x0 -+int drawable abc_ic_menu_selectall_mtrl_alpha 0x0 -+int drawable abc_ic_menu_share_mtrl_alpha 0x0 -+int drawable abc_ic_search_api_material 0x0 -+int drawable abc_ic_voice_search_api_material 0x0 -+int drawable abc_item_background_holo_dark 0x0 -+int drawable abc_item_background_holo_light 0x0 -+int drawable abc_list_divider_material 0x0 -+int drawable abc_list_divider_mtrl_alpha 0x0 -+int drawable abc_list_focused_holo 0x0 -+int drawable abc_list_longpressed_holo 0x0 -+int drawable abc_list_pressed_holo_dark 0x0 -+int drawable abc_list_pressed_holo_light 0x0 -+int drawable abc_list_selector_background_transition_holo_dark 0x0 -+int drawable abc_list_selector_background_transition_holo_light 0x0 -+int drawable abc_list_selector_disabled_holo_dark 0x0 -+int drawable abc_list_selector_disabled_holo_light 0x0 -+int drawable abc_list_selector_holo_dark 0x0 -+int drawable abc_list_selector_holo_light 0x0 -+int drawable abc_menu_hardkey_panel_mtrl_mult 0x0 -+int drawable abc_popup_background_mtrl_mult 0x0 -+int drawable abc_ratingbar_indicator_material 0x0 -+int drawable abc_ratingbar_material 0x0 -+int drawable abc_ratingbar_small_material 0x0 -+int drawable abc_scrubber_control_off_mtrl_alpha 0x0 -+int drawable abc_scrubber_control_to_pressed_mtrl_000 0x0 -+int drawable abc_scrubber_control_to_pressed_mtrl_005 0x0 -+int drawable abc_scrubber_primary_mtrl_alpha 0x0 -+int drawable abc_scrubber_track_mtrl_alpha 0x0 -+int drawable abc_seekbar_thumb_material 0x0 -+int drawable abc_seekbar_tick_mark_material 0x0 -+int drawable abc_seekbar_track_material 0x0 -+int drawable abc_spinner_mtrl_am_alpha 0x0 -+int drawable abc_spinner_textfield_background_material 0x0 -+int drawable abc_star_black_48dp 0x0 -+int drawable abc_star_half_black_48dp 0x0 -+int drawable abc_switch_thumb_material 0x0 -+int drawable abc_switch_track_mtrl_alpha 0x0 -+int drawable abc_tab_indicator_material 0x0 -+int drawable abc_tab_indicator_mtrl_alpha 0x0 -+int drawable abc_text_cursor_material 0x0 -+int drawable abc_text_select_handle_left_mtrl 0x0 -+int drawable abc_text_select_handle_middle_mtrl 0x0 -+int drawable abc_text_select_handle_right_mtrl 0x0 -+int drawable abc_textfield_activated_mtrl_alpha 0x0 -+int drawable abc_textfield_default_mtrl_alpha 0x0 -+int drawable abc_textfield_search_activated_mtrl_alpha 0x0 -+int drawable abc_textfield_search_default_mtrl_alpha 0x0 -+int drawable abc_textfield_search_material 0x0 -+int drawable abc_vector_test 0x0 -+int drawable autofill_inline_suggestion_chip_background 0x0 -+int drawable btn_checkbox_checked_mtrl 0x0 -+int drawable btn_checkbox_checked_to_unchecked_mtrl_animation 0x0 -+int drawable btn_checkbox_unchecked_mtrl 0x0 -+int drawable btn_checkbox_unchecked_to_checked_mtrl_animation 0x0 -+int drawable btn_radio_off_mtrl 0x0 -+int drawable btn_radio_off_to_on_mtrl_animation 0x0 -+int drawable btn_radio_on_mtrl 0x0 -+int drawable btn_radio_on_to_off_mtrl_animation 0x0 -+int drawable notification_action_background 0x0 -+int drawable notification_bg 0x0 -+int drawable notification_bg_low 0x0 -+int drawable notification_bg_low_normal 0x0 -+int drawable notification_bg_low_pressed 0x0 -+int drawable notification_bg_normal 0x0 -+int drawable notification_bg_normal_pressed 0x0 -+int drawable notification_icon_background 0x0 -+int drawable notification_template_icon_bg 0x0 -+int drawable notification_template_icon_low_bg 0x0 -+int drawable notification_tile_bg 0x0 -+int drawable notify_panel_notification_icon_bg 0x0 -+int drawable redbox_top_border_background 0x0 -+int drawable test_level_drawable 0x0 -+int drawable tooltip_frame_dark 0x0 -+int drawable tooltip_frame_light 0x0 -+int id accessibility_action_clickable_span 0x0 -+int id accessibility_actions 0x0 -+int id accessibility_collection 0x0 -+int id accessibility_collection_item 0x0 -+int id accessibility_custom_action_0 0x0 -+int id accessibility_custom_action_1 0x0 -+int id accessibility_custom_action_10 0x0 -+int id accessibility_custom_action_11 0x0 -+int id accessibility_custom_action_12 0x0 -+int id accessibility_custom_action_13 0x0 -+int id accessibility_custom_action_14 0x0 -+int id accessibility_custom_action_15 0x0 -+int id accessibility_custom_action_16 0x0 -+int id accessibility_custom_action_17 0x0 -+int id accessibility_custom_action_18 0x0 -+int id accessibility_custom_action_19 0x0 -+int id accessibility_custom_action_2 0x0 -+int id accessibility_custom_action_20 0x0 -+int id accessibility_custom_action_21 0x0 -+int id accessibility_custom_action_22 0x0 -+int id accessibility_custom_action_23 0x0 -+int id accessibility_custom_action_24 0x0 -+int id accessibility_custom_action_25 0x0 -+int id accessibility_custom_action_26 0x0 -+int id accessibility_custom_action_27 0x0 -+int id accessibility_custom_action_28 0x0 -+int id accessibility_custom_action_29 0x0 -+int id accessibility_custom_action_3 0x0 -+int id accessibility_custom_action_30 0x0 -+int id accessibility_custom_action_31 0x0 -+int id accessibility_custom_action_4 0x0 -+int id accessibility_custom_action_5 0x0 -+int id accessibility_custom_action_6 0x0 -+int id accessibility_custom_action_7 0x0 -+int id accessibility_custom_action_8 0x0 -+int id accessibility_custom_action_9 0x0 -+int id accessibility_hint 0x0 -+int id accessibility_label 0x0 -+int id accessibility_links 0x0 -+int id accessibility_role 0x0 -+int id accessibility_state 0x0 -+int id accessibility_value 0x0 -+int id action_bar 0x0 -+int id action_bar_activity_content 0x0 -+int id action_bar_container 0x0 -+int id action_bar_root 0x0 -+int id action_bar_spinner 0x0 -+int id action_bar_subtitle 0x0 -+int id action_bar_title 0x0 -+int id action_container 0x0 -+int id action_context_bar 0x0 -+int id action_divider 0x0 -+int id action_image 0x0 -+int id action_menu_divider 0x0 -+int id action_menu_presenter 0x0 -+int id action_mode_bar 0x0 -+int id action_mode_bar_stub 0x0 -+int id action_mode_close_button 0x0 -+int id action_text 0x0 -+int id actions 0x0 -+int id activity_chooser_view_content 0x0 -+int id add 0x0 -+int id alertTitle 0x0 -+int id async 0x0 -+int id autofill_inline_suggestion_end_icon 0x0 -+int id autofill_inline_suggestion_start_icon 0x0 -+int id autofill_inline_suggestion_subtitle 0x0 -+int id autofill_inline_suggestion_title 0x0 -+int id blocking 0x0 -+int id buttonPanel 0x0 -+int id catalyst_redbox_title 0x0 -+int id center 0x0 -+int id centerCrop 0x0 -+int id centerInside 0x0 -+int id checkbox 0x0 -+int id checked 0x0 -+int id chronometer 0x0 -+int id content 0x0 -+int id contentPanel 0x0 -+int id custom 0x0 -+int id customPanel 0x0 -+int id decor_content_parent 0x0 -+int id default_activity_button 0x0 -+int id dialog_button 0x0 -+int id edit_query 0x0 -+int id expand_activities_button 0x0 -+int id expanded_menu 0x0 -+int id fitBottomStart 0x0 -+int id fitCenter 0x0 -+int id fitEnd 0x0 -+int id fitStart 0x0 -+int id fitXY 0x0 -+int id focusCrop 0x0 -+int id forever 0x0 -+int id fps_text 0x0 -+int id fragment_container_view_tag 0x0 -+int id group_divider 0x0 -+int id home 0x0 -+int id icon 0x0 -+int id icon_group 0x0 -+int id image 0x0 -+int id info 0x0 -+int id italic 0x0 -+int id item1 0x0 -+int id item2 0x0 -+int id item3 0x0 -+int id item4 0x0 -+int id labelled_by 0x0 -+int id line1 0x0 -+int id line3 0x0 -+int id listMode 0x0 -+int id list_item 0x0 -+int id message 0x0 -+int id multiply 0x0 -+int id none 0x0 -+int id normal 0x0 -+int id notification_background 0x0 -+int id notification_main_column 0x0 -+int id notification_main_column_container 0x0 -+int id off 0x0 -+int id on 0x0 -+int id parentPanel 0x0 -+int id pointer_events 0x0 -+int id progress_circular 0x0 -+int id progress_horizontal 0x0 -+int id radio 0x0 -+int id react_test_id 0x0 -+int id right_icon 0x0 -+int id right_side 0x0 -+int id rn_frame_file 0x0 -+int id rn_frame_method 0x0 -+int id rn_redbox_dismiss_button 0x0 -+int id rn_redbox_line_separator 0x0 -+int id rn_redbox_loading_indicator 0x0 -+int id rn_redbox_reload_button 0x0 -+int id rn_redbox_report_button 0x0 -+int id rn_redbox_report_label 0x0 -+int id rn_redbox_stack 0x0 -+int id screen 0x0 -+int id scrollIndicatorDown 0x0 -+int id scrollIndicatorUp 0x0 -+int id scrollView 0x0 -+int id search_badge 0x0 -+int id search_bar 0x0 -+int id search_button 0x0 -+int id search_close_btn 0x0 -+int id search_edit_frame 0x0 -+int id search_go_btn 0x0 -+int id search_mag_icon 0x0 -+int id search_plate 0x0 -+int id search_src_text 0x0 -+int id search_voice_btn 0x0 -+int id select_dialog_listview 0x0 -+int id shortcut 0x0 -+int id spacer 0x0 -+int id special_effects_controller_view_tag 0x0 -+int id split_action_bar 0x0 -+int id src_atop 0x0 -+int id src_in 0x0 -+int id src_over 0x0 -+int id submenuarrow 0x0 -+int id submit_area 0x0 -+int id tabMode 0x0 -+int id tag_accessibility_actions 0x0 -+int id tag_accessibility_clickable_spans 0x0 -+int id tag_accessibility_heading 0x0 -+int id tag_accessibility_pane_title 0x0 -+int id tag_on_apply_window_listener 0x0 -+int id tag_on_receive_content_listener 0x0 -+int id tag_on_receive_content_mime_types 0x0 -+int id tag_screen_reader_focusable 0x0 -+int id tag_state_description 0x0 -+int id tag_transition_group 0x0 -+int id tag_unhandled_key_event_manager 0x0 -+int id tag_unhandled_key_listeners 0x0 -+int id tag_window_insets_animation_callback 0x0 -+int id text 0x0 -+int id text2 0x0 -+int id textSpacerNoButtons 0x0 -+int id textSpacerNoTitle 0x0 -+int id time 0x0 -+int id title 0x0 -+int id titleDividerNoCustom 0x0 -+int id title_template 0x0 -+int id topPanel 0x0 -+int id unchecked 0x0 -+int id uniform 0x0 -+int id up 0x0 -+int id view_tag_instance_handle 0x0 -+int id view_tag_native_id 0x0 -+int id view_tree_lifecycle_owner 0x0 -+int id view_tree_saved_state_registry_owner 0x0 -+int id view_tree_view_model_store_owner 0x0 -+int id visible_removing_fragment_view_tag 0x0 -+int id wrap_content 0x0 -+int integer abc_config_activityDefaultDur 0x0 -+int integer abc_config_activityShortDur 0x0 -+int integer cancel_button_image_alpha 0x0 -+int integer config_tooltipAnimTime 0x0 -+int integer react_native_dev_server_port 0x0 -+int integer react_native_inspector_proxy_port 0x0 -+int integer status_bar_notification_info_maxnum 0x0 -+int interpolator btn_checkbox_checked_mtrl_animation_interpolator_0 0x0 -+int interpolator btn_checkbox_checked_mtrl_animation_interpolator_1 0x0 -+int interpolator btn_checkbox_unchecked_mtrl_animation_interpolator_0 0x0 -+int interpolator btn_checkbox_unchecked_mtrl_animation_interpolator_1 0x0 -+int interpolator btn_radio_to_off_mtrl_animation_interpolator_0 0x0 -+int interpolator btn_radio_to_on_mtrl_animation_interpolator_0 0x0 -+int interpolator fast_out_slow_in 0x0 -+int layout abc_action_bar_title_item 0x0 -+int layout abc_action_bar_up_container 0x0 -+int layout abc_action_menu_item_layout 0x0 -+int layout abc_action_menu_layout 0x0 -+int layout abc_action_mode_bar 0x0 -+int layout abc_action_mode_close_item_material 0x0 -+int layout abc_activity_chooser_view 0x0 -+int layout abc_activity_chooser_view_list_item 0x0 -+int layout abc_alert_dialog_button_bar_material 0x0 -+int layout abc_alert_dialog_material 0x0 -+int layout abc_alert_dialog_title_material 0x0 -+int layout abc_cascading_menu_item_layout 0x0 -+int layout abc_dialog_title_material 0x0 -+int layout abc_expanded_menu_layout 0x0 -+int layout abc_list_menu_item_checkbox 0x0 -+int layout abc_list_menu_item_icon 0x0 -+int layout abc_list_menu_item_layout 0x0 -+int layout abc_list_menu_item_radio 0x0 -+int layout abc_popup_menu_header_item_layout 0x0 -+int layout abc_popup_menu_item_layout 0x0 -+int layout abc_screen_content_include 0x0 -+int layout abc_screen_simple 0x0 -+int layout abc_screen_simple_overlay_action_mode 0x0 -+int layout abc_screen_toolbar 0x0 -+int layout abc_search_dropdown_item_icons_2line 0x0 -+int layout abc_search_view 0x0 -+int layout abc_select_dialog_material 0x0 -+int layout abc_tooltip 0x0 -+int layout autofill_inline_suggestion 0x0 -+int layout custom_dialog 0x0 -+int layout dev_loading_view 0x0 -+int layout fps_view 0x0 -+int layout notification_action 0x0 -+int layout notification_action_tombstone 0x0 -+int layout notification_template_custom_big 0x0 -+int layout notification_template_icon_group 0x0 -+int layout notification_template_part_chronometer 0x0 -+int layout notification_template_part_time 0x0 -+int layout redbox_item_frame 0x0 -+int layout redbox_item_title 0x0 -+int layout redbox_view 0x0 -+int layout select_dialog_item_material 0x0 -+int layout select_dialog_multichoice_material 0x0 -+int layout select_dialog_singlechoice_material 0x0 -+int layout support_simple_spinner_dropdown_item 0x0 -+int menu example_menu 0x0 -+int menu example_menu2 0x0 -+int string abc_action_bar_home_description 0x0 -+int string abc_action_bar_up_description 0x0 -+int string abc_action_menu_overflow_description 0x0 -+int string abc_action_mode_done 0x0 -+int string abc_activity_chooser_view_see_all 0x0 -+int string abc_activitychooserview_choose_application 0x0 -+int string abc_capital_off 0x0 -+int string abc_capital_on 0x0 -+int string abc_menu_alt_shortcut_label 0x0 -+int string abc_menu_ctrl_shortcut_label 0x0 -+int string abc_menu_delete_shortcut_label 0x0 -+int string abc_menu_enter_shortcut_label 0x0 -+int string abc_menu_function_shortcut_label 0x0 -+int string abc_menu_meta_shortcut_label 0x0 -+int string abc_menu_shift_shortcut_label 0x0 -+int string abc_menu_space_shortcut_label 0x0 -+int string abc_menu_sym_shortcut_label 0x0 -+int string abc_prepend_shortcut_label 0x0 -+int string abc_search_hint 0x0 -+int string abc_searchview_description_clear 0x0 -+int string abc_searchview_description_query 0x0 -+int string abc_searchview_description_search 0x0 -+int string abc_searchview_description_submit 0x0 -+int string abc_searchview_description_voice 0x0 -+int string abc_shareactionprovider_share_with 0x0 -+int string abc_shareactionprovider_share_with_application 0x0 -+int string abc_toolbar_collapse_description 0x0 -+int string alert_description 0x0 -+int string catalyst_change_bundle_location 0x0 -+int string catalyst_copy_button 0x0 -+int string catalyst_debug 0x0 -+int string catalyst_debug_chrome 0x0 -+int string catalyst_debug_chrome_stop 0x0 -+int string catalyst_debug_connecting 0x0 -+int string catalyst_debug_error 0x0 -+int string catalyst_debug_open 0x0 -+int string catalyst_debug_stop 0x0 -+int string catalyst_devtools_open 0x0 -+int string catalyst_dismiss_button 0x0 -+int string catalyst_heap_capture 0x0 -+int string catalyst_hot_reloading 0x0 -+int string catalyst_hot_reloading_auto_disable 0x0 -+int string catalyst_hot_reloading_auto_enable 0x0 -+int string catalyst_hot_reloading_stop 0x0 -+int string catalyst_inspector 0x0 -+int string catalyst_inspector_stop 0x0 -+int string catalyst_loading_from_url 0x0 -+int string catalyst_open_flipper_error 0x0 -+int string catalyst_perf_monitor 0x0 -+int string catalyst_perf_monitor_stop 0x0 -+int string catalyst_reload 0x0 -+int string catalyst_reload_button 0x0 -+int string catalyst_reload_error 0x0 -+int string catalyst_report_button 0x0 -+int string catalyst_sample_profiler_disable 0x0 -+int string catalyst_sample_profiler_enable 0x0 -+int string catalyst_settings 0x0 -+int string catalyst_settings_title 0x0 -+int string combobox_description 0x0 -+int string header_description 0x0 -+int string image_description 0x0 -+int string imagebutton_description 0x0 -+int string link_description 0x0 -+int string menu_description 0x0 -+int string menubar_description 0x0 -+int string menuitem_description 0x0 -+int string progressbar_description 0x0 -+int string radiogroup_description 0x0 -+int string rn_tab_description 0x0 -+int string scrollbar_description 0x0 -+int string search_menu_title 0x0 -+int string spinbutton_description 0x0 -+int string state_busy_description 0x0 -+int string state_collapsed_description 0x0 -+int string state_expanded_description 0x0 -+int string state_mixed_description 0x0 -+int string state_off_description 0x0 -+int string state_on_description 0x0 -+int string state_unselected_description 0x0 -+int string status_bar_notification_info_overflow 0x0 -+int string summary_description 0x0 -+int string tablist_description 0x0 -+int string timer_description 0x0 -+int string toolbar_description 0x0 -+int style AlertDialog_AppCompat 0x0 -+int style AlertDialog_AppCompat_Light 0x0 -+int style Animation_AppCompat_Dialog 0x0 -+int style Animation_AppCompat_DropDownUp 0x0 -+int style Animation_AppCompat_Tooltip 0x0 -+int style Animation_Catalyst_LogBox 0x0 -+int style Animation_Catalyst_RedBox 0x0 -+int style Base_AlertDialog_AppCompat 0x0 -+int style Base_AlertDialog_AppCompat_Light 0x0 -+int style Base_Animation_AppCompat_Dialog 0x0 -+int style Base_Animation_AppCompat_DropDownUp 0x0 -+int style Base_Animation_AppCompat_Tooltip 0x0 -+int style Base_DialogWindowTitleBackground_AppCompat 0x0 -+int style Base_DialogWindowTitle_AppCompat 0x0 -+int style Base_TextAppearance_AppCompat 0x0 -+int style Base_TextAppearance_AppCompat_Body1 0x0 -+int style Base_TextAppearance_AppCompat_Body2 0x0 -+int style Base_TextAppearance_AppCompat_Button 0x0 -+int style Base_TextAppearance_AppCompat_Caption 0x0 -+int style Base_TextAppearance_AppCompat_Display1 0x0 -+int style Base_TextAppearance_AppCompat_Display2 0x0 -+int style Base_TextAppearance_AppCompat_Display3 0x0 -+int style Base_TextAppearance_AppCompat_Display4 0x0 -+int style Base_TextAppearance_AppCompat_Headline 0x0 -+int style Base_TextAppearance_AppCompat_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Large 0x0 -+int style Base_TextAppearance_AppCompat_Large_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x0 -+int style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x0 -+int style Base_TextAppearance_AppCompat_Medium 0x0 -+int style Base_TextAppearance_AppCompat_Medium_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Menu 0x0 -+int style Base_TextAppearance_AppCompat_SearchResult 0x0 -+int style Base_TextAppearance_AppCompat_SearchResult_Subtitle 0x0 -+int style Base_TextAppearance_AppCompat_SearchResult_Title 0x0 -+int style Base_TextAppearance_AppCompat_Small 0x0 -+int style Base_TextAppearance_AppCompat_Small_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Subhead 0x0 -+int style Base_TextAppearance_AppCompat_Subhead_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Title 0x0 -+int style Base_TextAppearance_AppCompat_Title_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Tooltip 0x0 -+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Menu 0x0 -+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x0 -+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Title 0x0 -+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x0 -+int style Base_TextAppearance_AppCompat_Widget_ActionMode_Title 0x0 -+int style Base_TextAppearance_AppCompat_Widget_Button 0x0 -+int style Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored 0x0 -+int style Base_TextAppearance_AppCompat_Widget_Button_Colored 0x0 -+int style Base_TextAppearance_AppCompat_Widget_Button_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Widget_DropDownItem 0x0 -+int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Header 0x0 -+int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Large 0x0 -+int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Small 0x0 -+int style Base_TextAppearance_AppCompat_Widget_Switch 0x0 -+int style Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem 0x0 -+int style Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x0 -+int style Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle 0x0 -+int style Base_TextAppearance_Widget_AppCompat_Toolbar_Title 0x0 -+int style Base_ThemeOverlay_AppCompat 0x0 -+int style Base_ThemeOverlay_AppCompat_ActionBar 0x0 -+int style Base_ThemeOverlay_AppCompat_Dark 0x0 -+int style Base_ThemeOverlay_AppCompat_Dark_ActionBar 0x0 -+int style Base_ThemeOverlay_AppCompat_Dialog 0x0 -+int style Base_ThemeOverlay_AppCompat_Dialog_Alert 0x0 -+int style Base_ThemeOverlay_AppCompat_Light 0x0 -+int style Base_Theme_AppCompat 0x0 -+int style Base_Theme_AppCompat_CompactMenu 0x0 -+int style Base_Theme_AppCompat_Dialog 0x0 -+int style Base_Theme_AppCompat_DialogWhenLarge 0x0 -+int style Base_Theme_AppCompat_Dialog_Alert 0x0 -+int style Base_Theme_AppCompat_Dialog_FixedSize 0x0 -+int style Base_Theme_AppCompat_Dialog_MinWidth 0x0 -+int style Base_Theme_AppCompat_Light 0x0 -+int style Base_Theme_AppCompat_Light_DarkActionBar 0x0 -+int style Base_Theme_AppCompat_Light_Dialog 0x0 -+int style Base_Theme_AppCompat_Light_DialogWhenLarge 0x0 -+int style Base_Theme_AppCompat_Light_Dialog_Alert 0x0 -+int style Base_Theme_AppCompat_Light_Dialog_FixedSize 0x0 -+int style Base_Theme_AppCompat_Light_Dialog_MinWidth 0x0 -+int style Base_V21_ThemeOverlay_AppCompat_Dialog 0x0 -+int style Base_V21_Theme_AppCompat 0x0 -+int style Base_V21_Theme_AppCompat_Dialog 0x0 -+int style Base_V21_Theme_AppCompat_Light 0x0 -+int style Base_V21_Theme_AppCompat_Light_Dialog 0x0 -+int style Base_V22_Theme_AppCompat 0x0 -+int style Base_V22_Theme_AppCompat_Light 0x0 -+int style Base_V23_Theme_AppCompat 0x0 -+int style Base_V23_Theme_AppCompat_Light 0x0 -+int style Base_V26_Theme_AppCompat 0x0 -+int style Base_V26_Theme_AppCompat_Light 0x0 -+int style Base_V26_Widget_AppCompat_Toolbar 0x0 -+int style Base_V28_Theme_AppCompat 0x0 -+int style Base_V28_Theme_AppCompat_Light 0x0 -+int style Base_V7_ThemeOverlay_AppCompat_Dialog 0x0 -+int style Base_V7_Theme_AppCompat 0x0 -+int style Base_V7_Theme_AppCompat_Dialog 0x0 -+int style Base_V7_Theme_AppCompat_Light 0x0 -+int style Base_V7_Theme_AppCompat_Light_Dialog 0x0 -+int style Base_V7_Widget_AppCompat_AutoCompleteTextView 0x0 -+int style Base_V7_Widget_AppCompat_EditText 0x0 -+int style Base_V7_Widget_AppCompat_Toolbar 0x0 -+int style Base_Widget_AppCompat_ActionBar 0x0 -+int style Base_Widget_AppCompat_ActionBar_Solid 0x0 -+int style Base_Widget_AppCompat_ActionBar_TabBar 0x0 -+int style Base_Widget_AppCompat_ActionBar_TabText 0x0 -+int style Base_Widget_AppCompat_ActionBar_TabView 0x0 -+int style Base_Widget_AppCompat_ActionButton 0x0 -+int style Base_Widget_AppCompat_ActionButton_CloseMode 0x0 -+int style Base_Widget_AppCompat_ActionButton_Overflow 0x0 -+int style Base_Widget_AppCompat_ActionMode 0x0 -+int style Base_Widget_AppCompat_ActivityChooserView 0x0 -+int style Base_Widget_AppCompat_AutoCompleteTextView 0x0 -+int style Base_Widget_AppCompat_Button 0x0 -+int style Base_Widget_AppCompat_ButtonBar 0x0 -+int style Base_Widget_AppCompat_ButtonBar_AlertDialog 0x0 -+int style Base_Widget_AppCompat_Button_Borderless 0x0 -+int style Base_Widget_AppCompat_Button_Borderless_Colored 0x0 -+int style Base_Widget_AppCompat_Button_ButtonBar_AlertDialog 0x0 -+int style Base_Widget_AppCompat_Button_Colored 0x0 -+int style Base_Widget_AppCompat_Button_Small 0x0 -+int style Base_Widget_AppCompat_CompoundButton_CheckBox 0x0 -+int style Base_Widget_AppCompat_CompoundButton_RadioButton 0x0 -+int style Base_Widget_AppCompat_CompoundButton_Switch 0x0 -+int style Base_Widget_AppCompat_DrawerArrowToggle 0x0 -+int style Base_Widget_AppCompat_DrawerArrowToggle_Common 0x0 -+int style Base_Widget_AppCompat_DropDownItem_Spinner 0x0 -+int style Base_Widget_AppCompat_EditText 0x0 -+int style Base_Widget_AppCompat_ImageButton 0x0 -+int style Base_Widget_AppCompat_Light_ActionBar 0x0 -+int style Base_Widget_AppCompat_Light_ActionBar_Solid 0x0 -+int style Base_Widget_AppCompat_Light_ActionBar_TabBar 0x0 -+int style Base_Widget_AppCompat_Light_ActionBar_TabText 0x0 -+int style Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x0 -+int style Base_Widget_AppCompat_Light_ActionBar_TabView 0x0 -+int style Base_Widget_AppCompat_Light_PopupMenu 0x0 -+int style Base_Widget_AppCompat_Light_PopupMenu_Overflow 0x0 -+int style Base_Widget_AppCompat_ListMenuView 0x0 -+int style Base_Widget_AppCompat_ListPopupWindow 0x0 -+int style Base_Widget_AppCompat_ListView 0x0 -+int style Base_Widget_AppCompat_ListView_DropDown 0x0 -+int style Base_Widget_AppCompat_ListView_Menu 0x0 -+int style Base_Widget_AppCompat_PopupMenu 0x0 -+int style Base_Widget_AppCompat_PopupMenu_Overflow 0x0 -+int style Base_Widget_AppCompat_PopupWindow 0x0 -+int style Base_Widget_AppCompat_ProgressBar 0x0 -+int style Base_Widget_AppCompat_ProgressBar_Horizontal 0x0 -+int style Base_Widget_AppCompat_RatingBar 0x0 -+int style Base_Widget_AppCompat_RatingBar_Indicator 0x0 -+int style Base_Widget_AppCompat_RatingBar_Small 0x0 -+int style Base_Widget_AppCompat_SearchView 0x0 -+int style Base_Widget_AppCompat_SearchView_ActionBar 0x0 -+int style Base_Widget_AppCompat_SeekBar 0x0 -+int style Base_Widget_AppCompat_SeekBar_Discrete 0x0 -+int style Base_Widget_AppCompat_Spinner 0x0 -+int style Base_Widget_AppCompat_Spinner_Underlined 0x0 -+int style Base_Widget_AppCompat_TextView 0x0 -+int style Base_Widget_AppCompat_TextView_SpinnerItem 0x0 -+int style Base_Widget_AppCompat_Toolbar 0x0 -+int style Base_Widget_AppCompat_Toolbar_Button_Navigation 0x0 -+int style CalendarDatePickerDialog 0x0 -+int style CalendarDatePickerStyle 0x0 -+int style DialogAnimationFade 0x0 -+int style DialogAnimationSlide 0x0 -+int style Platform_AppCompat 0x0 -+int style Platform_AppCompat_Light 0x0 -+int style Platform_ThemeOverlay_AppCompat 0x0 -+int style Platform_ThemeOverlay_AppCompat_Dark 0x0 -+int style Platform_ThemeOverlay_AppCompat_Light 0x0 -+int style Platform_V21_AppCompat 0x0 -+int style Platform_V21_AppCompat_Light 0x0 -+int style Platform_V25_AppCompat 0x0 -+int style Platform_V25_AppCompat_Light 0x0 -+int style Platform_Widget_AppCompat_Spinner 0x0 -+int style RtlOverlay_DialogWindowTitle_AppCompat 0x0 -+int style RtlOverlay_Widget_AppCompat_ActionBar_TitleItem 0x0 -+int style RtlOverlay_Widget_AppCompat_DialogTitle_Icon 0x0 -+int style RtlOverlay_Widget_AppCompat_PopupMenuItem 0x0 -+int style RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup 0x0 -+int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Shortcut 0x0 -+int style RtlOverlay_Widget_AppCompat_PopupMenuItem_SubmenuArrow 0x0 -+int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Text 0x0 -+int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Title 0x0 -+int style RtlOverlay_Widget_AppCompat_SearchView_MagIcon 0x0 -+int style RtlOverlay_Widget_AppCompat_Search_DropDown 0x0 -+int style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 0x0 -+int style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 0x0 -+int style RtlOverlay_Widget_AppCompat_Search_DropDown_Query 0x0 -+int style RtlOverlay_Widget_AppCompat_Search_DropDown_Text 0x0 -+int style RtlUnderlay_Widget_AppCompat_ActionButton 0x0 -+int style RtlUnderlay_Widget_AppCompat_ActionButton_Overflow 0x0 -+int style SpinnerDatePickerDialog 0x0 -+int style SpinnerDatePickerStyle 0x0 -+int style TextAppearance_AppCompat 0x0 -+int style TextAppearance_AppCompat_Body1 0x0 -+int style TextAppearance_AppCompat_Body2 0x0 -+int style TextAppearance_AppCompat_Button 0x0 -+int style TextAppearance_AppCompat_Caption 0x0 -+int style TextAppearance_AppCompat_Display1 0x0 -+int style TextAppearance_AppCompat_Display2 0x0 -+int style TextAppearance_AppCompat_Display3 0x0 -+int style TextAppearance_AppCompat_Display4 0x0 -+int style TextAppearance_AppCompat_Headline 0x0 -+int style TextAppearance_AppCompat_Inverse 0x0 -+int style TextAppearance_AppCompat_Large 0x0 -+int style TextAppearance_AppCompat_Large_Inverse 0x0 -+int style TextAppearance_AppCompat_Light_SearchResult_Subtitle 0x0 -+int style TextAppearance_AppCompat_Light_SearchResult_Title 0x0 -+int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x0 -+int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x0 -+int style TextAppearance_AppCompat_Medium 0x0 -+int style TextAppearance_AppCompat_Medium_Inverse 0x0 -+int style TextAppearance_AppCompat_Menu 0x0 -+int style TextAppearance_AppCompat_SearchResult_Subtitle 0x0 -+int style TextAppearance_AppCompat_SearchResult_Title 0x0 -+int style TextAppearance_AppCompat_Small 0x0 -+int style TextAppearance_AppCompat_Small_Inverse 0x0 -+int style TextAppearance_AppCompat_Subhead 0x0 -+int style TextAppearance_AppCompat_Subhead_Inverse 0x0 -+int style TextAppearance_AppCompat_Title 0x0 -+int style TextAppearance_AppCompat_Title_Inverse 0x0 -+int style TextAppearance_AppCompat_Tooltip 0x0 -+int style TextAppearance_AppCompat_Widget_ActionBar_Menu 0x0 -+int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x0 -+int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x0 -+int style TextAppearance_AppCompat_Widget_ActionBar_Title 0x0 -+int style TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x0 -+int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x0 -+int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse 0x0 -+int style TextAppearance_AppCompat_Widget_ActionMode_Title 0x0 -+int style TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse 0x0 -+int style TextAppearance_AppCompat_Widget_Button 0x0 -+int style TextAppearance_AppCompat_Widget_Button_Borderless_Colored 0x0 -+int style TextAppearance_AppCompat_Widget_Button_Colored 0x0 -+int style TextAppearance_AppCompat_Widget_Button_Inverse 0x0 -+int style TextAppearance_AppCompat_Widget_DropDownItem 0x0 -+int style TextAppearance_AppCompat_Widget_PopupMenu_Header 0x0 -+int style TextAppearance_AppCompat_Widget_PopupMenu_Large 0x0 -+int style TextAppearance_AppCompat_Widget_PopupMenu_Small 0x0 -+int style TextAppearance_AppCompat_Widget_Switch 0x0 -+int style TextAppearance_AppCompat_Widget_TextView_SpinnerItem 0x0 -+int style TextAppearance_Compat_Notification 0x0 -+int style TextAppearance_Compat_Notification_Info 0x0 -+int style TextAppearance_Compat_Notification_Line2 0x0 -+int style TextAppearance_Compat_Notification_Time 0x0 -+int style TextAppearance_Compat_Notification_Title 0x0 -+int style TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x0 -+int style TextAppearance_Widget_AppCompat_Toolbar_Subtitle 0x0 -+int style TextAppearance_Widget_AppCompat_Toolbar_Title 0x0 -+int style Theme 0x0 -+int style ThemeOverlay_AppCompat 0x0 -+int style ThemeOverlay_AppCompat_ActionBar 0x0 -+int style ThemeOverlay_AppCompat_Dark 0x0 -+int style ThemeOverlay_AppCompat_Dark_ActionBar 0x0 -+int style ThemeOverlay_AppCompat_DayNight 0x0 -+int style ThemeOverlay_AppCompat_DayNight_ActionBar 0x0 -+int style ThemeOverlay_AppCompat_Dialog 0x0 -+int style ThemeOverlay_AppCompat_Dialog_Alert 0x0 -+int style ThemeOverlay_AppCompat_Light 0x0 -+int style Theme_AppCompat 0x0 -+int style Theme_AppCompat_CompactMenu 0x0 -+int style Theme_AppCompat_DayNight 0x0 -+int style Theme_AppCompat_DayNight_DarkActionBar 0x0 -+int style Theme_AppCompat_DayNight_Dialog 0x0 -+int style Theme_AppCompat_DayNight_DialogWhenLarge 0x0 -+int style Theme_AppCompat_DayNight_Dialog_Alert 0x0 -+int style Theme_AppCompat_DayNight_Dialog_MinWidth 0x0 -+int style Theme_AppCompat_DayNight_NoActionBar 0x0 -+int style Theme_AppCompat_Dialog 0x0 -+int style Theme_AppCompat_DialogWhenLarge 0x0 -+int style Theme_AppCompat_Dialog_Alert 0x0 -+int style Theme_AppCompat_Dialog_MinWidth 0x0 -+int style Theme_AppCompat_Empty 0x0 -+int style Theme_AppCompat_Light 0x0 -+int style Theme_AppCompat_Light_DarkActionBar 0x0 -+int style Theme_AppCompat_Light_Dialog 0x0 -+int style Theme_AppCompat_Light_DialogWhenLarge 0x0 -+int style Theme_AppCompat_Light_Dialog_Alert 0x0 -+int style Theme_AppCompat_Light_Dialog_MinWidth 0x0 -+int style Theme_AppCompat_Light_NoActionBar 0x0 -+int style Theme_AppCompat_NoActionBar 0x0 -+int style Theme_AutofillInlineSuggestion 0x0 -+int style Theme_Catalyst 0x0 -+int style Theme_Catalyst_LogBox 0x0 -+int style Theme_Catalyst_RedBox 0x0 -+int style Theme_FullScreenDialog 0x0 -+int style Theme_FullScreenDialogAnimatedFade 0x0 -+int style Theme_FullScreenDialogAnimatedSlide 0x0 -+int style Theme_ReactNative_AppCompat_Light 0x0 -+int style Theme_ReactNative_AppCompat_Light_NoActionBar_FullScreen 0x0 -+int style Widget_AppCompat_ActionBar 0x0 -+int style Widget_AppCompat_ActionBar_Solid 0x0 -+int style Widget_AppCompat_ActionBar_TabBar 0x0 -+int style Widget_AppCompat_ActionBar_TabText 0x0 -+int style Widget_AppCompat_ActionBar_TabView 0x0 -+int style Widget_AppCompat_ActionButton 0x0 -+int style Widget_AppCompat_ActionButton_CloseMode 0x0 -+int style Widget_AppCompat_ActionButton_Overflow 0x0 -+int style Widget_AppCompat_ActionMode 0x0 -+int style Widget_AppCompat_ActivityChooserView 0x0 -+int style Widget_AppCompat_AutoCompleteTextView 0x0 -+int style Widget_AppCompat_Button 0x0 -+int style Widget_AppCompat_ButtonBar 0x0 -+int style Widget_AppCompat_ButtonBar_AlertDialog 0x0 -+int style Widget_AppCompat_Button_Borderless 0x0 -+int style Widget_AppCompat_Button_Borderless_Colored 0x0 -+int style Widget_AppCompat_Button_ButtonBar_AlertDialog 0x0 -+int style Widget_AppCompat_Button_Colored 0x0 -+int style Widget_AppCompat_Button_Small 0x0 -+int style Widget_AppCompat_CompoundButton_CheckBox 0x0 -+int style Widget_AppCompat_CompoundButton_RadioButton 0x0 -+int style Widget_AppCompat_CompoundButton_Switch 0x0 -+int style Widget_AppCompat_DrawerArrowToggle 0x0 -+int style Widget_AppCompat_DropDownItem_Spinner 0x0 -+int style Widget_AppCompat_EditText 0x0 -+int style Widget_AppCompat_ImageButton 0x0 -+int style Widget_AppCompat_Light_ActionBar 0x0 -+int style Widget_AppCompat_Light_ActionBar_Solid 0x0 -+int style Widget_AppCompat_Light_ActionBar_Solid_Inverse 0x0 -+int style Widget_AppCompat_Light_ActionBar_TabBar 0x0 -+int style Widget_AppCompat_Light_ActionBar_TabBar_Inverse 0x0 -+int style Widget_AppCompat_Light_ActionBar_TabText 0x0 -+int style Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x0 -+int style Widget_AppCompat_Light_ActionBar_TabView 0x0 -+int style Widget_AppCompat_Light_ActionBar_TabView_Inverse 0x0 -+int style Widget_AppCompat_Light_ActionButton 0x0 -+int style Widget_AppCompat_Light_ActionButton_CloseMode 0x0 -+int style Widget_AppCompat_Light_ActionButton_Overflow 0x0 -+int style Widget_AppCompat_Light_ActionMode_Inverse 0x0 -+int style Widget_AppCompat_Light_ActivityChooserView 0x0 -+int style Widget_AppCompat_Light_AutoCompleteTextView 0x0 -+int style Widget_AppCompat_Light_DropDownItem_Spinner 0x0 -+int style Widget_AppCompat_Light_ListPopupWindow 0x0 -+int style Widget_AppCompat_Light_ListView_DropDown 0x0 -+int style Widget_AppCompat_Light_PopupMenu 0x0 -+int style Widget_AppCompat_Light_PopupMenu_Overflow 0x0 -+int style Widget_AppCompat_Light_SearchView 0x0 -+int style Widget_AppCompat_Light_Spinner_DropDown_ActionBar 0x0 -+int style Widget_AppCompat_ListMenuView 0x0 -+int style Widget_AppCompat_ListPopupWindow 0x0 -+int style Widget_AppCompat_ListView 0x0 -+int style Widget_AppCompat_ListView_DropDown 0x0 -+int style Widget_AppCompat_ListView_Menu 0x0 -+int style Widget_AppCompat_PopupMenu 0x0 -+int style Widget_AppCompat_PopupMenu_Overflow 0x0 -+int style Widget_AppCompat_PopupWindow 0x0 -+int style Widget_AppCompat_ProgressBar 0x0 -+int style Widget_AppCompat_ProgressBar_Horizontal 0x0 -+int style Widget_AppCompat_RatingBar 0x0 -+int style Widget_AppCompat_RatingBar_Indicator 0x0 -+int style Widget_AppCompat_RatingBar_Small 0x0 -+int style Widget_AppCompat_SearchView 0x0 -+int style Widget_AppCompat_SearchView_ActionBar 0x0 -+int style Widget_AppCompat_SeekBar 0x0 -+int style Widget_AppCompat_SeekBar_Discrete 0x0 -+int style Widget_AppCompat_Spinner 0x0 -+int style Widget_AppCompat_Spinner_DropDown 0x0 -+int style Widget_AppCompat_Spinner_DropDown_ActionBar 0x0 -+int style Widget_AppCompat_Spinner_Underlined 0x0 -+int style Widget_AppCompat_TextView 0x0 -+int style Widget_AppCompat_TextView_SpinnerItem 0x0 -+int style Widget_AppCompat_Toolbar 0x0 -+int style Widget_AppCompat_Toolbar_Button_Navigation 0x0 -+int style Widget_Autofill 0x0 -+int style Widget_Autofill_InlineSuggestionChip 0x0 -+int style Widget_Autofill_InlineSuggestionEndIconStyle 0x0 -+int style Widget_Autofill_InlineSuggestionStartIconStyle 0x0 -+int style Widget_Autofill_InlineSuggestionSubtitle 0x0 -+int style Widget_Autofill_InlineSuggestionTitle 0x0 -+int style Widget_Compat_NotificationActionContainer 0x0 -+int style Widget_Compat_NotificationActionText 0x0 -+int style redboxButton 0x0 -+int[] styleable ActionBar { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable ActionBar_background 0 -+int styleable ActionBar_backgroundSplit 1 -+int styleable ActionBar_backgroundStacked 2 -+int styleable ActionBar_contentInsetEnd 3 -+int styleable ActionBar_contentInsetEndWithActions 4 -+int styleable ActionBar_contentInsetLeft 5 -+int styleable ActionBar_contentInsetRight 6 -+int styleable ActionBar_contentInsetStart 7 -+int styleable ActionBar_contentInsetStartWithNavigation 8 -+int styleable ActionBar_customNavigationLayout 9 -+int styleable ActionBar_displayOptions 10 -+int styleable ActionBar_divider 11 -+int styleable ActionBar_elevation 12 -+int styleable ActionBar_height 13 -+int styleable ActionBar_hideOnContentScroll 14 -+int styleable ActionBar_homeAsUpIndicator 15 -+int styleable ActionBar_homeLayout 16 -+int styleable ActionBar_icon 17 -+int styleable ActionBar_indeterminateProgressStyle 18 -+int styleable ActionBar_itemPadding 19 -+int styleable ActionBar_logo 20 -+int styleable ActionBar_navigationMode 21 -+int styleable ActionBar_popupTheme 22 -+int styleable ActionBar_progressBarPadding 23 -+int styleable ActionBar_progressBarStyle 24 -+int styleable ActionBar_subtitle 25 -+int styleable ActionBar_subtitleTextStyle 26 -+int styleable ActionBar_title 27 -+int styleable ActionBar_titleTextStyle 28 -+int[] styleable ActionBarLayout { 0x10100b3 } -+int styleable ActionBarLayout_android_layout_gravity 0 -+int[] styleable ActionMenuItemView { 0x101013f } -+int styleable ActionMenuItemView_android_minWidth 0 -+int[] styleable ActionMenuView { } -+int[] styleable ActionMode { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable ActionMode_background 0 -+int styleable ActionMode_backgroundSplit 1 -+int styleable ActionMode_closeItemLayout 2 -+int styleable ActionMode_height 3 -+int styleable ActionMode_subtitleTextStyle 4 -+int styleable ActionMode_titleTextStyle 5 -+int[] styleable ActivityChooserView { 0x0, 0x0 } -+int styleable ActivityChooserView_expandActivityOverflowButtonDrawable 0 -+int styleable ActivityChooserView_initialActivityCount 1 -+int[] styleable AlertDialog { 0x10100f2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable AlertDialog_android_layout 0 -+int styleable AlertDialog_buttonIconDimen 1 -+int styleable AlertDialog_buttonPanelSideLayout 2 -+int styleable AlertDialog_listItemLayout 3 -+int styleable AlertDialog_listLayout 4 -+int styleable AlertDialog_multiChoiceItemLayout 5 -+int styleable AlertDialog_showTitle 6 -+int styleable AlertDialog_singleChoiceItemLayout 7 -+int[] styleable AnimatedStateListDrawableCompat { 0x1010196, 0x101011c, 0x101030c, 0x101030d, 0x1010195, 0x1010194 } -+int styleable AnimatedStateListDrawableCompat_android_constantSize 0 -+int styleable AnimatedStateListDrawableCompat_android_dither 1 -+int styleable AnimatedStateListDrawableCompat_android_enterFadeDuration 2 -+int styleable AnimatedStateListDrawableCompat_android_exitFadeDuration 3 -+int styleable AnimatedStateListDrawableCompat_android_variablePadding 4 -+int styleable AnimatedStateListDrawableCompat_android_visible 5 -+int[] styleable AnimatedStateListDrawableItem { 0x1010199, 0x10100d0 } -+int styleable AnimatedStateListDrawableItem_android_drawable 0 -+int styleable AnimatedStateListDrawableItem_android_id 1 -+int[] styleable AnimatedStateListDrawableTransition { 0x1010199, 0x101044a, 0x101044b, 0x1010449 } -+int styleable AnimatedStateListDrawableTransition_android_drawable 0 -+int styleable AnimatedStateListDrawableTransition_android_fromId 1 -+int styleable AnimatedStateListDrawableTransition_android_reversible 2 -+int styleable AnimatedStateListDrawableTransition_android_toId 3 -+int[] styleable AppCompatEmojiHelper { } -+int[] styleable AppCompatImageView { 0x1010119, 0x0, 0x0, 0x0 } -+int styleable AppCompatImageView_android_src 0 -+int styleable AppCompatImageView_srcCompat 1 -+int styleable AppCompatImageView_tint 2 -+int styleable AppCompatImageView_tintMode 3 -+int[] styleable AppCompatSeekBar { 0x1010142, 0x0, 0x0, 0x0 } -+int styleable AppCompatSeekBar_android_thumb 0 -+int styleable AppCompatSeekBar_tickMark 1 -+int styleable AppCompatSeekBar_tickMarkTint 2 -+int styleable AppCompatSeekBar_tickMarkTintMode 3 -+int[] styleable AppCompatTextHelper { 0x101016e, 0x1010393, 0x101016f, 0x1010170, 0x1010392, 0x101016d, 0x1010034 } -+int styleable AppCompatTextHelper_android_drawableBottom 0 -+int styleable AppCompatTextHelper_android_drawableEnd 1 -+int styleable AppCompatTextHelper_android_drawableLeft 2 -+int styleable AppCompatTextHelper_android_drawableRight 3 -+int styleable AppCompatTextHelper_android_drawableStart 4 -+int styleable AppCompatTextHelper_android_drawableTop 5 -+int styleable AppCompatTextHelper_android_textAppearance 6 -+int[] styleable AppCompatTextView { 0x1010034, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable AppCompatTextView_android_textAppearance 0 -+int styleable AppCompatTextView_autoSizeMaxTextSize 1 -+int styleable AppCompatTextView_autoSizeMinTextSize 2 -+int styleable AppCompatTextView_autoSizePresetSizes 3 -+int styleable AppCompatTextView_autoSizeStepGranularity 4 -+int styleable AppCompatTextView_autoSizeTextType 5 -+int styleable AppCompatTextView_drawableBottomCompat 6 -+int styleable AppCompatTextView_drawableEndCompat 7 -+int styleable AppCompatTextView_drawableLeftCompat 8 -+int styleable AppCompatTextView_drawableRightCompat 9 -+int styleable AppCompatTextView_drawableStartCompat 10 -+int styleable AppCompatTextView_drawableTint 11 -+int styleable AppCompatTextView_drawableTintMode 12 -+int styleable AppCompatTextView_drawableTopCompat 13 -+int styleable AppCompatTextView_emojiCompatEnabled 14 -+int styleable AppCompatTextView_firstBaselineToTopHeight 15 -+int styleable AppCompatTextView_fontFamily 16 -+int styleable AppCompatTextView_fontVariationSettings 17 -+int styleable AppCompatTextView_lastBaselineToBottomHeight 18 -+int styleable AppCompatTextView_lineHeight 19 -+int styleable AppCompatTextView_textAllCaps 20 -+int styleable AppCompatTextView_textLocale 21 -+int[] styleable AppCompatTheme { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10100ae, 0x1010057, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable AppCompatTheme_actionBarDivider 0 -+int styleable AppCompatTheme_actionBarItemBackground 1 -+int styleable AppCompatTheme_actionBarPopupTheme 2 -+int styleable AppCompatTheme_actionBarSize 3 -+int styleable AppCompatTheme_actionBarSplitStyle 4 -+int styleable AppCompatTheme_actionBarStyle 5 -+int styleable AppCompatTheme_actionBarTabBarStyle 6 -+int styleable AppCompatTheme_actionBarTabStyle 7 -+int styleable AppCompatTheme_actionBarTabTextStyle 8 -+int styleable AppCompatTheme_actionBarTheme 9 -+int styleable AppCompatTheme_actionBarWidgetTheme 10 -+int styleable AppCompatTheme_actionButtonStyle 11 -+int styleable AppCompatTheme_actionDropDownStyle 12 -+int styleable AppCompatTheme_actionMenuTextAppearance 13 -+int styleable AppCompatTheme_actionMenuTextColor 14 -+int styleable AppCompatTheme_actionModeBackground 15 -+int styleable AppCompatTheme_actionModeCloseButtonStyle 16 -+int styleable AppCompatTheme_actionModeCloseContentDescription 17 -+int styleable AppCompatTheme_actionModeCloseDrawable 18 -+int styleable AppCompatTheme_actionModeCopyDrawable 19 -+int styleable AppCompatTheme_actionModeCutDrawable 20 -+int styleable AppCompatTheme_actionModeFindDrawable 21 -+int styleable AppCompatTheme_actionModePasteDrawable 22 -+int styleable AppCompatTheme_actionModePopupWindowStyle 23 -+int styleable AppCompatTheme_actionModeSelectAllDrawable 24 -+int styleable AppCompatTheme_actionModeShareDrawable 25 -+int styleable AppCompatTheme_actionModeSplitBackground 26 -+int styleable AppCompatTheme_actionModeStyle 27 -+int styleable AppCompatTheme_actionModeTheme 28 -+int styleable AppCompatTheme_actionModeWebSearchDrawable 29 -+int styleable AppCompatTheme_actionOverflowButtonStyle 30 -+int styleable AppCompatTheme_actionOverflowMenuStyle 31 -+int styleable AppCompatTheme_activityChooserViewStyle 32 -+int styleable AppCompatTheme_alertDialogButtonGroupStyle 33 -+int styleable AppCompatTheme_alertDialogCenterButtons 34 -+int styleable AppCompatTheme_alertDialogStyle 35 -+int styleable AppCompatTheme_alertDialogTheme 36 -+int styleable AppCompatTheme_android_windowAnimationStyle 37 -+int styleable AppCompatTheme_android_windowIsFloating 38 -+int styleable AppCompatTheme_autoCompleteTextViewStyle 39 -+int styleable AppCompatTheme_borderlessButtonStyle 40 -+int styleable AppCompatTheme_buttonBarButtonStyle 41 -+int styleable AppCompatTheme_buttonBarNegativeButtonStyle 42 -+int styleable AppCompatTheme_buttonBarNeutralButtonStyle 43 -+int styleable AppCompatTheme_buttonBarPositiveButtonStyle 44 -+int styleable AppCompatTheme_buttonBarStyle 45 -+int styleable AppCompatTheme_buttonStyle 46 -+int styleable AppCompatTheme_buttonStyleSmall 47 -+int styleable AppCompatTheme_checkboxStyle 48 -+int styleable AppCompatTheme_checkedTextViewStyle 49 -+int styleable AppCompatTheme_colorAccent 50 -+int styleable AppCompatTheme_colorBackgroundFloating 51 -+int styleable AppCompatTheme_colorButtonNormal 52 -+int styleable AppCompatTheme_colorControlActivated 53 -+int styleable AppCompatTheme_colorControlHighlight 54 -+int styleable AppCompatTheme_colorControlNormal 55 -+int styleable AppCompatTheme_colorError 56 -+int styleable AppCompatTheme_colorPrimary 57 -+int styleable AppCompatTheme_colorPrimaryDark 58 -+int styleable AppCompatTheme_colorSwitchThumbNormal 59 -+int styleable AppCompatTheme_controlBackground 60 -+int styleable AppCompatTheme_dialogCornerRadius 61 -+int styleable AppCompatTheme_dialogPreferredPadding 62 -+int styleable AppCompatTheme_dialogTheme 63 -+int styleable AppCompatTheme_dividerHorizontal 64 -+int styleable AppCompatTheme_dividerVertical 65 -+int styleable AppCompatTheme_dropDownListViewStyle 66 -+int styleable AppCompatTheme_dropdownListPreferredItemHeight 67 -+int styleable AppCompatTheme_editTextBackground 68 -+int styleable AppCompatTheme_editTextColor 69 -+int styleable AppCompatTheme_editTextStyle 70 -+int styleable AppCompatTheme_homeAsUpIndicator 71 -+int styleable AppCompatTheme_imageButtonStyle 72 -+int styleable AppCompatTheme_listChoiceBackgroundIndicator 73 -+int styleable AppCompatTheme_listChoiceIndicatorMultipleAnimated 74 -+int styleable AppCompatTheme_listChoiceIndicatorSingleAnimated 75 -+int styleable AppCompatTheme_listDividerAlertDialog 76 -+int styleable AppCompatTheme_listMenuViewStyle 77 -+int styleable AppCompatTheme_listPopupWindowStyle 78 -+int styleable AppCompatTheme_listPreferredItemHeight 79 -+int styleable AppCompatTheme_listPreferredItemHeightLarge 80 -+int styleable AppCompatTheme_listPreferredItemHeightSmall 81 -+int styleable AppCompatTheme_listPreferredItemPaddingEnd 82 -+int styleable AppCompatTheme_listPreferredItemPaddingLeft 83 -+int styleable AppCompatTheme_listPreferredItemPaddingRight 84 -+int styleable AppCompatTheme_listPreferredItemPaddingStart 85 -+int styleable AppCompatTheme_panelBackground 86 -+int styleable AppCompatTheme_panelMenuListTheme 87 -+int styleable AppCompatTheme_panelMenuListWidth 88 -+int styleable AppCompatTheme_popupMenuStyle 89 -+int styleable AppCompatTheme_popupWindowStyle 90 -+int styleable AppCompatTheme_radioButtonStyle 91 -+int styleable AppCompatTheme_ratingBarStyle 92 -+int styleable AppCompatTheme_ratingBarStyleIndicator 93 -+int styleable AppCompatTheme_ratingBarStyleSmall 94 -+int styleable AppCompatTheme_searchViewStyle 95 -+int styleable AppCompatTheme_seekBarStyle 96 -+int styleable AppCompatTheme_selectableItemBackground 97 -+int styleable AppCompatTheme_selectableItemBackgroundBorderless 98 -+int styleable AppCompatTheme_spinnerDropDownItemStyle 99 -+int styleable AppCompatTheme_spinnerStyle 100 -+int styleable AppCompatTheme_switchStyle 101 -+int styleable AppCompatTheme_textAppearanceLargePopupMenu 102 -+int styleable AppCompatTheme_textAppearanceListItem 103 -+int styleable AppCompatTheme_textAppearanceListItemSecondary 104 -+int styleable AppCompatTheme_textAppearanceListItemSmall 105 -+int styleable AppCompatTheme_textAppearancePopupMenuHeader 106 -+int styleable AppCompatTheme_textAppearanceSearchResultSubtitle 107 -+int styleable AppCompatTheme_textAppearanceSearchResultTitle 108 -+int styleable AppCompatTheme_textAppearanceSmallPopupMenu 109 -+int styleable AppCompatTheme_textColorAlertDialogListItem 110 -+int styleable AppCompatTheme_textColorSearchUrl 111 -+int styleable AppCompatTheme_toolbarNavigationButtonStyle 112 -+int styleable AppCompatTheme_toolbarStyle 113 -+int styleable AppCompatTheme_tooltipForegroundColor 114 -+int styleable AppCompatTheme_tooltipFrameBackground 115 -+int styleable AppCompatTheme_viewInflaterClass 116 -+int styleable AppCompatTheme_windowActionBar 117 -+int styleable AppCompatTheme_windowActionBarOverlay 118 -+int styleable AppCompatTheme_windowActionModeOverlay 119 -+int styleable AppCompatTheme_windowFixedHeightMajor 120 -+int styleable AppCompatTheme_windowFixedHeightMinor 121 -+int styleable AppCompatTheme_windowFixedWidthMajor 122 -+int styleable AppCompatTheme_windowFixedWidthMinor 123 -+int styleable AppCompatTheme_windowMinWidthMajor 124 -+int styleable AppCompatTheme_windowMinWidthMinor 125 -+int styleable AppCompatTheme_windowNoTitle 126 -+int[] styleable Autofill_InlineSuggestion { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable Autofill_InlineSuggestion_autofillInlineSuggestionChip 0 -+int styleable Autofill_InlineSuggestion_autofillInlineSuggestionEndIconStyle 1 -+int styleable Autofill_InlineSuggestion_autofillInlineSuggestionStartIconStyle 2 -+int styleable Autofill_InlineSuggestion_autofillInlineSuggestionSubtitle 3 -+int styleable Autofill_InlineSuggestion_autofillInlineSuggestionTitle 4 -+int styleable Autofill_InlineSuggestion_isAutofillInlineSuggestionTheme 5 -+int[] styleable ButtonBarLayout { 0x0 } -+int styleable ButtonBarLayout_allowStacking 0 -+int[] styleable Capability { 0x0, 0x0 } -+int styleable Capability_queryPatterns 0 -+int styleable Capability_shortcutMatchRequired 1 -+int[] styleable CheckedTextView { 0x1010108, 0x0, 0x0, 0x0 } -+int styleable CheckedTextView_android_checkMark 0 -+int styleable CheckedTextView_checkMarkCompat 1 -+int styleable CheckedTextView_checkMarkTint 2 -+int styleable CheckedTextView_checkMarkTintMode 3 -+int[] styleable ColorStateListItem { 0x0, 0x101031f, 0x10101a5, 0x1010647, 0x0 } -+int styleable ColorStateListItem_alpha 0 -+int styleable ColorStateListItem_android_alpha 1 -+int styleable ColorStateListItem_android_color 2 -+int styleable ColorStateListItem_android_lStar 3 -+int styleable ColorStateListItem_lStar 4 -+int[] styleable CompoundButton { 0x1010107, 0x0, 0x0, 0x0 } -+int styleable CompoundButton_android_button 0 -+int styleable CompoundButton_buttonCompat 1 -+int styleable CompoundButton_buttonTint 2 -+int styleable CompoundButton_buttonTintMode 3 -+int[] styleable DrawerArrowToggle { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable DrawerArrowToggle_arrowHeadLength 0 -+int styleable DrawerArrowToggle_arrowShaftLength 1 -+int styleable DrawerArrowToggle_barLength 2 -+int styleable DrawerArrowToggle_color 3 -+int styleable DrawerArrowToggle_drawableSize 4 -+int styleable DrawerArrowToggle_gapBetweenBars 5 -+int styleable DrawerArrowToggle_spinBars 6 -+int styleable DrawerArrowToggle_thickness 7 -+int[] styleable FontFamily { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable FontFamily_fontProviderAuthority 0 -+int styleable FontFamily_fontProviderCerts 1 -+int styleable FontFamily_fontProviderFetchStrategy 2 -+int styleable FontFamily_fontProviderFetchTimeout 3 -+int styleable FontFamily_fontProviderPackage 4 -+int styleable FontFamily_fontProviderQuery 5 -+int styleable FontFamily_fontProviderSystemFontFamily 6 -+int[] styleable FontFamilyFont { 0x1010532, 0x101053f, 0x1010570, 0x1010533, 0x101056f, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable FontFamilyFont_android_font 0 -+int styleable FontFamilyFont_android_fontStyle 1 -+int styleable FontFamilyFont_android_fontVariationSettings 2 -+int styleable FontFamilyFont_android_fontWeight 3 -+int styleable FontFamilyFont_android_ttcIndex 4 -+int styleable FontFamilyFont_font 5 -+int styleable FontFamilyFont_fontStyle 6 -+int styleable FontFamilyFont_fontVariationSettings 7 -+int styleable FontFamilyFont_fontWeight 8 -+int styleable FontFamilyFont_ttcIndex 9 -+int[] styleable Fragment { 0x10100d0, 0x1010003, 0x10100d1 } -+int styleable Fragment_android_id 0 -+int styleable Fragment_android_name 1 -+int styleable Fragment_android_tag 2 -+int[] styleable FragmentContainerView { 0x1010003, 0x10100d1 } -+int styleable FragmentContainerView_android_name 0 -+int styleable FragmentContainerView_android_tag 1 -+int[] styleable GenericDraweeHierarchy { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable GenericDraweeHierarchy_actualImageScaleType 0 -+int styleable GenericDraweeHierarchy_backgroundImage 1 -+int styleable GenericDraweeHierarchy_fadeDuration 2 -+int styleable GenericDraweeHierarchy_failureImage 3 -+int styleable GenericDraweeHierarchy_failureImageScaleType 4 -+int styleable GenericDraweeHierarchy_overlayImage 5 -+int styleable GenericDraweeHierarchy_placeholderImage 6 -+int styleable GenericDraweeHierarchy_placeholderImageScaleType 7 -+int styleable GenericDraweeHierarchy_pressedStateOverlayImage 8 -+int styleable GenericDraweeHierarchy_progressBarAutoRotateInterval 9 -+int styleable GenericDraweeHierarchy_progressBarImage 10 -+int styleable GenericDraweeHierarchy_progressBarImageScaleType 11 -+int styleable GenericDraweeHierarchy_retryImage 12 -+int styleable GenericDraweeHierarchy_retryImageScaleType 13 -+int styleable GenericDraweeHierarchy_roundAsCircle 14 -+int styleable GenericDraweeHierarchy_roundBottomEnd 15 -+int styleable GenericDraweeHierarchy_roundBottomLeft 16 -+int styleable GenericDraweeHierarchy_roundBottomRight 17 -+int styleable GenericDraweeHierarchy_roundBottomStart 18 -+int styleable GenericDraweeHierarchy_roundTopEnd 19 -+int styleable GenericDraweeHierarchy_roundTopLeft 20 -+int styleable GenericDraweeHierarchy_roundTopRight 21 -+int styleable GenericDraweeHierarchy_roundTopStart 22 -+int styleable GenericDraweeHierarchy_roundWithOverlayColor 23 -+int styleable GenericDraweeHierarchy_roundedCornerRadius 24 -+int styleable GenericDraweeHierarchy_roundingBorderColor 25 -+int styleable GenericDraweeHierarchy_roundingBorderPadding 26 -+int styleable GenericDraweeHierarchy_roundingBorderWidth 27 -+int styleable GenericDraweeHierarchy_viewAspectRatio 28 -+int[] styleable GradientColor { 0x101020b, 0x10101a2, 0x10101a3, 0x101019e, 0x1010512, 0x1010513, 0x10101a4, 0x101019d, 0x1010510, 0x1010511, 0x1010201, 0x10101a1 } -+int styleable GradientColor_android_centerColor 0 -+int styleable GradientColor_android_centerX 1 -+int styleable GradientColor_android_centerY 2 -+int styleable GradientColor_android_endColor 3 -+int styleable GradientColor_android_endX 4 -+int styleable GradientColor_android_endY 5 -+int styleable GradientColor_android_gradientRadius 6 -+int styleable GradientColor_android_startColor 7 -+int styleable GradientColor_android_startX 8 -+int styleable GradientColor_android_startY 9 -+int styleable GradientColor_android_tileMode 10 -+int styleable GradientColor_android_type 11 -+int[] styleable GradientColorItem { 0x10101a5, 0x1010514 } -+int styleable GradientColorItem_android_color 0 -+int styleable GradientColorItem_android_offset 1 -+int[] styleable LinearLayoutCompat { 0x1010126, 0x1010127, 0x10100af, 0x10100c4, 0x1010128, 0x0, 0x0, 0x0, 0x0 } -+int styleable LinearLayoutCompat_android_baselineAligned 0 -+int styleable LinearLayoutCompat_android_baselineAlignedChildIndex 1 -+int styleable LinearLayoutCompat_android_gravity 2 -+int styleable LinearLayoutCompat_android_orientation 3 -+int styleable LinearLayoutCompat_android_weightSum 4 -+int styleable LinearLayoutCompat_divider 5 -+int styleable LinearLayoutCompat_dividerPadding 6 -+int styleable LinearLayoutCompat_measureWithLargestChild 7 -+int styleable LinearLayoutCompat_showDividers 8 -+int[] styleable LinearLayoutCompat_Layout { 0x10100b3, 0x10100f5, 0x1010181, 0x10100f4 } -+int styleable LinearLayoutCompat_Layout_android_layout_gravity 0 -+int styleable LinearLayoutCompat_Layout_android_layout_height 1 -+int styleable LinearLayoutCompat_Layout_android_layout_weight 2 -+int styleable LinearLayoutCompat_Layout_android_layout_width 3 -+int[] styleable ListPopupWindow { 0x10102ac, 0x10102ad } -+int styleable ListPopupWindow_android_dropDownHorizontalOffset 0 -+int styleable ListPopupWindow_android_dropDownVerticalOffset 1 -+int[] styleable MenuGroup { 0x10101e0, 0x101000e, 0x10100d0, 0x10101de, 0x10101df, 0x1010194 } -+int styleable MenuGroup_android_checkableBehavior 0 -+int styleable MenuGroup_android_enabled 1 -+int styleable MenuGroup_android_id 2 -+int styleable MenuGroup_android_menuCategory 3 -+int styleable MenuGroup_android_orderInCategory 4 -+int styleable MenuGroup_android_visible 5 -+int[] styleable MenuItem { 0x0, 0x0, 0x0, 0x0, 0x10101e3, 0x10101e5, 0x1010106, 0x101000e, 0x1010002, 0x10100d0, 0x10101de, 0x10101e4, 0x101026f, 0x10101df, 0x10101e1, 0x10101e2, 0x1010194, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable MenuItem_actionLayout 0 -+int styleable MenuItem_actionProviderClass 1 -+int styleable MenuItem_actionViewClass 2 -+int styleable MenuItem_alphabeticModifiers 3 -+int styleable MenuItem_android_alphabeticShortcut 4 -+int styleable MenuItem_android_checkable 5 -+int styleable MenuItem_android_checked 6 -+int styleable MenuItem_android_enabled 7 -+int styleable MenuItem_android_icon 8 -+int styleable MenuItem_android_id 9 -+int styleable MenuItem_android_menuCategory 10 -+int styleable MenuItem_android_numericShortcut 11 -+int styleable MenuItem_android_onClick 12 -+int styleable MenuItem_android_orderInCategory 13 -+int styleable MenuItem_android_title 14 -+int styleable MenuItem_android_titleCondensed 15 -+int styleable MenuItem_android_visible 16 -+int styleable MenuItem_contentDescription 17 -+int styleable MenuItem_iconTint 18 -+int styleable MenuItem_iconTintMode 19 -+int styleable MenuItem_numericModifiers 20 -+int styleable MenuItem_showAsAction 21 -+int styleable MenuItem_tooltipText 22 -+int[] styleable MenuView { 0x101012f, 0x101012d, 0x1010130, 0x1010131, 0x101012c, 0x101012e, 0x10100ae, 0x0, 0x0 } -+int styleable MenuView_android_headerBackground 0 -+int styleable MenuView_android_horizontalDivider 1 -+int styleable MenuView_android_itemBackground 2 -+int styleable MenuView_android_itemIconDisabledAlpha 3 -+int styleable MenuView_android_itemTextAppearance 4 -+int styleable MenuView_android_verticalDivider 5 -+int styleable MenuView_android_windowAnimationStyle 6 -+int styleable MenuView_preserveIconSpacing 7 -+int styleable MenuView_subMenuArrow 8 -+int[] styleable PopupWindow { 0x10102c9, 0x1010176, 0x0 } -+int styleable PopupWindow_android_popupAnimationStyle 0 -+int styleable PopupWindow_android_popupBackground 1 -+int styleable PopupWindow_overlapAnchor 2 -+int[] styleable PopupWindowBackgroundState { 0x0 } -+int styleable PopupWindowBackgroundState_state_above_anchor 0 -+int[] styleable RecycleListView { 0x0, 0x0 } -+int styleable RecycleListView_paddingBottomNoButtons 0 -+int styleable RecycleListView_paddingTopNoTitle 1 -+int[] styleable SearchView { 0x10100da, 0x1010264, 0x1010220, 0x101011f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable SearchView_android_focusable 0 -+int styleable SearchView_android_imeOptions 1 -+int styleable SearchView_android_inputType 2 -+int styleable SearchView_android_maxWidth 3 -+int styleable SearchView_closeIcon 4 -+int styleable SearchView_commitIcon 5 -+int styleable SearchView_defaultQueryHint 6 -+int styleable SearchView_goIcon 7 -+int styleable SearchView_iconifiedByDefault 8 -+int styleable SearchView_layout 9 -+int styleable SearchView_queryBackground 10 -+int styleable SearchView_queryHint 11 -+int styleable SearchView_searchHintIcon 12 -+int styleable SearchView_searchIcon 13 -+int styleable SearchView_submitBackground 14 -+int styleable SearchView_suggestionRowLayout 15 -+int styleable SearchView_voiceIcon 16 -+int[] styleable SimpleDraweeView { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable SimpleDraweeView_actualImageResource 0 -+int styleable SimpleDraweeView_actualImageScaleType 1 -+int styleable SimpleDraweeView_actualImageUri 2 -+int styleable SimpleDraweeView_backgroundImage 3 -+int styleable SimpleDraweeView_fadeDuration 4 -+int styleable SimpleDraweeView_failureImage 5 -+int styleable SimpleDraweeView_failureImageScaleType 6 -+int styleable SimpleDraweeView_overlayImage 7 -+int styleable SimpleDraweeView_placeholderImage 8 -+int styleable SimpleDraweeView_placeholderImageScaleType 9 -+int styleable SimpleDraweeView_pressedStateOverlayImage 10 -+int styleable SimpleDraweeView_progressBarAutoRotateInterval 11 -+int styleable SimpleDraweeView_progressBarImage 12 -+int styleable SimpleDraweeView_progressBarImageScaleType 13 -+int styleable SimpleDraweeView_retryImage 14 -+int styleable SimpleDraweeView_retryImageScaleType 15 -+int styleable SimpleDraweeView_roundAsCircle 16 -+int styleable SimpleDraweeView_roundBottomEnd 17 -+int styleable SimpleDraweeView_roundBottomLeft 18 -+int styleable SimpleDraweeView_roundBottomRight 19 -+int styleable SimpleDraweeView_roundBottomStart 20 -+int styleable SimpleDraweeView_roundTopEnd 21 -+int styleable SimpleDraweeView_roundTopLeft 22 -+int styleable SimpleDraweeView_roundTopRight 23 -+int styleable SimpleDraweeView_roundTopStart 24 -+int styleable SimpleDraweeView_roundWithOverlayColor 25 -+int styleable SimpleDraweeView_roundedCornerRadius 26 -+int styleable SimpleDraweeView_roundingBorderColor 27 -+int styleable SimpleDraweeView_roundingBorderPadding 28 -+int styleable SimpleDraweeView_roundingBorderWidth 29 -+int styleable SimpleDraweeView_viewAspectRatio 30 -+int[] styleable Spinner { 0x1010262, 0x10100b2, 0x1010176, 0x101017b, 0x0 } -+int styleable Spinner_android_dropDownWidth 0 -+int styleable Spinner_android_entries 1 -+int styleable Spinner_android_popupBackground 2 -+int styleable Spinner_android_prompt 3 -+int styleable Spinner_popupTheme 4 -+int[] styleable StateListDrawable { 0x1010196, 0x101011c, 0x101030c, 0x101030d, 0x1010195, 0x1010194 } -+int styleable StateListDrawable_android_constantSize 0 -+int styleable StateListDrawable_android_dither 1 -+int styleable StateListDrawable_android_enterFadeDuration 2 -+int styleable StateListDrawable_android_exitFadeDuration 3 -+int styleable StateListDrawable_android_variablePadding 4 -+int styleable StateListDrawable_android_visible 5 -+int[] styleable StateListDrawableItem { 0x1010199 } -+int styleable StateListDrawableItem_android_drawable 0 -+int[] styleable SwitchCompat { 0x1010125, 0x1010124, 0x1010142, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable SwitchCompat_android_textOff 0 -+int styleable SwitchCompat_android_textOn 1 -+int styleable SwitchCompat_android_thumb 2 -+int styleable SwitchCompat_showText 3 -+int styleable SwitchCompat_splitTrack 4 -+int styleable SwitchCompat_switchMinWidth 5 -+int styleable SwitchCompat_switchPadding 6 -+int styleable SwitchCompat_switchTextAppearance 7 -+int styleable SwitchCompat_thumbTextPadding 8 -+int styleable SwitchCompat_thumbTint 9 -+int styleable SwitchCompat_thumbTintMode 10 -+int styleable SwitchCompat_track 11 -+int styleable SwitchCompat_trackTint 12 -+int styleable SwitchCompat_trackTintMode 13 -+int[] styleable TextAppearance { 0x10103ac, 0x1010161, 0x1010162, 0x1010163, 0x1010164, 0x1010098, 0x101009a, 0x101009b, 0x1010585, 0x1010095, 0x1010097, 0x1010096, 0x0, 0x0, 0x0, 0x0 } -+int styleable TextAppearance_android_fontFamily 0 -+int styleable TextAppearance_android_shadowColor 1 -+int styleable TextAppearance_android_shadowDx 2 -+int styleable TextAppearance_android_shadowDy 3 -+int styleable TextAppearance_android_shadowRadius 4 -+int styleable TextAppearance_android_textColor 5 -+int styleable TextAppearance_android_textColorHint 6 -+int styleable TextAppearance_android_textColorLink 7 -+int styleable TextAppearance_android_textFontWeight 8 -+int styleable TextAppearance_android_textSize 9 -+int styleable TextAppearance_android_textStyle 10 -+int styleable TextAppearance_android_typeface 11 -+int styleable TextAppearance_fontFamily 12 -+int styleable TextAppearance_fontVariationSettings 13 -+int styleable TextAppearance_textAllCaps 14 -+int styleable TextAppearance_textLocale 15 -+int[] styleable Toolbar { 0x10100af, 0x1010140, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable Toolbar_android_gravity 0 -+int styleable Toolbar_android_minHeight 1 -+int styleable Toolbar_buttonGravity 2 -+int styleable Toolbar_collapseContentDescription 3 -+int styleable Toolbar_collapseIcon 4 -+int styleable Toolbar_contentInsetEnd 5 -+int styleable Toolbar_contentInsetEndWithActions 6 -+int styleable Toolbar_contentInsetLeft 7 -+int styleable Toolbar_contentInsetRight 8 -+int styleable Toolbar_contentInsetStart 9 -+int styleable Toolbar_contentInsetStartWithNavigation 10 -+int styleable Toolbar_logo 11 -+int styleable Toolbar_logoDescription 12 -+int styleable Toolbar_maxButtonHeight 13 -+int styleable Toolbar_menu 14 -+int styleable Toolbar_navigationContentDescription 15 -+int styleable Toolbar_navigationIcon 16 -+int styleable Toolbar_popupTheme 17 -+int styleable Toolbar_subtitle 18 -+int styleable Toolbar_subtitleTextAppearance 19 -+int styleable Toolbar_subtitleTextColor 20 -+int styleable Toolbar_title 21 -+int styleable Toolbar_titleMargin 22 -+int styleable Toolbar_titleMarginBottom 23 -+int styleable Toolbar_titleMarginEnd 24 -+int styleable Toolbar_titleMarginStart 25 -+int styleable Toolbar_titleMarginTop 26 -+int styleable Toolbar_titleMargins 27 -+int styleable Toolbar_titleTextAppearance 28 -+int styleable Toolbar_titleTextColor 29 -+int[] styleable View { 0x10100da, 0x1010000, 0x0, 0x0, 0x0 } -+int styleable View_android_focusable 0 -+int styleable View_android_theme 1 -+int styleable View_paddingEnd 2 -+int styleable View_paddingStart 3 -+int styleable View_theme 4 -+int[] styleable ViewBackgroundHelper { 0x10100d4, 0x0, 0x0 } -+int styleable ViewBackgroundHelper_android_background 0 -+int styleable ViewBackgroundHelper_backgroundTint 1 -+int styleable ViewBackgroundHelper_backgroundTintMode 2 -+int[] styleable ViewStubCompat { 0x10100d0, 0x10100f3, 0x10100f2 } -+int styleable ViewStubCompat_android_id 0 -+int styleable ViewStubCompat_android_inflatedId 1 -+int styleable ViewStubCompat_android_layout 2 -+int xml rn_dev_preferences 0x0 -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties -new file mode 100644 -index 0000000..47e2add ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties -@@ -0,0 +1 @@ -+#Sun Apr 02 19:35:28 CDT 2023 -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml -new file mode 100644 -index 0000000..b5f25a5 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml -@@ -0,0 +1,2 @@ -+ -+ -\ No newline at end of file -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/local_only_symbol_list/debug/R-def.txt b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/local_only_symbol_list/debug/R-def.txt -new file mode 100644 -index 0000000..78ac5b8 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/local_only_symbol_list/debug/R-def.txt -@@ -0,0 +1,2 @@ -+R_DEF: Internal format may change without notice -+local -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt -new file mode 100644 -index 0000000..127829f ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt -@@ -0,0 +1,11 @@ -+1 -+2 -+4 -+5 /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+7 android:targetSdkVersion="33" /> -+7-->/Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+8 -+9 -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml -new file mode 100644 -index 0000000..0249d77 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml -@@ -0,0 +1,9 @@ -+ -+ -+ -+ -+ -+ -\ No newline at end of file -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/navigation_json/debug/navigation.json b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/navigation_json/debug/navigation.json -new file mode 100644 -index 0000000..0637a08 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/navigation_json/debug/navigation.json -@@ -0,0 +1 @@ -+[] -\ No newline at end of file -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/packaged_manifests/debug/output-metadata.json b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/packaged_manifests/debug/output-metadata.json -new file mode 100644 -index 0000000..3640409 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/packaged_manifests/debug/output-metadata.json -@@ -0,0 +1,18 @@ -+{ -+ "version": 3, -+ "artifactType": { -+ "type": "PACKAGED_MANIFESTS", -+ "kind": "Directory" -+ }, -+ "applicationId": "com.mattermost.pasteinput", -+ "variantName": "debug", -+ "elements": [ -+ { -+ "type": "SINGLE", -+ "filters": [], -+ "attributes": [], -+ "outputFile": "../../merged_manifest/debug/AndroidManifest.xml" -+ } -+ ], -+ "elementType": "File" -+} -\ No newline at end of file -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt -new file mode 100644 -index 0000000..7009825 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt -@@ -0,0 +1,1446 @@ -+com.mattermost.pasteinput -+anim abc_fade_in -+anim abc_fade_out -+anim abc_grow_fade_in_from_bottom -+anim abc_popup_enter -+anim abc_popup_exit -+anim abc_shrink_fade_out_from_bottom -+anim abc_slide_in_bottom -+anim abc_slide_in_top -+anim abc_slide_out_bottom -+anim abc_slide_out_top -+anim abc_tooltip_enter -+anim abc_tooltip_exit -+anim btn_checkbox_to_checked_box_inner_merged_animation -+anim btn_checkbox_to_checked_box_outer_merged_animation -+anim btn_checkbox_to_checked_icon_null_animation -+anim btn_checkbox_to_unchecked_box_inner_merged_animation -+anim btn_checkbox_to_unchecked_check_path_merged_animation -+anim btn_checkbox_to_unchecked_icon_null_animation -+anim btn_radio_to_off_mtrl_dot_group_animation -+anim btn_radio_to_off_mtrl_ring_outer_animation -+anim btn_radio_to_off_mtrl_ring_outer_path_animation -+anim btn_radio_to_on_mtrl_dot_group_animation -+anim btn_radio_to_on_mtrl_ring_outer_animation -+anim btn_radio_to_on_mtrl_ring_outer_path_animation -+anim catalyst_fade_in -+anim catalyst_fade_out -+anim catalyst_push_up_in -+anim catalyst_push_up_out -+anim catalyst_slide_down -+anim catalyst_slide_up -+anim fragment_fast_out_extra_slow_in -+animator fragment_close_enter -+animator fragment_close_exit -+animator fragment_fade_enter -+animator fragment_fade_exit -+animator fragment_open_enter -+animator fragment_open_exit -+attr actionBarDivider -+attr actionBarItemBackground -+attr actionBarPopupTheme -+attr actionBarSize -+attr actionBarSplitStyle -+attr actionBarStyle -+attr actionBarTabBarStyle -+attr actionBarTabStyle -+attr actionBarTabTextStyle -+attr actionBarTheme -+attr actionBarWidgetTheme -+attr actionButtonStyle -+attr actionDropDownStyle -+attr actionLayout -+attr actionMenuTextAppearance -+attr actionMenuTextColor -+attr actionModeBackground -+attr actionModeCloseButtonStyle -+attr actionModeCloseContentDescription -+attr actionModeCloseDrawable -+attr actionModeCopyDrawable -+attr actionModeCutDrawable -+attr actionModeFindDrawable -+attr actionModePasteDrawable -+attr actionModePopupWindowStyle -+attr actionModeSelectAllDrawable -+attr actionModeShareDrawable -+attr actionModeSplitBackground -+attr actionModeStyle -+attr actionModeTheme -+attr actionModeWebSearchDrawable -+attr actionOverflowButtonStyle -+attr actionOverflowMenuStyle -+attr actionProviderClass -+attr actionViewClass -+attr activityChooserViewStyle -+attr actualImageResource -+attr actualImageScaleType -+attr actualImageUri -+attr alertDialogButtonGroupStyle -+attr alertDialogCenterButtons -+attr alertDialogStyle -+attr alertDialogTheme -+attr allowStacking -+attr alpha -+attr alphabeticModifiers -+attr arrowHeadLength -+attr arrowShaftLength -+attr autoCompleteTextViewStyle -+attr autoSizeMaxTextSize -+attr autoSizeMinTextSize -+attr autoSizePresetSizes -+attr autoSizeStepGranularity -+attr autoSizeTextType -+attr autofillInlineSuggestionChip -+attr autofillInlineSuggestionEndIconStyle -+attr autofillInlineSuggestionStartIconStyle -+attr autofillInlineSuggestionSubtitle -+attr autofillInlineSuggestionTitle -+attr background -+attr backgroundImage -+attr backgroundSplit -+attr backgroundStacked -+attr backgroundTint -+attr backgroundTintMode -+attr barLength -+attr borderlessButtonStyle -+attr buttonBarButtonStyle -+attr buttonBarNegativeButtonStyle -+attr buttonBarNeutralButtonStyle -+attr buttonBarPositiveButtonStyle -+attr buttonBarStyle -+attr buttonCompat -+attr buttonGravity -+attr buttonIconDimen -+attr buttonPanelSideLayout -+attr buttonStyle -+attr buttonStyleSmall -+attr buttonTint -+attr buttonTintMode -+attr checkMarkCompat -+attr checkMarkTint -+attr checkMarkTintMode -+attr checkboxStyle -+attr checkedTextViewStyle -+attr closeIcon -+attr closeItemLayout -+attr collapseContentDescription -+attr collapseIcon -+attr color -+attr colorAccent -+attr colorBackgroundFloating -+attr colorButtonNormal -+attr colorControlActivated -+attr colorControlHighlight -+attr colorControlNormal -+attr colorError -+attr colorPrimary -+attr colorPrimaryDark -+attr colorSwitchThumbNormal -+attr commitIcon -+attr contentDescription -+attr contentInsetEnd -+attr contentInsetEndWithActions -+attr contentInsetLeft -+attr contentInsetRight -+attr contentInsetStart -+attr contentInsetStartWithNavigation -+attr controlBackground -+attr customNavigationLayout -+attr defaultQueryHint -+attr dialogCornerRadius -+attr dialogPreferredPadding -+attr dialogTheme -+attr displayOptions -+attr divider -+attr dividerHorizontal -+attr dividerPadding -+attr dividerVertical -+attr drawableBottomCompat -+attr drawableEndCompat -+attr drawableLeftCompat -+attr drawableRightCompat -+attr drawableSize -+attr drawableStartCompat -+attr drawableTint -+attr drawableTintMode -+attr drawableTopCompat -+attr drawerArrowStyle -+attr dropDownListViewStyle -+attr dropdownListPreferredItemHeight -+attr editTextBackground -+attr editTextColor -+attr editTextStyle -+attr elevation -+attr emojiCompatEnabled -+attr expandActivityOverflowButtonDrawable -+attr fadeDuration -+attr failureImage -+attr failureImageScaleType -+attr firstBaselineToTopHeight -+attr font -+attr fontFamily -+attr fontProviderAuthority -+attr fontProviderCerts -+attr fontProviderFetchStrategy -+attr fontProviderFetchTimeout -+attr fontProviderPackage -+attr fontProviderQuery -+attr fontProviderSystemFontFamily -+attr fontStyle -+attr fontVariationSettings -+attr fontWeight -+attr gapBetweenBars -+attr goIcon -+attr height -+attr hideOnContentScroll -+attr homeAsUpIndicator -+attr homeLayout -+attr icon -+attr iconTint -+attr iconTintMode -+attr iconifiedByDefault -+attr imageButtonStyle -+attr indeterminateProgressStyle -+attr initialActivityCount -+attr isAutofillInlineSuggestionTheme -+attr isLightTheme -+attr itemPadding -+attr lStar -+attr lastBaselineToBottomHeight -+attr layout -+attr lineHeight -+attr listChoiceBackgroundIndicator -+attr listChoiceIndicatorMultipleAnimated -+attr listChoiceIndicatorSingleAnimated -+attr listDividerAlertDialog -+attr listItemLayout -+attr listLayout -+attr listMenuViewStyle -+attr listPopupWindowStyle -+attr listPreferredItemHeight -+attr listPreferredItemHeightLarge -+attr listPreferredItemHeightSmall -+attr listPreferredItemPaddingEnd -+attr listPreferredItemPaddingLeft -+attr listPreferredItemPaddingRight -+attr listPreferredItemPaddingStart -+attr logo -+attr logoDescription -+attr maxButtonHeight -+attr measureWithLargestChild -+attr menu -+attr multiChoiceItemLayout -+attr navigationContentDescription -+attr navigationIcon -+attr navigationMode -+attr nestedScrollViewStyle -+attr numericModifiers -+attr overlapAnchor -+attr overlayImage -+attr paddingBottomNoButtons -+attr paddingEnd -+attr paddingStart -+attr paddingTopNoTitle -+attr panelBackground -+attr panelMenuListTheme -+attr panelMenuListWidth -+attr placeholderImage -+attr placeholderImageScaleType -+attr popupMenuStyle -+attr popupTheme -+attr popupWindowStyle -+attr preserveIconSpacing -+attr pressedStateOverlayImage -+attr progressBarAutoRotateInterval -+attr progressBarImage -+attr progressBarImageScaleType -+attr progressBarPadding -+attr progressBarStyle -+attr queryBackground -+attr queryHint -+attr queryPatterns -+attr radioButtonStyle -+attr ratingBarStyle -+attr ratingBarStyleIndicator -+attr ratingBarStyleSmall -+attr retryImage -+attr retryImageScaleType -+attr roundAsCircle -+attr roundBottomEnd -+attr roundBottomLeft -+attr roundBottomRight -+attr roundBottomStart -+attr roundTopEnd -+attr roundTopLeft -+attr roundTopRight -+attr roundTopStart -+attr roundWithOverlayColor -+attr roundedCornerRadius -+attr roundingBorderColor -+attr roundingBorderPadding -+attr roundingBorderWidth -+attr searchHintIcon -+attr searchIcon -+attr searchViewStyle -+attr seekBarStyle -+attr selectableItemBackground -+attr selectableItemBackgroundBorderless -+attr shortcutMatchRequired -+attr showAsAction -+attr showDividers -+attr showText -+attr showTitle -+attr singleChoiceItemLayout -+attr spinBars -+attr spinnerDropDownItemStyle -+attr spinnerStyle -+attr splitTrack -+attr srcCompat -+attr state_above_anchor -+attr subMenuArrow -+attr submitBackground -+attr subtitle -+attr subtitleTextAppearance -+attr subtitleTextColor -+attr subtitleTextStyle -+attr suggestionRowLayout -+attr switchMinWidth -+attr switchPadding -+attr switchStyle -+attr switchTextAppearance -+attr textAllCaps -+attr textAppearanceLargePopupMenu -+attr textAppearanceListItem -+attr textAppearanceListItemSecondary -+attr textAppearanceListItemSmall -+attr textAppearancePopupMenuHeader -+attr textAppearanceSearchResultSubtitle -+attr textAppearanceSearchResultTitle -+attr textAppearanceSmallPopupMenu -+attr textColorAlertDialogListItem -+attr textColorSearchUrl -+attr textLocale -+attr theme -+attr thickness -+attr thumbTextPadding -+attr thumbTint -+attr thumbTintMode -+attr tickMark -+attr tickMarkTint -+attr tickMarkTintMode -+attr tint -+attr tintMode -+attr title -+attr titleMargin -+attr titleMarginBottom -+attr titleMarginEnd -+attr titleMarginStart -+attr titleMarginTop -+attr titleMargins -+attr titleTextAppearance -+attr titleTextColor -+attr titleTextStyle -+attr toolbarNavigationButtonStyle -+attr toolbarStyle -+attr tooltipForegroundColor -+attr tooltipFrameBackground -+attr tooltipText -+attr track -+attr trackTint -+attr trackTintMode -+attr ttcIndex -+attr viewAspectRatio -+attr viewInflaterClass -+attr voiceIcon -+attr windowActionBar -+attr windowActionBarOverlay -+attr windowActionModeOverlay -+attr windowFixedHeightMajor -+attr windowFixedHeightMinor -+attr windowFixedWidthMajor -+attr windowFixedWidthMinor -+attr windowMinWidthMajor -+attr windowMinWidthMinor -+attr windowNoTitle -+bool abc_action_bar_embed_tabs -+bool abc_config_actionMenuItemAllCaps -+color abc_background_cache_hint_selector_material_dark -+color abc_background_cache_hint_selector_material_light -+color abc_btn_colored_borderless_text_material -+color abc_btn_colored_text_material -+color abc_color_highlight_material -+color abc_decor_view_status_guard -+color abc_decor_view_status_guard_light -+color abc_hint_foreground_material_dark -+color abc_hint_foreground_material_light -+color abc_primary_text_disable_only_material_dark -+color abc_primary_text_disable_only_material_light -+color abc_primary_text_material_dark -+color abc_primary_text_material_light -+color abc_search_url_text -+color abc_search_url_text_normal -+color abc_search_url_text_pressed -+color abc_search_url_text_selected -+color abc_secondary_text_material_dark -+color abc_secondary_text_material_light -+color abc_tint_btn_checkable -+color abc_tint_default -+color abc_tint_edittext -+color abc_tint_seek_thumb -+color abc_tint_spinner -+color abc_tint_switch_track -+color accent_material_dark -+color accent_material_light -+color androidx_core_ripple_material_light -+color androidx_core_secondary_text_default_material_light -+color background_floating_material_dark -+color background_floating_material_light -+color background_material_dark -+color background_material_light -+color bright_foreground_disabled_material_dark -+color bright_foreground_disabled_material_light -+color bright_foreground_inverse_material_dark -+color bright_foreground_inverse_material_light -+color bright_foreground_material_dark -+color bright_foreground_material_light -+color button_material_dark -+color button_material_light -+color catalyst_logbox_background -+color catalyst_redbox_background -+color dim_foreground_disabled_material_dark -+color dim_foreground_disabled_material_light -+color dim_foreground_material_dark -+color dim_foreground_material_light -+color error_color_material_dark -+color error_color_material_light -+color foreground_material_dark -+color foreground_material_light -+color highlighted_text_material_dark -+color highlighted_text_material_light -+color material_blue_grey_800 -+color material_blue_grey_900 -+color material_blue_grey_950 -+color material_deep_teal_200 -+color material_deep_teal_500 -+color material_grey_100 -+color material_grey_300 -+color material_grey_50 -+color material_grey_600 -+color material_grey_800 -+color material_grey_850 -+color material_grey_900 -+color notification_action_color_filter -+color notification_icon_bg_color -+color primary_dark_material_dark -+color primary_dark_material_light -+color primary_material_dark -+color primary_material_light -+color primary_text_default_material_dark -+color primary_text_default_material_light -+color primary_text_disabled_material_dark -+color primary_text_disabled_material_light -+color ripple_material_dark -+color ripple_material_light -+color secondary_text_default_material_dark -+color secondary_text_default_material_light -+color secondary_text_disabled_material_dark -+color secondary_text_disabled_material_light -+color switch_thumb_disabled_material_dark -+color switch_thumb_disabled_material_light -+color switch_thumb_material_dark -+color switch_thumb_material_light -+color switch_thumb_normal_material_dark -+color switch_thumb_normal_material_light -+color tooltip_background_dark -+color tooltip_background_light -+dimen abc_action_bar_content_inset_material -+dimen abc_action_bar_content_inset_with_nav -+dimen abc_action_bar_default_height_material -+dimen abc_action_bar_default_padding_end_material -+dimen abc_action_bar_default_padding_start_material -+dimen abc_action_bar_elevation_material -+dimen abc_action_bar_icon_vertical_padding_material -+dimen abc_action_bar_overflow_padding_end_material -+dimen abc_action_bar_overflow_padding_start_material -+dimen abc_action_bar_stacked_max_height -+dimen abc_action_bar_stacked_tab_max_width -+dimen abc_action_bar_subtitle_bottom_margin_material -+dimen abc_action_bar_subtitle_top_margin_material -+dimen abc_action_button_min_height_material -+dimen abc_action_button_min_width_material -+dimen abc_action_button_min_width_overflow_material -+dimen abc_alert_dialog_button_bar_height -+dimen abc_alert_dialog_button_dimen -+dimen abc_button_inset_horizontal_material -+dimen abc_button_inset_vertical_material -+dimen abc_button_padding_horizontal_material -+dimen abc_button_padding_vertical_material -+dimen abc_cascading_menus_min_smallest_width -+dimen abc_config_prefDialogWidth -+dimen abc_control_corner_material -+dimen abc_control_inset_material -+dimen abc_control_padding_material -+dimen abc_dialog_corner_radius_material -+dimen abc_dialog_fixed_height_major -+dimen abc_dialog_fixed_height_minor -+dimen abc_dialog_fixed_width_major -+dimen abc_dialog_fixed_width_minor -+dimen abc_dialog_list_padding_bottom_no_buttons -+dimen abc_dialog_list_padding_top_no_title -+dimen abc_dialog_min_width_major -+dimen abc_dialog_min_width_minor -+dimen abc_dialog_padding_material -+dimen abc_dialog_padding_top_material -+dimen abc_dialog_title_divider_material -+dimen abc_disabled_alpha_material_dark -+dimen abc_disabled_alpha_material_light -+dimen abc_dropdownitem_icon_width -+dimen abc_dropdownitem_text_padding_left -+dimen abc_dropdownitem_text_padding_right -+dimen abc_edit_text_inset_bottom_material -+dimen abc_edit_text_inset_horizontal_material -+dimen abc_edit_text_inset_top_material -+dimen abc_floating_window_z -+dimen abc_list_item_height_large_material -+dimen abc_list_item_height_material -+dimen abc_list_item_height_small_material -+dimen abc_list_item_padding_horizontal_material -+dimen abc_panel_menu_list_width -+dimen abc_progress_bar_height_material -+dimen abc_search_view_preferred_height -+dimen abc_search_view_preferred_width -+dimen abc_seekbar_track_background_height_material -+dimen abc_seekbar_track_progress_height_material -+dimen abc_select_dialog_padding_start_material -+dimen abc_star_big -+dimen abc_star_medium -+dimen abc_star_small -+dimen abc_switch_padding -+dimen abc_text_size_body_1_material -+dimen abc_text_size_body_2_material -+dimen abc_text_size_button_material -+dimen abc_text_size_caption_material -+dimen abc_text_size_display_1_material -+dimen abc_text_size_display_2_material -+dimen abc_text_size_display_3_material -+dimen abc_text_size_display_4_material -+dimen abc_text_size_headline_material -+dimen abc_text_size_large_material -+dimen abc_text_size_medium_material -+dimen abc_text_size_menu_header_material -+dimen abc_text_size_menu_material -+dimen abc_text_size_small_material -+dimen abc_text_size_subhead_material -+dimen abc_text_size_subtitle_material_toolbar -+dimen abc_text_size_title_material -+dimen abc_text_size_title_material_toolbar -+dimen autofill_inline_suggestion_icon_size -+dimen compat_button_inset_horizontal_material -+dimen compat_button_inset_vertical_material -+dimen compat_button_padding_horizontal_material -+dimen compat_button_padding_vertical_material -+dimen compat_control_corner_material -+dimen compat_notification_large_icon_max_height -+dimen compat_notification_large_icon_max_width -+dimen disabled_alpha_material_dark -+dimen disabled_alpha_material_light -+dimen highlight_alpha_material_colored -+dimen highlight_alpha_material_dark -+dimen highlight_alpha_material_light -+dimen hint_alpha_material_dark -+dimen hint_alpha_material_light -+dimen hint_pressed_alpha_material_dark -+dimen hint_pressed_alpha_material_light -+dimen notification_action_icon_size -+dimen notification_action_text_size -+dimen notification_big_circle_margin -+dimen notification_content_margin_start -+dimen notification_large_icon_height -+dimen notification_large_icon_width -+dimen notification_main_column_padding_top -+dimen notification_media_narrow_margin -+dimen notification_right_icon_size -+dimen notification_right_side_padding_top -+dimen notification_small_icon_background_padding -+dimen notification_small_icon_size_as_large -+dimen notification_subtext_size -+dimen notification_top_pad -+dimen notification_top_pad_large_text -+dimen tooltip_corner_radius -+dimen tooltip_horizontal_padding -+dimen tooltip_margin -+dimen tooltip_precise_anchor_extra_offset -+dimen tooltip_precise_anchor_threshold -+dimen tooltip_vertical_padding -+dimen tooltip_y_offset_non_touch -+dimen tooltip_y_offset_touch -+drawable abc_ab_share_pack_mtrl_alpha -+drawable abc_action_bar_item_background_material -+drawable abc_btn_borderless_material -+drawable abc_btn_check_material -+drawable abc_btn_check_material_anim -+drawable abc_btn_check_to_on_mtrl_000 -+drawable abc_btn_check_to_on_mtrl_015 -+drawable abc_btn_colored_material -+drawable abc_btn_default_mtrl_shape -+drawable abc_btn_radio_material -+drawable abc_btn_radio_material_anim -+drawable abc_btn_radio_to_on_mtrl_000 -+drawable abc_btn_radio_to_on_mtrl_015 -+drawable abc_btn_switch_to_on_mtrl_00001 -+drawable abc_btn_switch_to_on_mtrl_00012 -+drawable abc_cab_background_internal_bg -+drawable abc_cab_background_top_material -+drawable abc_cab_background_top_mtrl_alpha -+drawable abc_control_background_material -+drawable abc_dialog_material_background -+drawable abc_edit_text_material -+drawable abc_ic_ab_back_material -+drawable abc_ic_arrow_drop_right_black_24dp -+drawable abc_ic_clear_material -+drawable abc_ic_commit_search_api_mtrl_alpha -+drawable abc_ic_go_search_api_material -+drawable abc_ic_menu_copy_mtrl_am_alpha -+drawable abc_ic_menu_cut_mtrl_alpha -+drawable abc_ic_menu_overflow_material -+drawable abc_ic_menu_paste_mtrl_am_alpha -+drawable abc_ic_menu_selectall_mtrl_alpha -+drawable abc_ic_menu_share_mtrl_alpha -+drawable abc_ic_search_api_material -+drawable abc_ic_voice_search_api_material -+drawable abc_item_background_holo_dark -+drawable abc_item_background_holo_light -+drawable abc_list_divider_material -+drawable abc_list_divider_mtrl_alpha -+drawable abc_list_focused_holo -+drawable abc_list_longpressed_holo -+drawable abc_list_pressed_holo_dark -+drawable abc_list_pressed_holo_light -+drawable abc_list_selector_background_transition_holo_dark -+drawable abc_list_selector_background_transition_holo_light -+drawable abc_list_selector_disabled_holo_dark -+drawable abc_list_selector_disabled_holo_light -+drawable abc_list_selector_holo_dark -+drawable abc_list_selector_holo_light -+drawable abc_menu_hardkey_panel_mtrl_mult -+drawable abc_popup_background_mtrl_mult -+drawable abc_ratingbar_indicator_material -+drawable abc_ratingbar_material -+drawable abc_ratingbar_small_material -+drawable abc_scrubber_control_off_mtrl_alpha -+drawable abc_scrubber_control_to_pressed_mtrl_000 -+drawable abc_scrubber_control_to_pressed_mtrl_005 -+drawable abc_scrubber_primary_mtrl_alpha -+drawable abc_scrubber_track_mtrl_alpha -+drawable abc_seekbar_thumb_material -+drawable abc_seekbar_tick_mark_material -+drawable abc_seekbar_track_material -+drawable abc_spinner_mtrl_am_alpha -+drawable abc_spinner_textfield_background_material -+drawable abc_star_black_48dp -+drawable abc_star_half_black_48dp -+drawable abc_switch_thumb_material -+drawable abc_switch_track_mtrl_alpha -+drawable abc_tab_indicator_material -+drawable abc_tab_indicator_mtrl_alpha -+drawable abc_text_cursor_material -+drawable abc_text_select_handle_left_mtrl -+drawable abc_text_select_handle_middle_mtrl -+drawable abc_text_select_handle_right_mtrl -+drawable abc_textfield_activated_mtrl_alpha -+drawable abc_textfield_default_mtrl_alpha -+drawable abc_textfield_search_activated_mtrl_alpha -+drawable abc_textfield_search_default_mtrl_alpha -+drawable abc_textfield_search_material -+drawable abc_vector_test -+drawable autofill_inline_suggestion_chip_background -+drawable btn_checkbox_checked_mtrl -+drawable btn_checkbox_checked_to_unchecked_mtrl_animation -+drawable btn_checkbox_unchecked_mtrl -+drawable btn_checkbox_unchecked_to_checked_mtrl_animation -+drawable btn_radio_off_mtrl -+drawable btn_radio_off_to_on_mtrl_animation -+drawable btn_radio_on_mtrl -+drawable btn_radio_on_to_off_mtrl_animation -+drawable notification_action_background -+drawable notification_bg -+drawable notification_bg_low -+drawable notification_bg_low_normal -+drawable notification_bg_low_pressed -+drawable notification_bg_normal -+drawable notification_bg_normal_pressed -+drawable notification_icon_background -+drawable notification_template_icon_bg -+drawable notification_template_icon_low_bg -+drawable notification_tile_bg -+drawable notify_panel_notification_icon_bg -+drawable redbox_top_border_background -+drawable test_level_drawable -+drawable tooltip_frame_dark -+drawable tooltip_frame_light -+id accessibility_action_clickable_span -+id accessibility_actions -+id accessibility_collection -+id accessibility_collection_item -+id accessibility_custom_action_0 -+id accessibility_custom_action_1 -+id accessibility_custom_action_10 -+id accessibility_custom_action_11 -+id accessibility_custom_action_12 -+id accessibility_custom_action_13 -+id accessibility_custom_action_14 -+id accessibility_custom_action_15 -+id accessibility_custom_action_16 -+id accessibility_custom_action_17 -+id accessibility_custom_action_18 -+id accessibility_custom_action_19 -+id accessibility_custom_action_2 -+id accessibility_custom_action_20 -+id accessibility_custom_action_21 -+id accessibility_custom_action_22 -+id accessibility_custom_action_23 -+id accessibility_custom_action_24 -+id accessibility_custom_action_25 -+id accessibility_custom_action_26 -+id accessibility_custom_action_27 -+id accessibility_custom_action_28 -+id accessibility_custom_action_29 -+id accessibility_custom_action_3 -+id accessibility_custom_action_30 -+id accessibility_custom_action_31 -+id accessibility_custom_action_4 -+id accessibility_custom_action_5 -+id accessibility_custom_action_6 -+id accessibility_custom_action_7 -+id accessibility_custom_action_8 -+id accessibility_custom_action_9 -+id accessibility_hint -+id accessibility_label -+id accessibility_links -+id accessibility_role -+id accessibility_state -+id accessibility_value -+id action_bar -+id action_bar_activity_content -+id action_bar_container -+id action_bar_root -+id action_bar_spinner -+id action_bar_subtitle -+id action_bar_title -+id action_container -+id action_context_bar -+id action_divider -+id action_image -+id action_menu_divider -+id action_menu_presenter -+id action_mode_bar -+id action_mode_bar_stub -+id action_mode_close_button -+id action_text -+id actions -+id activity_chooser_view_content -+id add -+id alertTitle -+id async -+id autofill_inline_suggestion_end_icon -+id autofill_inline_suggestion_start_icon -+id autofill_inline_suggestion_subtitle -+id autofill_inline_suggestion_title -+id blocking -+id buttonPanel -+id catalyst_redbox_title -+id center -+id centerCrop -+id centerInside -+id checkbox -+id checked -+id chronometer -+id content -+id contentPanel -+id custom -+id customPanel -+id decor_content_parent -+id default_activity_button -+id dialog_button -+id edit_query -+id expand_activities_button -+id expanded_menu -+id fitBottomStart -+id fitCenter -+id fitEnd -+id fitStart -+id fitXY -+id focusCrop -+id forever -+id fps_text -+id fragment_container_view_tag -+id group_divider -+id home -+id icon -+id icon_group -+id image -+id info -+id italic -+id item1 -+id item2 -+id item3 -+id item4 -+id labelled_by -+id line1 -+id line3 -+id listMode -+id list_item -+id message -+id multiply -+id none -+id normal -+id notification_background -+id notification_main_column -+id notification_main_column_container -+id off -+id on -+id parentPanel -+id pointer_events -+id progress_circular -+id progress_horizontal -+id radio -+id react_test_id -+id right_icon -+id right_side -+id rn_frame_file -+id rn_frame_method -+id rn_redbox_dismiss_button -+id rn_redbox_line_separator -+id rn_redbox_loading_indicator -+id rn_redbox_reload_button -+id rn_redbox_report_button -+id rn_redbox_report_label -+id rn_redbox_stack -+id screen -+id scrollIndicatorDown -+id scrollIndicatorUp -+id scrollView -+id search_badge -+id search_bar -+id search_button -+id search_close_btn -+id search_edit_frame -+id search_go_btn -+id search_mag_icon -+id search_plate -+id search_src_text -+id search_voice_btn -+id select_dialog_listview -+id shortcut -+id spacer -+id special_effects_controller_view_tag -+id split_action_bar -+id src_atop -+id src_in -+id src_over -+id submenuarrow -+id submit_area -+id tabMode -+id tag_accessibility_actions -+id tag_accessibility_clickable_spans -+id tag_accessibility_heading -+id tag_accessibility_pane_title -+id tag_on_apply_window_listener -+id tag_on_receive_content_listener -+id tag_on_receive_content_mime_types -+id tag_screen_reader_focusable -+id tag_state_description -+id tag_transition_group -+id tag_unhandled_key_event_manager -+id tag_unhandled_key_listeners -+id tag_window_insets_animation_callback -+id text -+id text2 -+id textSpacerNoButtons -+id textSpacerNoTitle -+id time -+id title -+id titleDividerNoCustom -+id title_template -+id topPanel -+id unchecked -+id uniform -+id up -+id view_tag_instance_handle -+id view_tag_native_id -+id view_tree_lifecycle_owner -+id view_tree_saved_state_registry_owner -+id view_tree_view_model_store_owner -+id visible_removing_fragment_view_tag -+id wrap_content -+integer abc_config_activityDefaultDur -+integer abc_config_activityShortDur -+integer cancel_button_image_alpha -+integer config_tooltipAnimTime -+integer react_native_dev_server_port -+integer react_native_inspector_proxy_port -+integer status_bar_notification_info_maxnum -+interpolator btn_checkbox_checked_mtrl_animation_interpolator_0 -+interpolator btn_checkbox_checked_mtrl_animation_interpolator_1 -+interpolator btn_checkbox_unchecked_mtrl_animation_interpolator_0 -+interpolator btn_checkbox_unchecked_mtrl_animation_interpolator_1 -+interpolator btn_radio_to_off_mtrl_animation_interpolator_0 -+interpolator btn_radio_to_on_mtrl_animation_interpolator_0 -+interpolator fast_out_slow_in -+layout abc_action_bar_title_item -+layout abc_action_bar_up_container -+layout abc_action_menu_item_layout -+layout abc_action_menu_layout -+layout abc_action_mode_bar -+layout abc_action_mode_close_item_material -+layout abc_activity_chooser_view -+layout abc_activity_chooser_view_list_item -+layout abc_alert_dialog_button_bar_material -+layout abc_alert_dialog_material -+layout abc_alert_dialog_title_material -+layout abc_cascading_menu_item_layout -+layout abc_dialog_title_material -+layout abc_expanded_menu_layout -+layout abc_list_menu_item_checkbox -+layout abc_list_menu_item_icon -+layout abc_list_menu_item_layout -+layout abc_list_menu_item_radio -+layout abc_popup_menu_header_item_layout -+layout abc_popup_menu_item_layout -+layout abc_screen_content_include -+layout abc_screen_simple -+layout abc_screen_simple_overlay_action_mode -+layout abc_screen_toolbar -+layout abc_search_dropdown_item_icons_2line -+layout abc_search_view -+layout abc_select_dialog_material -+layout abc_tooltip -+layout autofill_inline_suggestion -+layout custom_dialog -+layout dev_loading_view -+layout fps_view -+layout notification_action -+layout notification_action_tombstone -+layout notification_template_custom_big -+layout notification_template_icon_group -+layout notification_template_part_chronometer -+layout notification_template_part_time -+layout redbox_item_frame -+layout redbox_item_title -+layout redbox_view -+layout select_dialog_item_material -+layout select_dialog_multichoice_material -+layout select_dialog_singlechoice_material -+layout support_simple_spinner_dropdown_item -+menu example_menu -+menu example_menu2 -+string abc_action_bar_home_description -+string abc_action_bar_up_description -+string abc_action_menu_overflow_description -+string abc_action_mode_done -+string abc_activity_chooser_view_see_all -+string abc_activitychooserview_choose_application -+string abc_capital_off -+string abc_capital_on -+string abc_menu_alt_shortcut_label -+string abc_menu_ctrl_shortcut_label -+string abc_menu_delete_shortcut_label -+string abc_menu_enter_shortcut_label -+string abc_menu_function_shortcut_label -+string abc_menu_meta_shortcut_label -+string abc_menu_shift_shortcut_label -+string abc_menu_space_shortcut_label -+string abc_menu_sym_shortcut_label -+string abc_prepend_shortcut_label -+string abc_search_hint -+string abc_searchview_description_clear -+string abc_searchview_description_query -+string abc_searchview_description_search -+string abc_searchview_description_submit -+string abc_searchview_description_voice -+string abc_shareactionprovider_share_with -+string abc_shareactionprovider_share_with_application -+string abc_toolbar_collapse_description -+string alert_description -+string catalyst_change_bundle_location -+string catalyst_copy_button -+string catalyst_debug -+string catalyst_debug_chrome -+string catalyst_debug_chrome_stop -+string catalyst_debug_connecting -+string catalyst_debug_error -+string catalyst_debug_open -+string catalyst_debug_stop -+string catalyst_devtools_open -+string catalyst_dismiss_button -+string catalyst_heap_capture -+string catalyst_hot_reloading -+string catalyst_hot_reloading_auto_disable -+string catalyst_hot_reloading_auto_enable -+string catalyst_hot_reloading_stop -+string catalyst_inspector -+string catalyst_inspector_stop -+string catalyst_loading_from_url -+string catalyst_open_flipper_error -+string catalyst_perf_monitor -+string catalyst_perf_monitor_stop -+string catalyst_reload -+string catalyst_reload_button -+string catalyst_reload_error -+string catalyst_report_button -+string catalyst_sample_profiler_disable -+string catalyst_sample_profiler_enable -+string catalyst_settings -+string catalyst_settings_title -+string combobox_description -+string header_description -+string image_description -+string imagebutton_description -+string link_description -+string menu_description -+string menubar_description -+string menuitem_description -+string progressbar_description -+string radiogroup_description -+string rn_tab_description -+string scrollbar_description -+string search_menu_title -+string spinbutton_description -+string state_busy_description -+string state_collapsed_description -+string state_expanded_description -+string state_mixed_description -+string state_off_description -+string state_on_description -+string state_unselected_description -+string status_bar_notification_info_overflow -+string summary_description -+string tablist_description -+string timer_description -+string toolbar_description -+style AlertDialog_AppCompat -+style AlertDialog_AppCompat_Light -+style Animation_AppCompat_Dialog -+style Animation_AppCompat_DropDownUp -+style Animation_AppCompat_Tooltip -+style Animation_Catalyst_LogBox -+style Animation_Catalyst_RedBox -+style Base_AlertDialog_AppCompat -+style Base_AlertDialog_AppCompat_Light -+style Base_Animation_AppCompat_Dialog -+style Base_Animation_AppCompat_DropDownUp -+style Base_Animation_AppCompat_Tooltip -+style Base_DialogWindowTitleBackground_AppCompat -+style Base_DialogWindowTitle_AppCompat -+style Base_TextAppearance_AppCompat -+style Base_TextAppearance_AppCompat_Body1 -+style Base_TextAppearance_AppCompat_Body2 -+style Base_TextAppearance_AppCompat_Button -+style Base_TextAppearance_AppCompat_Caption -+style Base_TextAppearance_AppCompat_Display1 -+style Base_TextAppearance_AppCompat_Display2 -+style Base_TextAppearance_AppCompat_Display3 -+style Base_TextAppearance_AppCompat_Display4 -+style Base_TextAppearance_AppCompat_Headline -+style Base_TextAppearance_AppCompat_Inverse -+style Base_TextAppearance_AppCompat_Large -+style Base_TextAppearance_AppCompat_Large_Inverse -+style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large -+style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small -+style Base_TextAppearance_AppCompat_Medium -+style Base_TextAppearance_AppCompat_Medium_Inverse -+style Base_TextAppearance_AppCompat_Menu -+style Base_TextAppearance_AppCompat_SearchResult -+style Base_TextAppearance_AppCompat_SearchResult_Subtitle -+style Base_TextAppearance_AppCompat_SearchResult_Title -+style Base_TextAppearance_AppCompat_Small -+style Base_TextAppearance_AppCompat_Small_Inverse -+style Base_TextAppearance_AppCompat_Subhead -+style Base_TextAppearance_AppCompat_Subhead_Inverse -+style Base_TextAppearance_AppCompat_Title -+style Base_TextAppearance_AppCompat_Title_Inverse -+style Base_TextAppearance_AppCompat_Tooltip -+style Base_TextAppearance_AppCompat_Widget_ActionBar_Menu -+style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle -+style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse -+style Base_TextAppearance_AppCompat_Widget_ActionBar_Title -+style Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse -+style Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle -+style Base_TextAppearance_AppCompat_Widget_ActionMode_Title -+style Base_TextAppearance_AppCompat_Widget_Button -+style Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored -+style Base_TextAppearance_AppCompat_Widget_Button_Colored -+style Base_TextAppearance_AppCompat_Widget_Button_Inverse -+style Base_TextAppearance_AppCompat_Widget_DropDownItem -+style Base_TextAppearance_AppCompat_Widget_PopupMenu_Header -+style Base_TextAppearance_AppCompat_Widget_PopupMenu_Large -+style Base_TextAppearance_AppCompat_Widget_PopupMenu_Small -+style Base_TextAppearance_AppCompat_Widget_Switch -+style Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem -+style Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item -+style Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle -+style Base_TextAppearance_Widget_AppCompat_Toolbar_Title -+style Base_ThemeOverlay_AppCompat -+style Base_ThemeOverlay_AppCompat_ActionBar -+style Base_ThemeOverlay_AppCompat_Dark -+style Base_ThemeOverlay_AppCompat_Dark_ActionBar -+style Base_ThemeOverlay_AppCompat_Dialog -+style Base_ThemeOverlay_AppCompat_Dialog_Alert -+style Base_ThemeOverlay_AppCompat_Light -+style Base_Theme_AppCompat -+style Base_Theme_AppCompat_CompactMenu -+style Base_Theme_AppCompat_Dialog -+style Base_Theme_AppCompat_DialogWhenLarge -+style Base_Theme_AppCompat_Dialog_Alert -+style Base_Theme_AppCompat_Dialog_FixedSize -+style Base_Theme_AppCompat_Dialog_MinWidth -+style Base_Theme_AppCompat_Light -+style Base_Theme_AppCompat_Light_DarkActionBar -+style Base_Theme_AppCompat_Light_Dialog -+style Base_Theme_AppCompat_Light_DialogWhenLarge -+style Base_Theme_AppCompat_Light_Dialog_Alert -+style Base_Theme_AppCompat_Light_Dialog_FixedSize -+style Base_Theme_AppCompat_Light_Dialog_MinWidth -+style Base_V21_ThemeOverlay_AppCompat_Dialog -+style Base_V21_Theme_AppCompat -+style Base_V21_Theme_AppCompat_Dialog -+style Base_V21_Theme_AppCompat_Light -+style Base_V21_Theme_AppCompat_Light_Dialog -+style Base_V22_Theme_AppCompat -+style Base_V22_Theme_AppCompat_Light -+style Base_V23_Theme_AppCompat -+style Base_V23_Theme_AppCompat_Light -+style Base_V26_Theme_AppCompat -+style Base_V26_Theme_AppCompat_Light -+style Base_V26_Widget_AppCompat_Toolbar -+style Base_V28_Theme_AppCompat -+style Base_V28_Theme_AppCompat_Light -+style Base_V7_ThemeOverlay_AppCompat_Dialog -+style Base_V7_Theme_AppCompat -+style Base_V7_Theme_AppCompat_Dialog -+style Base_V7_Theme_AppCompat_Light -+style Base_V7_Theme_AppCompat_Light_Dialog -+style Base_V7_Widget_AppCompat_AutoCompleteTextView -+style Base_V7_Widget_AppCompat_EditText -+style Base_V7_Widget_AppCompat_Toolbar -+style Base_Widget_AppCompat_ActionBar -+style Base_Widget_AppCompat_ActionBar_Solid -+style Base_Widget_AppCompat_ActionBar_TabBar -+style Base_Widget_AppCompat_ActionBar_TabText -+style Base_Widget_AppCompat_ActionBar_TabView -+style Base_Widget_AppCompat_ActionButton -+style Base_Widget_AppCompat_ActionButton_CloseMode -+style Base_Widget_AppCompat_ActionButton_Overflow -+style Base_Widget_AppCompat_ActionMode -+style Base_Widget_AppCompat_ActivityChooserView -+style Base_Widget_AppCompat_AutoCompleteTextView -+style Base_Widget_AppCompat_Button -+style Base_Widget_AppCompat_ButtonBar -+style Base_Widget_AppCompat_ButtonBar_AlertDialog -+style Base_Widget_AppCompat_Button_Borderless -+style Base_Widget_AppCompat_Button_Borderless_Colored -+style Base_Widget_AppCompat_Button_ButtonBar_AlertDialog -+style Base_Widget_AppCompat_Button_Colored -+style Base_Widget_AppCompat_Button_Small -+style Base_Widget_AppCompat_CompoundButton_CheckBox -+style Base_Widget_AppCompat_CompoundButton_RadioButton -+style Base_Widget_AppCompat_CompoundButton_Switch -+style Base_Widget_AppCompat_DrawerArrowToggle -+style Base_Widget_AppCompat_DrawerArrowToggle_Common -+style Base_Widget_AppCompat_DropDownItem_Spinner -+style Base_Widget_AppCompat_EditText -+style Base_Widget_AppCompat_ImageButton -+style Base_Widget_AppCompat_Light_ActionBar -+style Base_Widget_AppCompat_Light_ActionBar_Solid -+style Base_Widget_AppCompat_Light_ActionBar_TabBar -+style Base_Widget_AppCompat_Light_ActionBar_TabText -+style Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse -+style Base_Widget_AppCompat_Light_ActionBar_TabView -+style Base_Widget_AppCompat_Light_PopupMenu -+style Base_Widget_AppCompat_Light_PopupMenu_Overflow -+style Base_Widget_AppCompat_ListMenuView -+style Base_Widget_AppCompat_ListPopupWindow -+style Base_Widget_AppCompat_ListView -+style Base_Widget_AppCompat_ListView_DropDown -+style Base_Widget_AppCompat_ListView_Menu -+style Base_Widget_AppCompat_PopupMenu -+style Base_Widget_AppCompat_PopupMenu_Overflow -+style Base_Widget_AppCompat_PopupWindow -+style Base_Widget_AppCompat_ProgressBar -+style Base_Widget_AppCompat_ProgressBar_Horizontal -+style Base_Widget_AppCompat_RatingBar -+style Base_Widget_AppCompat_RatingBar_Indicator -+style Base_Widget_AppCompat_RatingBar_Small -+style Base_Widget_AppCompat_SearchView -+style Base_Widget_AppCompat_SearchView_ActionBar -+style Base_Widget_AppCompat_SeekBar -+style Base_Widget_AppCompat_SeekBar_Discrete -+style Base_Widget_AppCompat_Spinner -+style Base_Widget_AppCompat_Spinner_Underlined -+style Base_Widget_AppCompat_TextView -+style Base_Widget_AppCompat_TextView_SpinnerItem -+style Base_Widget_AppCompat_Toolbar -+style Base_Widget_AppCompat_Toolbar_Button_Navigation -+style CalendarDatePickerDialog -+style CalendarDatePickerStyle -+style DialogAnimationFade -+style DialogAnimationSlide -+style Platform_AppCompat -+style Platform_AppCompat_Light -+style Platform_ThemeOverlay_AppCompat -+style Platform_ThemeOverlay_AppCompat_Dark -+style Platform_ThemeOverlay_AppCompat_Light -+style Platform_V21_AppCompat -+style Platform_V21_AppCompat_Light -+style Platform_V25_AppCompat -+style Platform_V25_AppCompat_Light -+style Platform_Widget_AppCompat_Spinner -+style RtlOverlay_DialogWindowTitle_AppCompat -+style RtlOverlay_Widget_AppCompat_ActionBar_TitleItem -+style RtlOverlay_Widget_AppCompat_DialogTitle_Icon -+style RtlOverlay_Widget_AppCompat_PopupMenuItem -+style RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup -+style RtlOverlay_Widget_AppCompat_PopupMenuItem_Shortcut -+style RtlOverlay_Widget_AppCompat_PopupMenuItem_SubmenuArrow -+style RtlOverlay_Widget_AppCompat_PopupMenuItem_Text -+style RtlOverlay_Widget_AppCompat_PopupMenuItem_Title -+style RtlOverlay_Widget_AppCompat_SearchView_MagIcon -+style RtlOverlay_Widget_AppCompat_Search_DropDown -+style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 -+style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 -+style RtlOverlay_Widget_AppCompat_Search_DropDown_Query -+style RtlOverlay_Widget_AppCompat_Search_DropDown_Text -+style RtlUnderlay_Widget_AppCompat_ActionButton -+style RtlUnderlay_Widget_AppCompat_ActionButton_Overflow -+style SpinnerDatePickerDialog -+style SpinnerDatePickerStyle -+style TextAppearance_AppCompat -+style TextAppearance_AppCompat_Body1 -+style TextAppearance_AppCompat_Body2 -+style TextAppearance_AppCompat_Button -+style TextAppearance_AppCompat_Caption -+style TextAppearance_AppCompat_Display1 -+style TextAppearance_AppCompat_Display2 -+style TextAppearance_AppCompat_Display3 -+style TextAppearance_AppCompat_Display4 -+style TextAppearance_AppCompat_Headline -+style TextAppearance_AppCompat_Inverse -+style TextAppearance_AppCompat_Large -+style TextAppearance_AppCompat_Large_Inverse -+style TextAppearance_AppCompat_Light_SearchResult_Subtitle -+style TextAppearance_AppCompat_Light_SearchResult_Title -+style TextAppearance_AppCompat_Light_Widget_PopupMenu_Large -+style TextAppearance_AppCompat_Light_Widget_PopupMenu_Small -+style TextAppearance_AppCompat_Medium -+style TextAppearance_AppCompat_Medium_Inverse -+style TextAppearance_AppCompat_Menu -+style TextAppearance_AppCompat_SearchResult_Subtitle -+style TextAppearance_AppCompat_SearchResult_Title -+style TextAppearance_AppCompat_Small -+style TextAppearance_AppCompat_Small_Inverse -+style TextAppearance_AppCompat_Subhead -+style TextAppearance_AppCompat_Subhead_Inverse -+style TextAppearance_AppCompat_Title -+style TextAppearance_AppCompat_Title_Inverse -+style TextAppearance_AppCompat_Tooltip -+style TextAppearance_AppCompat_Widget_ActionBar_Menu -+style TextAppearance_AppCompat_Widget_ActionBar_Subtitle -+style TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse -+style TextAppearance_AppCompat_Widget_ActionBar_Title -+style TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse -+style TextAppearance_AppCompat_Widget_ActionMode_Subtitle -+style TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse -+style TextAppearance_AppCompat_Widget_ActionMode_Title -+style TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse -+style TextAppearance_AppCompat_Widget_Button -+style TextAppearance_AppCompat_Widget_Button_Borderless_Colored -+style TextAppearance_AppCompat_Widget_Button_Colored -+style TextAppearance_AppCompat_Widget_Button_Inverse -+style TextAppearance_AppCompat_Widget_DropDownItem -+style TextAppearance_AppCompat_Widget_PopupMenu_Header -+style TextAppearance_AppCompat_Widget_PopupMenu_Large -+style TextAppearance_AppCompat_Widget_PopupMenu_Small -+style TextAppearance_AppCompat_Widget_Switch -+style TextAppearance_AppCompat_Widget_TextView_SpinnerItem -+style TextAppearance_Compat_Notification -+style TextAppearance_Compat_Notification_Info -+style TextAppearance_Compat_Notification_Line2 -+style TextAppearance_Compat_Notification_Time -+style TextAppearance_Compat_Notification_Title -+style TextAppearance_Widget_AppCompat_ExpandedMenu_Item -+style TextAppearance_Widget_AppCompat_Toolbar_Subtitle -+style TextAppearance_Widget_AppCompat_Toolbar_Title -+style Theme -+style ThemeOverlay_AppCompat -+style ThemeOverlay_AppCompat_ActionBar -+style ThemeOverlay_AppCompat_Dark -+style ThemeOverlay_AppCompat_Dark_ActionBar -+style ThemeOverlay_AppCompat_DayNight -+style ThemeOverlay_AppCompat_DayNight_ActionBar -+style ThemeOverlay_AppCompat_Dialog -+style ThemeOverlay_AppCompat_Dialog_Alert -+style ThemeOverlay_AppCompat_Light -+style Theme_AppCompat -+style Theme_AppCompat_CompactMenu -+style Theme_AppCompat_DayNight -+style Theme_AppCompat_DayNight_DarkActionBar -+style Theme_AppCompat_DayNight_Dialog -+style Theme_AppCompat_DayNight_DialogWhenLarge -+style Theme_AppCompat_DayNight_Dialog_Alert -+style Theme_AppCompat_DayNight_Dialog_MinWidth -+style Theme_AppCompat_DayNight_NoActionBar -+style Theme_AppCompat_Dialog -+style Theme_AppCompat_DialogWhenLarge -+style Theme_AppCompat_Dialog_Alert -+style Theme_AppCompat_Dialog_MinWidth -+style Theme_AppCompat_Empty -+style Theme_AppCompat_Light -+style Theme_AppCompat_Light_DarkActionBar -+style Theme_AppCompat_Light_Dialog -+style Theme_AppCompat_Light_DialogWhenLarge -+style Theme_AppCompat_Light_Dialog_Alert -+style Theme_AppCompat_Light_Dialog_MinWidth -+style Theme_AppCompat_Light_NoActionBar -+style Theme_AppCompat_NoActionBar -+style Theme_AutofillInlineSuggestion -+style Theme_Catalyst -+style Theme_Catalyst_LogBox -+style Theme_Catalyst_RedBox -+style Theme_FullScreenDialog -+style Theme_FullScreenDialogAnimatedFade -+style Theme_FullScreenDialogAnimatedSlide -+style Theme_ReactNative_AppCompat_Light -+style Theme_ReactNative_AppCompat_Light_NoActionBar_FullScreen -+style Widget_AppCompat_ActionBar -+style Widget_AppCompat_ActionBar_Solid -+style Widget_AppCompat_ActionBar_TabBar -+style Widget_AppCompat_ActionBar_TabText -+style Widget_AppCompat_ActionBar_TabView -+style Widget_AppCompat_ActionButton -+style Widget_AppCompat_ActionButton_CloseMode -+style Widget_AppCompat_ActionButton_Overflow -+style Widget_AppCompat_ActionMode -+style Widget_AppCompat_ActivityChooserView -+style Widget_AppCompat_AutoCompleteTextView -+style Widget_AppCompat_Button -+style Widget_AppCompat_ButtonBar -+style Widget_AppCompat_ButtonBar_AlertDialog -+style Widget_AppCompat_Button_Borderless -+style Widget_AppCompat_Button_Borderless_Colored -+style Widget_AppCompat_Button_ButtonBar_AlertDialog -+style Widget_AppCompat_Button_Colored -+style Widget_AppCompat_Button_Small -+style Widget_AppCompat_CompoundButton_CheckBox -+style Widget_AppCompat_CompoundButton_RadioButton -+style Widget_AppCompat_CompoundButton_Switch -+style Widget_AppCompat_DrawerArrowToggle -+style Widget_AppCompat_DropDownItem_Spinner -+style Widget_AppCompat_EditText -+style Widget_AppCompat_ImageButton -+style Widget_AppCompat_Light_ActionBar -+style Widget_AppCompat_Light_ActionBar_Solid -+style Widget_AppCompat_Light_ActionBar_Solid_Inverse -+style Widget_AppCompat_Light_ActionBar_TabBar -+style Widget_AppCompat_Light_ActionBar_TabBar_Inverse -+style Widget_AppCompat_Light_ActionBar_TabText -+style Widget_AppCompat_Light_ActionBar_TabText_Inverse -+style Widget_AppCompat_Light_ActionBar_TabView -+style Widget_AppCompat_Light_ActionBar_TabView_Inverse -+style Widget_AppCompat_Light_ActionButton -+style Widget_AppCompat_Light_ActionButton_CloseMode -+style Widget_AppCompat_Light_ActionButton_Overflow -+style Widget_AppCompat_Light_ActionMode_Inverse -+style Widget_AppCompat_Light_ActivityChooserView -+style Widget_AppCompat_Light_AutoCompleteTextView -+style Widget_AppCompat_Light_DropDownItem_Spinner -+style Widget_AppCompat_Light_ListPopupWindow -+style Widget_AppCompat_Light_ListView_DropDown -+style Widget_AppCompat_Light_PopupMenu -+style Widget_AppCompat_Light_PopupMenu_Overflow -+style Widget_AppCompat_Light_SearchView -+style Widget_AppCompat_Light_Spinner_DropDown_ActionBar -+style Widget_AppCompat_ListMenuView -+style Widget_AppCompat_ListPopupWindow -+style Widget_AppCompat_ListView -+style Widget_AppCompat_ListView_DropDown -+style Widget_AppCompat_ListView_Menu -+style Widget_AppCompat_PopupMenu -+style Widget_AppCompat_PopupMenu_Overflow -+style Widget_AppCompat_PopupWindow -+style Widget_AppCompat_ProgressBar -+style Widget_AppCompat_ProgressBar_Horizontal -+style Widget_AppCompat_RatingBar -+style Widget_AppCompat_RatingBar_Indicator -+style Widget_AppCompat_RatingBar_Small -+style Widget_AppCompat_SearchView -+style Widget_AppCompat_SearchView_ActionBar -+style Widget_AppCompat_SeekBar -+style Widget_AppCompat_SeekBar_Discrete -+style Widget_AppCompat_Spinner -+style Widget_AppCompat_Spinner_DropDown -+style Widget_AppCompat_Spinner_DropDown_ActionBar -+style Widget_AppCompat_Spinner_Underlined -+style Widget_AppCompat_TextView -+style Widget_AppCompat_TextView_SpinnerItem -+style Widget_AppCompat_Toolbar -+style Widget_AppCompat_Toolbar_Button_Navigation -+style Widget_Autofill -+style Widget_Autofill_InlineSuggestionChip -+style Widget_Autofill_InlineSuggestionEndIconStyle -+style Widget_Autofill_InlineSuggestionStartIconStyle -+style Widget_Autofill_InlineSuggestionSubtitle -+style Widget_Autofill_InlineSuggestionTitle -+style Widget_Compat_NotificationActionContainer -+style Widget_Compat_NotificationActionText -+style redboxButton -+styleable ActionBar background backgroundSplit backgroundStacked contentInsetEnd contentInsetEndWithActions contentInsetLeft contentInsetRight contentInsetStart contentInsetStartWithNavigation customNavigationLayout displayOptions divider elevation height hideOnContentScroll homeAsUpIndicator homeLayout icon indeterminateProgressStyle itemPadding logo navigationMode popupTheme progressBarPadding progressBarStyle subtitle subtitleTextStyle title titleTextStyle -+styleable ActionBarLayout android_layout_gravity -+styleable ActionMenuItemView android_minWidth -+styleable ActionMenuView -+styleable ActionMode background backgroundSplit closeItemLayout height subtitleTextStyle titleTextStyle -+styleable ActivityChooserView expandActivityOverflowButtonDrawable initialActivityCount -+styleable AlertDialog android_layout buttonIconDimen buttonPanelSideLayout listItemLayout listLayout multiChoiceItemLayout showTitle singleChoiceItemLayout -+styleable AnimatedStateListDrawableCompat android_constantSize android_dither android_enterFadeDuration android_exitFadeDuration android_variablePadding android_visible -+styleable AnimatedStateListDrawableItem android_drawable android_id -+styleable AnimatedStateListDrawableTransition android_drawable android_fromId android_reversible android_toId -+styleable AppCompatEmojiHelper -+styleable AppCompatImageView android_src srcCompat tint tintMode -+styleable AppCompatSeekBar android_thumb tickMark tickMarkTint tickMarkTintMode -+styleable AppCompatTextHelper android_drawableBottom android_drawableEnd android_drawableLeft android_drawableRight android_drawableStart android_drawableTop android_textAppearance -+styleable AppCompatTextView android_textAppearance autoSizeMaxTextSize autoSizeMinTextSize autoSizePresetSizes autoSizeStepGranularity autoSizeTextType drawableBottomCompat drawableEndCompat drawableLeftCompat drawableRightCompat drawableStartCompat drawableTint drawableTintMode drawableTopCompat emojiCompatEnabled firstBaselineToTopHeight fontFamily fontVariationSettings lastBaselineToBottomHeight lineHeight textAllCaps textLocale -+styleable AppCompatTheme actionBarDivider actionBarItemBackground actionBarPopupTheme actionBarSize actionBarSplitStyle actionBarStyle actionBarTabBarStyle actionBarTabStyle actionBarTabTextStyle actionBarTheme actionBarWidgetTheme actionButtonStyle actionDropDownStyle actionMenuTextAppearance actionMenuTextColor actionModeBackground actionModeCloseButtonStyle actionModeCloseContentDescription actionModeCloseDrawable actionModeCopyDrawable actionModeCutDrawable actionModeFindDrawable actionModePasteDrawable actionModePopupWindowStyle actionModeSelectAllDrawable actionModeShareDrawable actionModeSplitBackground actionModeStyle actionModeTheme actionModeWebSearchDrawable actionOverflowButtonStyle actionOverflowMenuStyle activityChooserViewStyle alertDialogButtonGroupStyle alertDialogCenterButtons alertDialogStyle alertDialogTheme android_windowAnimationStyle android_windowIsFloating autoCompleteTextViewStyle borderlessButtonStyle buttonBarButtonStyle buttonBarNegativeButtonStyle buttonBarNeutralButtonStyle buttonBarPositiveButtonStyle buttonBarStyle buttonStyle buttonStyleSmall checkboxStyle checkedTextViewStyle colorAccent colorBackgroundFloating colorButtonNormal colorControlActivated colorControlHighlight colorControlNormal colorError colorPrimary colorPrimaryDark colorSwitchThumbNormal controlBackground dialogCornerRadius dialogPreferredPadding dialogTheme dividerHorizontal dividerVertical dropDownListViewStyle dropdownListPreferredItemHeight editTextBackground editTextColor editTextStyle homeAsUpIndicator imageButtonStyle listChoiceBackgroundIndicator listChoiceIndicatorMultipleAnimated listChoiceIndicatorSingleAnimated listDividerAlertDialog listMenuViewStyle listPopupWindowStyle listPreferredItemHeight listPreferredItemHeightLarge listPreferredItemHeightSmall listPreferredItemPaddingEnd listPreferredItemPaddingLeft listPreferredItemPaddingRight listPreferredItemPaddingStart panelBackground panelMenuListTheme panelMenuListWidth popupMenuStyle popupWindowStyle radioButtonStyle ratingBarStyle ratingBarStyleIndicator ratingBarStyleSmall searchViewStyle seekBarStyle selectableItemBackground selectableItemBackgroundBorderless spinnerDropDownItemStyle spinnerStyle switchStyle textAppearanceLargePopupMenu textAppearanceListItem textAppearanceListItemSecondary textAppearanceListItemSmall textAppearancePopupMenuHeader textAppearanceSearchResultSubtitle textAppearanceSearchResultTitle textAppearanceSmallPopupMenu textColorAlertDialogListItem textColorSearchUrl toolbarNavigationButtonStyle toolbarStyle tooltipForegroundColor tooltipFrameBackground viewInflaterClass windowActionBar windowActionBarOverlay windowActionModeOverlay windowFixedHeightMajor windowFixedHeightMinor windowFixedWidthMajor windowFixedWidthMinor windowMinWidthMajor windowMinWidthMinor windowNoTitle -+styleable Autofill_InlineSuggestion autofillInlineSuggestionChip autofillInlineSuggestionEndIconStyle autofillInlineSuggestionStartIconStyle autofillInlineSuggestionSubtitle autofillInlineSuggestionTitle isAutofillInlineSuggestionTheme -+styleable ButtonBarLayout allowStacking -+styleable Capability queryPatterns shortcutMatchRequired -+styleable CheckedTextView android_checkMark checkMarkCompat checkMarkTint checkMarkTintMode -+styleable ColorStateListItem alpha android_alpha android_color android_lStar lStar -+styleable CompoundButton android_button buttonCompat buttonTint buttonTintMode -+styleable DrawerArrowToggle arrowHeadLength arrowShaftLength barLength color drawableSize gapBetweenBars spinBars thickness -+styleable FontFamily fontProviderAuthority fontProviderCerts fontProviderFetchStrategy fontProviderFetchTimeout fontProviderPackage fontProviderQuery fontProviderSystemFontFamily -+styleable FontFamilyFont android_font android_fontStyle android_fontVariationSettings android_fontWeight android_ttcIndex font fontStyle fontVariationSettings fontWeight ttcIndex -+styleable Fragment android_id android_name android_tag -+styleable FragmentContainerView android_name android_tag -+styleable GenericDraweeHierarchy actualImageScaleType backgroundImage fadeDuration failureImage failureImageScaleType overlayImage placeholderImage placeholderImageScaleType pressedStateOverlayImage progressBarAutoRotateInterval progressBarImage progressBarImageScaleType retryImage retryImageScaleType roundAsCircle roundBottomEnd roundBottomLeft roundBottomRight roundBottomStart roundTopEnd roundTopLeft roundTopRight roundTopStart roundWithOverlayColor roundedCornerRadius roundingBorderColor roundingBorderPadding roundingBorderWidth viewAspectRatio -+styleable GradientColor android_centerColor android_centerX android_centerY android_endColor android_endX android_endY android_gradientRadius android_startColor android_startX android_startY android_tileMode android_type -+styleable GradientColorItem android_color android_offset -+styleable LinearLayoutCompat android_baselineAligned android_baselineAlignedChildIndex android_gravity android_orientation android_weightSum divider dividerPadding measureWithLargestChild showDividers -+styleable LinearLayoutCompat_Layout android_layout_gravity android_layout_height android_layout_weight android_layout_width -+styleable ListPopupWindow android_dropDownHorizontalOffset android_dropDownVerticalOffset -+styleable MenuGroup android_checkableBehavior android_enabled android_id android_menuCategory android_orderInCategory android_visible -+styleable MenuItem actionLayout actionProviderClass actionViewClass alphabeticModifiers android_alphabeticShortcut android_checkable android_checked android_enabled android_icon android_id android_menuCategory android_numericShortcut android_onClick android_orderInCategory android_title android_titleCondensed android_visible contentDescription iconTint iconTintMode numericModifiers showAsAction tooltipText -+styleable MenuView android_headerBackground android_horizontalDivider android_itemBackground android_itemIconDisabledAlpha android_itemTextAppearance android_verticalDivider android_windowAnimationStyle preserveIconSpacing subMenuArrow -+styleable PopupWindow android_popupAnimationStyle android_popupBackground overlapAnchor -+styleable PopupWindowBackgroundState state_above_anchor -+styleable RecycleListView paddingBottomNoButtons paddingTopNoTitle -+styleable SearchView android_focusable android_imeOptions android_inputType android_maxWidth closeIcon commitIcon defaultQueryHint goIcon iconifiedByDefault layout queryBackground queryHint searchHintIcon searchIcon submitBackground suggestionRowLayout voiceIcon -+styleable SimpleDraweeView actualImageResource actualImageScaleType actualImageUri backgroundImage fadeDuration failureImage failureImageScaleType overlayImage placeholderImage placeholderImageScaleType pressedStateOverlayImage progressBarAutoRotateInterval progressBarImage progressBarImageScaleType retryImage retryImageScaleType roundAsCircle roundBottomEnd roundBottomLeft roundBottomRight roundBottomStart roundTopEnd roundTopLeft roundTopRight roundTopStart roundWithOverlayColor roundedCornerRadius roundingBorderColor roundingBorderPadding roundingBorderWidth viewAspectRatio -+styleable Spinner android_dropDownWidth android_entries android_popupBackground android_prompt popupTheme -+styleable StateListDrawable android_constantSize android_dither android_enterFadeDuration android_exitFadeDuration android_variablePadding android_visible -+styleable StateListDrawableItem android_drawable -+styleable SwitchCompat android_textOff android_textOn android_thumb showText splitTrack switchMinWidth switchPadding switchTextAppearance thumbTextPadding thumbTint thumbTintMode track trackTint trackTintMode -+styleable TextAppearance android_fontFamily android_shadowColor android_shadowDx android_shadowDy android_shadowRadius android_textColor android_textColorHint android_textColorLink android_textFontWeight android_textSize android_textStyle android_typeface fontFamily fontVariationSettings textAllCaps textLocale -+styleable Toolbar android_gravity android_minHeight buttonGravity collapseContentDescription collapseIcon contentInsetEnd contentInsetEndWithActions contentInsetLeft contentInsetRight contentInsetStart contentInsetStartWithNavigation logo logoDescription maxButtonHeight menu navigationContentDescription navigationIcon popupTheme subtitle subtitleTextAppearance subtitleTextColor title titleMargin titleMarginBottom titleMarginEnd titleMarginStart titleMarginTop titleMargins titleTextAppearance titleTextColor -+styleable View android_focusable android_theme paddingEnd paddingStart theme -+styleable ViewBackgroundHelper android_background backgroundTint backgroundTintMode -+styleable ViewStubCompat android_id android_inflatedId android_layout -+xml rn_dev_preferences -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/outputs/logs/manifest-merger-debug-report.txt b/node_modules/@mattermost/react-native-paste-input/android/build/outputs/logs/manifest-merger-debug-report.txt -new file mode 100644 -index 0000000..f153aa0 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/outputs/logs/manifest-merger-debug-report.txt -@@ -0,0 +1,25 @@ -+-- Merging decision tree log --- -+manifest -+ADDED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml:1:1-4:12 -+INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml:1:1-4:12 -+INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml:1:1-4:12 -+ package -+ ADDED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml:2:11-46 -+ INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ xmlns:android -+ ADDED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml:1:11-69 -+uses-sdk -+INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml reason: use-sdk injection requested -+INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ android:targetSdkVersion -+ INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ ADDED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ android:minSdkVersion -+ INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ ADDED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -diff --git a/node_modules/@mattermost/react-native-paste-input/android/gradle.properties b/node_modules/@mattermost/react-native-paste-input/android/gradle.properties -index 19b61ff..04a9951 100644 ---- a/node_modules/@mattermost/react-native-paste-input/android/gradle.properties -+++ b/node_modules/@mattermost/react-native-paste-input/android/gradle.properties -@@ -1,4 +1,4 @@ --PasteInput_kotlinVersion=1.3.50 -+PasteInput_kotlinVersion=1.5.20 - PasteInput_compileSdkVersion=30 - PasteInput_buildToolsVersion=30.0.2 - PasteInput_targetSdkVersion=30 -diff --git a/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m b/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m -index e916023..0564d97 100644 ---- a/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m -+++ b/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m -@@ -22,6 +22,11 @@ - (instancetype)initWithBridge:(RCTBridge *)bridge - _backedTextInputView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - _backedTextInputView.textInputDelegate = self; - -+ // Disable inline predictions to prevent jank in the composer -+ if (@available(iOS 17.0, *)) { -+ _backedTextInputView.inlinePredictionType = UITextInlinePredictionTypeNo; -+ } -+ - [self addSubview:_backedTextInputView]; - } - diff --git a/patches/@mattermost+react-native-paste-input+0.7.1.patch b/patches/@mattermost+react-native-paste-input+0.7.1.patch new file mode 100644 index 0000000000..dbf55b0959 --- /dev/null +++ b/patches/@mattermost+react-native-paste-input+0.7.1.patch @@ -0,0 +1,16 @@ +diff --git a/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m b/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m +index e916023..0564d97 100644 +--- a/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m ++++ b/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m +@@ -22,6 +22,11 @@ - (instancetype)initWithBridge:(RCTBridge *)bridge + _backedTextInputView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + _backedTextInputView.textInputDelegate = self; + ++ // Disable inline predictions to prevent jank in the composer ++ if (@available(iOS 17.0, *)) { ++ _backedTextInputView.inlinePredictionType = UITextInlinePredictionTypeNo; ++ } ++ + [self addSubview:_backedTextInputView]; + } + diff --git a/patches/@react-navigation+native+6.1.7.patch b/patches/@react-navigation+native+6.1.7.patch deleted file mode 100644 index b604e2c1aa..0000000000 --- a/patches/@react-navigation+native+6.1.7.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff --git a/node_modules/@react-navigation/native/lib/commonjs/useLinking.js b/node_modules/@react-navigation/native/lib/commonjs/useLinking.js -index ef4f368..2b0da35 100644 ---- a/node_modules/@react-navigation/native/lib/commonjs/useLinking.js -+++ b/node_modules/@react-navigation/native/lib/commonjs/useLinking.js -@@ -273,8 +273,12 @@ function useLinking(ref, _ref) { - }); - const currentIndex = history.index; - try { -- if (nextIndex !== -1 && nextIndex < currentIndex) { -- // An existing entry for this path exists and it's less than current index, go back to that -+ if ( -+ nextIndex !== -1 && -+ nextIndex < currentIndex && -+ // We should only go back if the entry exists and it's less than current index -+ history.get(nextIndex - currentIndex) -+ ) { // An existing entry for this path exists and it's less than current index, go back to that - await history.go(nextIndex - currentIndex); - } else { - // We couldn't find an existing entry to go back to, so we'll go back by the delta -diff --git a/node_modules/@react-navigation/native/lib/module/useLinking.js b/node_modules/@react-navigation/native/lib/module/useLinking.js -index 62a3b43..11a5a28 100644 ---- a/node_modules/@react-navigation/native/lib/module/useLinking.js -+++ b/node_modules/@react-navigation/native/lib/module/useLinking.js -@@ -264,8 +264,12 @@ export default function useLinking(ref, _ref) { - }); - const currentIndex = history.index; - try { -- if (nextIndex !== -1 && nextIndex < currentIndex) { -- // An existing entry for this path exists and it's less than current index, go back to that -+ if ( -+ nextIndex !== -1 && -+ nextIndex < currentIndex && -+ // We should only go back if the entry exists and it's less than current index -+ history.get(nextIndex - currentIndex) -+ ) { // An existing entry for this path exists and it's less than current index, go back to that - await history.go(nextIndex - currentIndex); - } else { - // We couldn't find an existing entry to go back to, so we'll go back by the delta -diff --git a/node_modules/@react-navigation/native/src/useLinking.tsx b/node_modules/@react-navigation/native/src/useLinking.tsx -index 3db40b7..9ba4ecd 100644 ---- a/node_modules/@react-navigation/native/src/useLinking.tsx -+++ b/node_modules/@react-navigation/native/src/useLinking.tsx -@@ -381,7 +381,12 @@ export default function useLinking( - const currentIndex = history.index; - - try { -- if (nextIndex !== -1 && nextIndex < currentIndex) { -+ if ( -+ nextIndex !== -1 && -+ nextIndex < currentIndex && -+ // We should only go back if the entry exists and it's less than current index -+ history.get(nextIndex - currentIndex) -+ ) { - // An existing entry for this path exists and it's less than current index, go back to that - await history.go(nextIndex - currentIndex); - } else { diff --git a/patches/@react-navigation+native+6.1.7.patch.md b/patches/@react-navigation+native+6.1.7.patch.md deleted file mode 100644 index 60b0d4e140..0000000000 --- a/patches/@react-navigation+native+6.1.7.patch.md +++ /dev/null @@ -1,5 +0,0 @@ -# React Navigation history bug patch - -This patches react-navigation to fix the issues in https://github.com/bluesky-social/social-app/issues/710. - -This is based on the PR found at https://github.com/react-navigation/react-navigation/pull/11833 diff --git a/patches/expo-haptics+12.8.1.patch b/patches/expo-haptics+13.0.1.patch similarity index 96% rename from patches/expo-haptics+12.8.1.patch rename to patches/expo-haptics+13.0.1.patch index a95b56f3be..9c7b9a6663 100644 --- a/patches/expo-haptics+12.8.1.patch +++ b/patches/expo-haptics+13.0.1.patch @@ -1,9 +1,9 @@ diff --git a/node_modules/expo-haptics/android/src/main/java/expo/modules/haptics/HapticsModule.kt b/node_modules/expo-haptics/android/src/main/java/expo/modules/haptics/HapticsModule.kt -index 26c52af..b949a4c 100644 +index 1520465..6ea988a 100644 --- a/node_modules/expo-haptics/android/src/main/java/expo/modules/haptics/HapticsModule.kt +++ b/node_modules/expo-haptics/android/src/main/java/expo/modules/haptics/HapticsModule.kt @@ -42,7 +42,7 @@ class HapticsModule : Module() { - + private fun vibrate(type: HapticsVibrationType) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - vibrator.vibrate(VibrationEffect.createWaveform(type.timings, type.amplitudes, -1)) diff --git a/patches/expo-image-picker+14.7.1.patch b/patches/expo-image-picker+14.7.1.patch deleted file mode 100644 index 046eb4f4f3..0000000000 --- a/patches/expo-image-picker+14.7.1.patch +++ /dev/null @@ -1,112 +0,0 @@ -diff --git a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/ImagePickerModule.kt b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/ImagePickerModule.kt -index 3f50f8c..ee47fa1 100644 ---- a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/ImagePickerModule.kt -+++ b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/ImagePickerModule.kt -@@ -33,7 +33,9 @@ import kotlin.coroutines.resumeWithException - // TODO(@bbarthec): rename to ExpoImagePicker - private const val moduleName = "ExponentImagePicker" - -+ - class ImagePickerModule : Module() { -+ private var isPickerOpen = false - - override fun definition() = ModuleDefinition { - Name(moduleName) -@@ -129,6 +131,11 @@ class ImagePickerModule : Module() { - options: ImagePickerOptions - ): Any { - return try { -+ if(isPickerOpen) { -+ return ImagePickerResponse(canceled = true) -+ } -+ -+ isPickerOpen = true - var result = launchPicker(pickerLauncher) - if ( - !options.allowsMultipleSelection && -@@ -143,6 +150,8 @@ class ImagePickerModule : Module() { - mediaHandler.readExtras(result.data, options) - } catch (cause: OperationCanceledException) { - return ImagePickerResponse(canceled = true) -+ } finally { -+ isPickerOpen = false - } - } - -diff --git a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt -index ff15c91..9763012 100644 ---- a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt -+++ b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt -@@ -5,12 +5,7 @@ import android.content.ContentResolver - import android.content.Context - import android.content.Intent - import android.net.Uri --import androidx.activity.result.PickVisualMediaRequest --import androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia --import androidx.activity.result.contract.ActivityResultContracts.PickMultipleVisualMedia - import expo.modules.imagepicker.ImagePickerOptions --import expo.modules.imagepicker.MediaTypes --import expo.modules.imagepicker.UNLIMITED_SELECTION - import expo.modules.imagepicker.getAllDataUris - import expo.modules.imagepicker.toMediaType - import expo.modules.kotlin.activityresult.AppContextActivityResultContract -@@ -26,51 +21,26 @@ import java.io.Serializable - * @see [androidx.activity.result.contract.ActivityResultContracts.GetMultipleContents] - */ - internal class ImageLibraryContract( -- private val appContextProvider: AppContextProvider -+ private val appContextProvider: AppContextProvider, - ) : AppContextActivityResultContract { - private val contentResolver: ContentResolver - get() = appContextProvider.appContext.reactContext?.contentResolver - ?: throw Exceptions.ReactContextLost() - - override fun createIntent(context: Context, input: ImageLibraryContractOptions): Intent { -- val request = PickVisualMediaRequest.Builder() -- .setMediaType( -- when (input.options.mediaTypes) { -- MediaTypes.VIDEOS -> { -- PickVisualMedia.VideoOnly -- } -- -- MediaTypes.IMAGES -> { -- PickVisualMedia.ImageOnly -- } -- -- else -> { -- PickVisualMedia.ImageAndVideo -- } -- } -- ) -- .build() -+ val intent = Intent(Intent.ACTION_GET_CONTENT) -+ .addCategory(Intent.CATEGORY_OPENABLE) -+ .setType("image/*") - - if (input.options.allowsMultipleSelection) { -- val selectionLimit = input.options.selectionLimit -- -- if (selectionLimit == 1) { -- // If multiple selection is allowed but the limit is 1, we should ignore -- // the multiple selection flag and just treat it as a single selection. -- return PickVisualMedia().createIntent(context, request) -+ if(input.options.selectionLimit == 1) { -+ return intent - } - -- if (selectionLimit > 1) { -- return PickMultipleVisualMedia(selectionLimit).createIntent(context, request) -- } -- -- // If the selection limit is 0, it is the same as unlimited selection. -- if (selectionLimit == UNLIMITED_SELECTION) { -- return PickMultipleVisualMedia().createIntent(context, request) -- } -+ intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true) - } - -- return PickVisualMedia().createIntent(context, request) -+ return intent - } - - override fun parseResult(input: ImageLibraryContractOptions, resultCode: Int, intent: Intent?) = diff --git a/patches/expo-image-picker+14.7.1.patch.md b/patches/expo-image-picker+14.7.1.patch.md deleted file mode 100644 index 47c0daed5d..0000000000 --- a/patches/expo-image-picker+14.7.1.patch.md +++ /dev/null @@ -1,3 +0,0 @@ -added by https://github.com/bluesky-social/social-app/pull/2384#pullrequestreview-1800985521 - -hackfixes the image picker on android so that the user can select from their typical image sources \ No newline at end of file diff --git a/patches/expo-modules-core+1.12.11.md b/patches/expo-modules-core+1.12.11.md new file mode 100644 index 0000000000..a690c8609b --- /dev/null +++ b/patches/expo-modules-core+1.12.11.md @@ -0,0 +1,5 @@ +## expo-modules-core Patch + +This patch fixes crashes seen in some Android clients when using intents to open the app. See https://github.com/expo/expo/pull/29513. + +Do not remove this patch until that PR lands in Expo and is released. diff --git a/patches/expo-modules-core+1.12.11.patch b/patches/expo-modules-core+1.12.11.patch new file mode 100644 index 0000000000..a4ee027c81 --- /dev/null +++ b/patches/expo-modules-core+1.12.11.patch @@ -0,0 +1,26 @@ +diff --git a/node_modules/expo-modules-core/android/src/main/java/expo/modules/adapters/react/NativeModulesProxy.java b/node_modules/expo-modules-core/android/src/main/java/expo/modules/adapters/react/NativeModulesProxy.java +index bb74e80..0aa0202 100644 +--- a/node_modules/expo-modules-core/android/src/main/java/expo/modules/adapters/react/NativeModulesProxy.java ++++ b/node_modules/expo-modules-core/android/src/main/java/expo/modules/adapters/react/NativeModulesProxy.java +@@ -90,8 +90,8 @@ public class NativeModulesProxy extends ReactContextBaseJavaModule { + mModuleRegistry.ensureIsInitialized(); + + KotlinInteropModuleRegistry kotlinModuleRegistry = getKotlinInteropModuleRegistry(); +- kotlinModuleRegistry.emitOnCreate(); + kotlinModuleRegistry.installJSIInterop(); ++ kotlinModuleRegistry.emitOnCreate(); + + Map constants = new HashMap<>(3); + constants.put(MODULES_CONSTANTS_KEY, new HashMap<>()); +diff --git a/node_modules/expo-modules-core/build/uuid/uuid.js b/node_modules/expo-modules-core/build/uuid/uuid.js +index 109d3fe..c7fce9e 100644 +--- a/node_modules/expo-modules-core/build/uuid/uuid.js ++++ b/node_modules/expo-modules-core/build/uuid/uuid.js +@@ -1,5 +1,7 @@ + import bytesToUuid from './lib/bytesToUuid'; + import { Uuidv5Namespace } from './uuid.types'; ++import { ensureNativeModulesAreInstalled } from '../ensureNativeModulesAreInstalled'; ++ensureNativeModulesAreInstalled(); + const nativeUuidv4 = globalThis?.expo?.uuidv4; + const nativeUuidv5 = globalThis?.expo?.uuidv5; + function uuidv4() { diff --git a/patches/expo-notifications+0.27.6.patch b/patches/expo-notifications+0.28.7.patch similarity index 80% rename from patches/expo-notifications+0.27.6.patch rename to patches/expo-notifications+0.28.7.patch index ba196eca05..b71da2ebb8 100644 --- a/patches/expo-notifications+0.27.6.patch +++ b/patches/expo-notifications+0.28.7.patch @@ -1,29 +1,54 @@ diff --git a/node_modules/expo-notifications/android/build.gradle b/node_modules/expo-notifications/android/build.gradle -index 97bf4f4..6e9d427 100644 +index b863077..8b5209e 100644 --- a/node_modules/expo-notifications/android/build.gradle +++ b/node_modules/expo-notifications/android/build.gradle -@@ -118,6 +118,7 @@ dependencies { +@@ -32,6 +32,7 @@ dependencies { api 'com.google.firebase:firebase-messaging:22.0.0' - + api 'me.leolin:ShortcutBadger:1.1.22@aar' + implementation project(':expo-background-notification-handler') - + if (project.findProject(':expo-modules-test-core')) { testImplementation project(':expo-modules-test-core') +diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/badge/BadgeHelper.kt b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/badge/BadgeHelper.kt +index 63a46c5..f911834 100644 +--- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/badge/BadgeHelper.kt ++++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/badge/BadgeHelper.kt +@@ -1,5 +1,6 @@ + package expo.modules.notifications.badge + ++import android.app.NotificationManager + import android.content.Context + import android.util.Log + import me.leolin.shortcutbadger.ShortcutBadgeException +@@ -12,7 +13,12 @@ object BadgeHelper { + + fun setBadgeCount(context: Context, badgeCount: Int): Boolean { + return try { +- ShortcutBadger.applyCountOrThrow(context.applicationContext, badgeCount) ++ if (badgeCount == 0) { ++ val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager ++ notificationManager.cancelAll() ++ } else { ++ ShortcutBadger.applyCountOrThrow(context.applicationContext, badgeCount) ++ } + BadgeHelper.badgeCount = badgeCount + true + } catch (e: ShortcutBadgeException) { diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java index 0af7fe0..8f2c8d8 100644 --- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java +++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java @@ -14,6 +14,7 @@ import expo.modules.notifications.notifications.enums.NotificationPriority; import expo.modules.notifications.notifications.model.NotificationContent; - + public class JSONNotificationContentBuilder extends NotificationContent.Builder { + private static final String CHANNEL_ID_KEY = "channelId"; private static final String TITLE_KEY = "title"; private static final String TEXT_KEY = "message"; private static final String SUBTITLE_KEY = "subtitle"; @@ -36,6 +37,7 @@ public class JSONNotificationContentBuilder extends NotificationContent.Builder - + public NotificationContent.Builder setPayload(JSONObject payload) { this.setTitle(getTitle(payload)) + .setChannelId(getChannelId(payload)) @@ -33,7 +58,7 @@ index 0af7fe0..8f2c8d8 100644 @@ -60,6 +62,14 @@ public class JSONNotificationContentBuilder extends NotificationContent.Builder return this; } - + + protected String getChannelId(JSONObject payload) { + try { + return payload.getString(CHANNEL_ID_KEY); @@ -46,7 +71,7 @@ index 0af7fe0..8f2c8d8 100644 try { return payload.getString(TITLE_KEY); diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java -index f1fed19..1619f59 100644 +index f1fed19..012757b 100644 --- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java +++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java @@ -20,6 +20,7 @@ import expo.modules.notifications.notifications.enums.NotificationPriority; @@ -57,60 +82,62 @@ index f1fed19..1619f59 100644 private String mTitle; private String mText; private String mSubtitle; -@@ -50,6 +51,9 @@ public class NotificationContent implements Parcelable, Serializable { +@@ -50,6 +51,11 @@ public class NotificationContent implements Parcelable, Serializable { } }; - + + @Nullable -+ public String getChannelId() { return mChannelId; } ++ public String getChannelId() { ++ return mChannelId; ++ } + @Nullable public String getTitle() { return mTitle; -@@ -121,6 +125,7 @@ public class NotificationContent implements Parcelable, Serializable { +@@ -121,6 +127,7 @@ public class NotificationContent implements Parcelable, Serializable { } - + protected NotificationContent(Parcel in) { + mChannelId = in.readString(); mTitle = in.readString(); mText = in.readString(); mSubtitle = in.readString(); -@@ -146,6 +151,7 @@ public class NotificationContent implements Parcelable, Serializable { - +@@ -146,6 +153,7 @@ public class NotificationContent implements Parcelable, Serializable { + @Override public void writeToParcel(Parcel dest, int flags) { + dest.writeString(mChannelId); dest.writeString(mTitle); dest.writeString(mText); dest.writeString(mSubtitle); -@@ -166,6 +172,7 @@ public class NotificationContent implements Parcelable, Serializable { +@@ -166,6 +174,7 @@ public class NotificationContent implements Parcelable, Serializable { private static final long serialVersionUID = 397666843266836802L; - + private void writeObject(java.io.ObjectOutputStream out) throws IOException { + out.writeObject(mChannelId); out.writeObject(mTitle); out.writeObject(mText); out.writeObject(mSubtitle); -@@ -190,6 +197,7 @@ public class NotificationContent implements Parcelable, Serializable { +@@ -190,6 +199,7 @@ public class NotificationContent implements Parcelable, Serializable { } - + private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { + mChannelId = (String) in.readObject(); mTitle = (String) in.readObject(); mText = (String) in.readObject(); mSubtitle = (String) in.readObject(); -@@ -240,6 +248,7 @@ public class NotificationContent implements Parcelable, Serializable { +@@ -240,6 +250,7 @@ public class NotificationContent implements Parcelable, Serializable { } - + public static class Builder { + private String mChannelId; private String mTitle; private String mText; private String mSubtitle; -@@ -260,6 +269,11 @@ public class NotificationContent implements Parcelable, Serializable { +@@ -260,6 +271,11 @@ public class NotificationContent implements Parcelable, Serializable { useDefaultVibrationPattern(); } - + + public Builder setChannelId(String channelId) { + mChannelId = channelId; + return this; @@ -119,8 +146,8 @@ index f1fed19..1619f59 100644 public Builder setTitle(String title) { mTitle = title; return this; -@@ -336,6 +350,7 @@ public class NotificationContent implements Parcelable, Serializable { - +@@ -336,6 +352,7 @@ public class NotificationContent implements Parcelable, Serializable { + public NotificationContent build() { NotificationContent content = new NotificationContent(); + content.mChannelId = mChannelId; @@ -128,28 +155,20 @@ index f1fed19..1619f59 100644 content.mSubtitle = mSubtitle; content.mText = mText; diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java -index 6bd9928..aab71ea 100644 +index 6bd9928..ee93d70 100644 --- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java +++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java -@@ -7,7 +7,6 @@ import android.content.pm.PackageManager; - import android.content.res.Resources; - import android.graphics.Bitmap; - import android.graphics.BitmapFactory; --import android.os.Build; - import android.os.Bundle; - import android.os.Parcel; - import android.provider.Settings; -@@ -48,6 +47,10 @@ public class ExpoNotificationBuilder extends ChannelAwareNotificationBuilder { - +@@ -48,6 +48,10 @@ public class ExpoNotificationBuilder extends ChannelAwareNotificationBuilder { + NotificationContent content = getNotificationContent(); - + + if (content.getChannelId() != null) { + builder.setChannelId(content.getChannelId()); + } + builder.setAutoCancel(content.isAutoDismiss()); builder.setOngoing(content.isSticky()); - + diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt index 55b3a8d..1b99d5b 100644 --- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt @@ -164,7 +183,7 @@ index 55b3a8d..1b99d5b 100644 import org.json.JSONObject import java.lang.ref.WeakReference import java.util.* - + -open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseMessagingDelegate { +open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseMessagingDelegate, BackgroundNotificationHandlerInterface { companion object { @@ -172,7 +191,7 @@ index 55b3a8d..1b99d5b 100644 // than by static properties. Fortunately, using weak references we can @@ -89,12 +92,21 @@ open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseM fun getBackgroundTasks() = sBackgroundTaskConsumerReferences.values.mapNotNull { it.get() } - + override fun onMessageReceived(remoteMessage: RemoteMessage) { - NotificationsService.receive(context, createNotification(remoteMessage)) - getBackgroundTasks().forEach { @@ -187,7 +206,7 @@ index 55b3a8d..1b99d5b 100644 + } } } - + + override fun showMessage(remoteMessage: RemoteMessage) { + NotificationsService.receive(context, createNotification(remoteMessage)) + } diff --git a/patches/expo-notifications-0.27.6.patch.md b/patches/expo-notifications-0.28.7.patch.md similarity index 65% rename from patches/expo-notifications-0.27.6.patch.md rename to patches/expo-notifications-0.28.7.patch.md index 59b2598f3b..05f8417252 100644 --- a/patches/expo-notifications-0.27.6.patch.md +++ b/patches/expo-notifications-0.28.7.patch.md @@ -7,3 +7,8 @@ in `onMessageReceived` are sent to the module for handling. It also allows us to set the Android notification channel ID from the notification `data`, rather than the `notification` object in the payload. + +### `setBadgeCountAsync` fix on Android + +`ShortcutBadger`'s `setCount` doesn't work for clearing the badge on Android for some reason. Instead, let's use the +Android API for clearing the badge. diff --git a/patches/expo-updates+0.24.7.patch.md b/patches/expo-updates+0.25.11.patch.md similarity index 96% rename from patches/expo-updates+0.24.7.patch.md rename to patches/expo-updates+0.25.11.patch.md index 8a8848127e..6d5d7093df 100644 --- a/patches/expo-updates+0.24.7.patch.md +++ b/patches/expo-updates+0.25.11.patch.md @@ -4,4 +4,4 @@ This is a small patch to convert timestamp formats that are returned from the ba backend to return the correct format for a specific format (the format required on Android is not the same as on iOS) we can just add this conversion in. -Don't remove unless we make changes on the backend to support both platforms. \ No newline at end of file +Don't remove unless we make changes on the backend to support both platforms. diff --git a/patches/expo-updates+0.24.7.patch b/patches/expo-updates+0.25.14.patch similarity index 60% rename from patches/expo-updates+0.24.7.patch rename to patches/expo-updates+0.25.14.patch index 603ae32ef8..6fc4fc5fcf 100644 --- a/patches/expo-updates+0.24.7.patch +++ b/patches/expo-updates+0.25.14.patch @@ -1,11 +1,11 @@ -diff --git a/node_modules/expo-updates/ios/EXUpdates/Update/NewUpdate.swift b/node_modules/expo-updates/ios/EXUpdates/Update/NewUpdate.swift -index 189a5f5..8d5b8e6 100644 ---- a/node_modules/expo-updates/ios/EXUpdates/Update/NewUpdate.swift -+++ b/node_modules/expo-updates/ios/EXUpdates/Update/NewUpdate.swift -@@ -68,13 +68,20 @@ public final class NewUpdate: Update { - processedAssets.append(asset) +diff --git a/node_modules/expo-updates/ios/EXUpdates/Update/ExpoUpdatesUpdate.swift b/node_modules/expo-updates/ios/EXUpdates/Update/ExpoUpdatesUpdate.swift +index b85291e..546709d 100644 +--- a/node_modules/expo-updates/ios/EXUpdates/Update/ExpoUpdatesUpdate.swift ++++ b/node_modules/expo-updates/ios/EXUpdates/Update/ExpoUpdatesUpdate.swift +@@ -78,13 +78,20 @@ public final class ExpoUpdatesUpdate: Update { + status = UpdateStatus.StatusPending } - + + // Instead of relying on various hacks to get the correct format for the specific + // platform on the backend, we can just add this little patch.. + let dateFormatter = DateFormatter() @@ -23,4 +23,4 @@ index 189a5f5..8d5b8e6 100644 + commitTime: date, runtimeVersion: runtimeVersion, keep: true, - status: UpdateStatus.StatusPending, + status: status, diff --git a/patches/expo-video+1.2.4.patch b/patches/expo-video+1.2.4.patch new file mode 100644 index 0000000000..918c8a8d25 --- /dev/null +++ b/patches/expo-video+1.2.4.patch @@ -0,0 +1,135 @@ +diff --git a/node_modules/expo-video/android/src/main/java/expo/modules/video/PlayerViewExtension.kt b/node_modules/expo-video/android/src/main/java/expo/modules/video/PlayerViewExtension.kt +index 9905e13..47342ff 100644 +--- a/node_modules/expo-video/android/src/main/java/expo/modules/video/PlayerViewExtension.kt ++++ b/node_modules/expo-video/android/src/main/java/expo/modules/video/PlayerViewExtension.kt +@@ -11,6 +11,7 @@ internal fun PlayerView.applyRequiresLinearPlayback(requireLinearPlayback: Boole + setShowPreviousButton(!requireLinearPlayback) + setShowNextButton(!requireLinearPlayback) + setTimeBarInteractive(requireLinearPlayback) ++ setShowSubtitleButton(true) + } + + @androidx.annotation.OptIn(androidx.media3.common.util.UnstableApi::class) +@@ -27,7 +28,8 @@ internal fun PlayerView.setTimeBarInteractive(interactive: Boolean) { + + @androidx.annotation.OptIn(androidx.media3.common.util.UnstableApi::class) + internal fun PlayerView.setFullscreenButtonVisibility(visible: Boolean) { +- val fullscreenButton = findViewById(androidx.media3.ui.R.id.exo_fullscreen) ++ val fullscreenButton = ++ findViewById(androidx.media3.ui.R.id.exo_fullscreen) + fullscreenButton?.visibility = if (visible) { + android.view.View.VISIBLE + } else { +diff --git a/node_modules/expo-video/android/src/main/java/expo/modules/video/VideoModule.kt b/node_modules/expo-video/android/src/main/java/expo/modules/video/VideoModule.kt +index ec3da2a..5a1397a 100644 +--- a/node_modules/expo-video/android/src/main/java/expo/modules/video/VideoModule.kt ++++ b/node_modules/expo-video/android/src/main/java/expo/modules/video/VideoModule.kt +@@ -43,7 +43,9 @@ class VideoModule : Module() { + View(VideoView::class) { + Events( + "onPictureInPictureStart", +- "onPictureInPictureStop" ++ "onPictureInPictureStop", ++ "onEnterFullscreen", ++ "onExitFullscreen" + ) + + Prop("player") { view: VideoView, player: VideoPlayer -> +diff --git a/node_modules/expo-video/android/src/main/java/expo/modules/video/VideoView.kt b/node_modules/expo-video/android/src/main/java/expo/modules/video/VideoView.kt +index a951d80..3932535 100644 +--- a/node_modules/expo-video/android/src/main/java/expo/modules/video/VideoView.kt ++++ b/node_modules/expo-video/android/src/main/java/expo/modules/video/VideoView.kt +@@ -36,6 +36,8 @@ class VideoView(context: Context, appContext: AppContext) : ExpoView(context, ap + val playerView: PlayerView = PlayerView(context.applicationContext) + val onPictureInPictureStart by EventDispatcher() + val onPictureInPictureStop by EventDispatcher() ++ val onEnterFullscreen by EventDispatcher() ++ val onExitFullscreen by EventDispatcher() + + var willEnterPiP: Boolean = false + var isInFullscreen: Boolean = false +@@ -154,6 +156,7 @@ class VideoView(context: Context, appContext: AppContext) : ExpoView(context, ap + @Suppress("DEPRECATION") + currentActivity.overridePendingTransition(0, 0) + } ++ onEnterFullscreen(mapOf()) + isInFullscreen = true + } + +@@ -162,6 +165,7 @@ class VideoView(context: Context, appContext: AppContext) : ExpoView(context, ap + val fullScreenButton: ImageButton = playerView.findViewById(androidx.media3.ui.R.id.exo_fullscreen) + fullScreenButton.setImageResource(androidx.media3.ui.R.drawable.exo_icon_fullscreen_enter) + videoPlayer?.changePlayerView(playerView) ++ this.onExitFullscreen(mapOf()) + isInFullscreen = false + } + +diff --git a/node_modules/expo-video/build/VideoView.types.d.ts b/node_modules/expo-video/build/VideoView.types.d.ts +index cb9ca6d..60e9f4e 100644 +--- a/node_modules/expo-video/build/VideoView.types.d.ts ++++ b/node_modules/expo-video/build/VideoView.types.d.ts +@@ -89,5 +89,8 @@ export interface VideoViewProps extends ViewProps { + * @platform ios 16.0+ + */ + allowsVideoFrameAnalysis?: boolean; ++ ++ onEnterFullscreen?: () => void; ++ onExitFullscreen?: () => void; + } + //# sourceMappingURL=VideoView.types.d.ts.map +diff --git a/node_modules/expo-video/ios/VideoModule.swift b/node_modules/expo-video/ios/VideoModule.swift +index c537a12..e4a918f 100644 +--- a/node_modules/expo-video/ios/VideoModule.swift ++++ b/node_modules/expo-video/ios/VideoModule.swift +@@ -16,7 +16,9 @@ public final class VideoModule: Module { + View(VideoView.self) { + Events( + "onPictureInPictureStart", +- "onPictureInPictureStop" ++ "onPictureInPictureStop", ++ "onEnterFullscreen", ++ "onExitFullscreen" + ) + + Prop("player") { (view, player: VideoPlayer?) in +diff --git a/node_modules/expo-video/ios/VideoView.swift b/node_modules/expo-video/ios/VideoView.swift +index f4579e4..10c5908 100644 +--- a/node_modules/expo-video/ios/VideoView.swift ++++ b/node_modules/expo-video/ios/VideoView.swift +@@ -41,6 +41,8 @@ public final class VideoView: ExpoView, AVPlayerViewControllerDelegate { + + let onPictureInPictureStart = EventDispatcher() + let onPictureInPictureStop = EventDispatcher() ++ let onEnterFullscreen = EventDispatcher() ++ let onExitFullscreen = EventDispatcher() + + public override var bounds: CGRect { + didSet { +@@ -163,6 +165,7 @@ public final class VideoView: ExpoView, AVPlayerViewControllerDelegate { + _ playerViewController: AVPlayerViewController, + willBeginFullScreenPresentationWithAnimationCoordinator coordinator: UIViewControllerTransitionCoordinator + ) { ++ onEnterFullscreen() + isFullscreen = true + } + +@@ -179,6 +182,7 @@ public final class VideoView: ExpoView, AVPlayerViewControllerDelegate { + if wasPlaying { + self.player?.pointer.play() + } ++ self.onExitFullscreen() + self.isFullscreen = false + } + } +diff --git a/node_modules/expo-video/src/VideoView.types.ts b/node_modules/expo-video/src/VideoView.types.ts +index 29fe5db..e1fbf59 100644 +--- a/node_modules/expo-video/src/VideoView.types.ts ++++ b/node_modules/expo-video/src/VideoView.types.ts +@@ -100,4 +100,7 @@ export interface VideoViewProps extends ViewProps { + * @platform ios 16.0+ + */ + allowsVideoFrameAnalysis?: boolean; ++ ++ onEnterFullscreen?: () => void; ++ onExitFullscreen?: () => void; + } diff --git a/patches/expo-video+1.2.4.patch.md b/patches/expo-video+1.2.4.patch.md new file mode 100644 index 0000000000..689cf9a926 --- /dev/null +++ b/patches/expo-video+1.2.4.patch.md @@ -0,0 +1,6 @@ +## uwu woad beawing, do not wemove + +## `expo-video` Patch + +This patch adds two props to `VideoView`: `onEnterFullscreen` and `onExitFullscreen` which do exactly what they say on +the tin. diff --git a/patches/react-native+0.73.2.patch b/patches/react-native+0.74.1.patch similarity index 54% rename from patches/react-native+0.73.2.patch rename to patches/react-native+0.74.1.patch index db8b7da2d2..789ba84ace 100644 --- a/patches/react-native+0.73.2.patch +++ b/patches/react-native+0.74.1.patch @@ -1,3 +1,29 @@ +diff --git a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm +index b0d71dc..9974932 100644 +--- a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm ++++ b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm +@@ -377,10 +377,6 @@ - (void)textInputDidBeginEditing + self.backedTextInputView.attributedText = [NSAttributedString new]; + } + +- if (_selectTextOnFocus) { +- [self.backedTextInputView selectAll:nil]; +- } +- + [_eventDispatcher sendTextEventWithType:RCTTextEventTypeFocus + reactTag:self.reactTag + text:[self.backedTextInputView.attributedText.string copy] +@@ -611,6 +607,10 @@ - (UIView *)reactAccessibilityElement + - (void)reactFocus + { + [self.backedTextInputView reactFocus]; ++ ++ if (_selectTextOnFocus) { ++ [self.backedTextInputView selectAll:nil]; ++ } + } + + - (void)reactBlur diff --git a/node_modules/react-native/React/Views/RefreshControl/RCTRefreshControl.h b/node_modules/react-native/React/Views/RefreshControl/RCTRefreshControl.h index e9b330f..1ecdf0a 100644 --- a/node_modules/react-native/React/Views/RefreshControl/RCTRefreshControl.h @@ -5,7 +31,7 @@ index e9b330f..1ecdf0a 100644 @@ -16,4 +16,6 @@ @property (nonatomic, copy) RCTDirectEventBlock onRefresh; @property (nonatomic, weak) UIScrollView *scrollView; - + +- (void)forwarderBeginRefreshing; + @end @@ -16,7 +42,7 @@ index b09e653..4c32b31 100644 @@ -198,9 +198,53 @@ - (void)refreshControlValueChanged [self setCurrentRefreshingState:super.refreshing]; _refreshingProgrammatically = NO; - + + if (@available(iOS 17.4, *)) { + if (_currentRefreshingState) { + UIImpactFeedbackGenerator *feedbackGenerator = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleLight]; @@ -29,7 +55,7 @@ index b09e653..4c32b31 100644 _onRefresh(nil); } } - + +/* + This method is used by Bluesky's ExpoScrollForwarder. This allows other React Native + libraries to perform a refresh of a scrollview and access the refresh control's onRefresh @@ -38,15 +64,15 @@ index b09e653..4c32b31 100644 +- (void)forwarderBeginRefreshing +{ + _refreshingProgrammatically = NO; -+ ++ + [self sizeToFit]; -+ ++ + if (!self.scrollView) { + return; + } -+ ++ + UIScrollView *scrollView = (UIScrollView *)self.scrollView; -+ ++ + [UIView animateWithDuration:0.3 + delay:0 + options:UIViewAnimationOptionBeginFromCurrentState @@ -58,7 +84,7 @@ index b09e653..4c32b31 100644 + completion:^(__unused BOOL finished) { + [super beginRefreshing]; + [self setCurrentRefreshingState:super.refreshing]; -+ ++ + if (self->_onRefresh) { + self->_onRefresh(nil); + } @@ -67,3 +93,19 @@ index b09e653..4c32b31 100644 +} + @end +diff --git a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +index 5f5e1ab..aac00b6 100644 +--- a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java ++++ b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +@@ -99,8 +99,9 @@ public class JavaTimerManager { + } + + // If the JS thread is busy for multiple frames we cancel any other pending runnable. +- if (mCurrentIdleCallbackRunnable != null) { +- mCurrentIdleCallbackRunnable.cancel(); ++ IdleCallbackRunnable currentRunnable = mCurrentIdleCallbackRunnable; ++ if (currentRunnable != null) { ++ currentRunnable.cancel(); + } + + mCurrentIdleCallbackRunnable = new IdleCallbackRunnable(frameTimeNanos); diff --git a/patches/react-native+0.73.2.patch.md b/patches/react-native+0.74.1.patch.md similarity index 66% rename from patches/react-native+0.73.2.patch.md rename to patches/react-native+0.74.1.patch.md index 9c93aee5cb..84953df2bd 100644 --- a/patches/react-native+0.73.2.patch.md +++ b/patches/react-native+0.74.1.patch.md @@ -11,3 +11,10 @@ in the RN repo: https://github.com/facebook/react-native/issues/43388 Patching `RCTRefreshControl.m` and `RCTRefreshControl.h` to add a new `forwarderBeginRefreshing` method to the class. This method is used by `ExpoScrollForwarder` to initiate a refresh of the underlying `UIScrollView` from inside that module. + + +## TextInput Patch - `selectTextOnFocus` fix + +Patching `RCTBaseTextInputView.m` to fix an issue where `selectTextOnFocus` does not work as expected on iOS 17. This +patch _only_ fixes the Paper version of `TextInput`. If we migrate to Fabric and the fix has not been made upstream, +we can apply the same fix. See https://github.com/facebook/react-native/pull/44307. diff --git a/patches/react-native-reanimated+3.11.0.patch b/patches/react-native-reanimated+3.11.0.patch new file mode 100644 index 0000000000..a79a0ac085 --- /dev/null +++ b/patches/react-native-reanimated+3.11.0.patch @@ -0,0 +1,209 @@ +diff --git a/node_modules/react-native-reanimated/src/createAnimatedComponent/commonTypes.ts b/node_modules/react-native-reanimated/src/createAnimatedComponent/commonTypes.ts +index 92ebe62..5f8207e 100644 +--- a/node_modules/react-native-reanimated/src/createAnimatedComponent/commonTypes.ts ++++ b/node_modules/react-native-reanimated/src/createAnimatedComponent/commonTypes.ts +@@ -96,7 +96,8 @@ export interface AnimatedComponentRef extends Component { + export interface IAnimatedComponentInternal { + _styles: StyleProps[] | null; + _animatedProps?: Partial>; +- _viewTag: number; ++ _componentViewTag: number; ++ _eventViewTag: number; + _isFirstRender: boolean; + jestAnimatedStyle: { value: StyleProps }; + _component: AnimatedComponentRef | HTMLElement | null; +diff --git a/node_modules/react-native-reanimated/src/createAnimatedComponent/createAnimatedComponent.tsx b/node_modules/react-native-reanimated/src/createAnimatedComponent/createAnimatedComponent.tsx +index 88b3fdf..2488ebc 100644 +--- a/node_modules/react-native-reanimated/src/createAnimatedComponent/createAnimatedComponent.tsx ++++ b/node_modules/react-native-reanimated/src/createAnimatedComponent/createAnimatedComponent.tsx +@@ -122,7 +122,8 @@ export function createAnimatedComponent( + { + _styles: StyleProps[] | null = null; + _animatedProps?: Partial>; +- _viewTag = -1; ++ _componentViewTag = -1; ++ _eventViewTag = -1; + _isFirstRender = true; + jestAnimatedStyle: { value: StyleProps } = { value: {} }; + _component: AnimatedComponentRef | HTMLElement | null = null; +@@ -143,7 +144,8 @@ export function createAnimatedComponent( + } + + componentDidMount() { +- this._viewTag = this._getViewInfo().viewTag as number; ++ this._setComponentViewTag(); ++ this._setEventViewTag(); + this._attachNativeEvents(); + this._jsPropsUpdater.addOnJSPropsChangeListener(this); + this._attachAnimatedStyles(); +@@ -185,7 +187,10 @@ export function createAnimatedComponent( + if (this.props.sharedTransitionTag) { + this._configureSharedTransition(true); + } +- this._sharedElementTransition?.unregisterTransition(this._viewTag, true); ++ this._sharedElementTransition?.unregisterTransition( ++ this._componentViewTag, ++ true ++ ); + + const exiting = this.props.exiting; + if ( +@@ -209,7 +214,7 @@ export function createAnimatedComponent( + : getReduceMotionFromConfig(); + if (!reduceMotionInExiting) { + updateLayoutAnimations( +- this._viewTag, ++ this._componentViewTag, + LayoutAnimationType.EXITING, + maybeBuild( + exiting, +@@ -221,12 +226,22 @@ export function createAnimatedComponent( + } + } + +- _getEventViewRef() { +- // Make sure to get the scrollable node for components that implement +- // `ScrollResponder.Mixin`. +- return (this._component as AnimatedComponentRef)?.getScrollableNode +- ? (this._component as AnimatedComponentRef).getScrollableNode?.() +- : this._component; ++ _setComponentViewTag() { ++ this._componentViewTag = this._getViewInfo().viewTag as number; ++ } ++ ++ _setEventViewTag() { ++ // Setting the tag for registering events - since the event emitting view can be nested inside the main component ++ const componentAnimatedRef = this._component as AnimatedComponentRef; ++ if (componentAnimatedRef.getScrollableNode) { ++ const scrollableNode = componentAnimatedRef.getScrollableNode(); ++ this._eventViewTag = findNodeHandle(scrollableNode) ?? -1; ++ } else { ++ this._eventViewTag = ++ findNodeHandle( ++ options?.setNativeProps ? this : componentAnimatedRef ++ ) ?? -1; ++ } + } + + _attachNativeEvents() { +@@ -236,7 +251,7 @@ export function createAnimatedComponent( + has('workletEventHandler', prop) && + prop.workletEventHandler instanceof WorkletEventHandler + ) { +- prop.workletEventHandler.registerForEvents(this._viewTag, key); ++ prop.workletEventHandler.registerForEvents(this._eventViewTag, key); + } + } + } +@@ -248,7 +263,7 @@ export function createAnimatedComponent( + has('workletEventHandler', prop) && + prop.workletEventHandler instanceof WorkletEventHandler + ) { +- prop.workletEventHandler.unregisterFromEvents(this._viewTag); ++ prop.workletEventHandler.unregisterFromEvents(this._eventViewTag); + } + } + } +@@ -258,15 +273,17 @@ export function createAnimatedComponent( + for (const style of this._styles) { + style.viewsRef.remove(this); + } +- } else if (this._viewTag !== -1 && this._styles !== null) { ++ } else if (this._componentViewTag !== -1 && this._styles !== null) { + for (const style of this._styles) { +- style.viewDescriptors.remove(this._viewTag); ++ style.viewDescriptors.remove(this._componentViewTag); + } + if (this.props.animatedProps?.viewDescriptors) { +- this.props.animatedProps.viewDescriptors.remove(this._viewTag); ++ this.props.animatedProps.viewDescriptors.remove( ++ this._componentViewTag ++ ); + } + if (isFabric()) { +- removeFromPropsRegistry(this._viewTag); ++ removeFromPropsRegistry(this._componentViewTag); + } + } + } +@@ -283,15 +300,19 @@ export function createAnimatedComponent( + const newProp = this.props[key]; + if (!newProp) { + // Prop got deleted +- prevProp.workletEventHandler.unregisterFromEvents(this._viewTag); ++ prevProp.workletEventHandler.unregisterFromEvents( ++ this._eventViewTag ++ ); + } else if ( + has('workletEventHandler', newProp) && + newProp.workletEventHandler instanceof WorkletEventHandler && + newProp.workletEventHandler !== prevProp.workletEventHandler + ) { + // Prop got changed +- prevProp.workletEventHandler.unregisterFromEvents(this._viewTag); +- newProp.workletEventHandler.registerForEvents(this._viewTag); ++ prevProp.workletEventHandler.unregisterFromEvents( ++ this._eventViewTag ++ ); ++ newProp.workletEventHandler.registerForEvents(this._eventViewTag); + } + } + } +@@ -304,7 +325,7 @@ export function createAnimatedComponent( + !prevProps[key] + ) { + // Prop got added +- newProp.workletEventHandler.registerForEvents(this._viewTag); ++ newProp.workletEventHandler.registerForEvents(this._eventViewTag); + } + } + } +@@ -381,7 +402,7 @@ export function createAnimatedComponent( + adaptViewConfig(viewConfig); + } + +- this._viewTag = viewTag as number; ++ this._componentViewTag = viewTag as number; + + // remove old styles + if (prevStyles) { +@@ -487,7 +508,11 @@ export function createAnimatedComponent( + AnimatedComponent.displayName + ) + : undefined; +- updateLayoutAnimations(this._viewTag, LayoutAnimationType.LAYOUT, layout); ++ updateLayoutAnimations( ++ this._componentViewTag, ++ LayoutAnimationType.LAYOUT, ++ layout ++ ); + } + + _configureSharedTransition(isUnmounting = false) { +@@ -497,7 +522,7 @@ export function createAnimatedComponent( + const { sharedTransitionTag } = this.props; + if (!sharedTransitionTag) { + this._sharedElementTransition?.unregisterTransition( +- this._viewTag, ++ this._componentViewTag, + isUnmounting + ); + this._sharedElementTransition = null; +@@ -508,7 +533,7 @@ export function createAnimatedComponent( + this._sharedElementTransition ?? + new SharedTransition(); + sharedElementTransition.registerTransition( +- this._viewTag, ++ this._componentViewTag, + sharedTransitionTag, + isUnmounting + ); +@@ -527,7 +552,7 @@ export function createAnimatedComponent( + ? (ref as HTMLElement) + : findNodeHandle(ref as Component); + +- this._viewTag = tag as number; ++ this._componentViewTag = tag as number; + + const { layout, entering, exiting, sharedTransitionTag } = this.props; + if ( diff --git a/plugins/starterPackAppClipExtension/withAppEntitlements.js b/plugins/starterPackAppClipExtension/withAppEntitlements.js new file mode 100644 index 0000000000..1bffd82080 --- /dev/null +++ b/plugins/starterPackAppClipExtension/withAppEntitlements.js @@ -0,0 +1,16 @@ +const {withEntitlementsPlist} = require('@expo/config-plugins') + +const withAppEntitlements = config => { + // eslint-disable-next-line no-shadow + return withEntitlementsPlist(config, async config => { + config.modResults['com.apple.security.application-groups'] = [ + `group.app.bsky`, + ] + config.modResults[ + 'com.apple.developer.associated-appclip-app-identifiers' + ] = [`$(AppIdentifierPrefix)${config.ios.bundleIdentifier}.AppClip`] + return config + }) +} + +module.exports = {withAppEntitlements} diff --git a/plugins/starterPackAppClipExtension/withClipEntitlements.js b/plugins/starterPackAppClipExtension/withClipEntitlements.js new file mode 100644 index 0000000000..77636b5c94 --- /dev/null +++ b/plugins/starterPackAppClipExtension/withClipEntitlements.js @@ -0,0 +1,32 @@ +const {withInfoPlist} = require('@expo/config-plugins') +const plist = require('@expo/plist') +const path = require('path') +const fs = require('fs') + +const withClipEntitlements = (config, {targetName}) => { + // eslint-disable-next-line no-shadow + return withInfoPlist(config, config => { + const entitlementsPath = path.join( + config.modRequest.platformProjectRoot, + targetName, + `${targetName}.entitlements`, + ) + + const appClipEntitlements = { + 'com.apple.security.application-groups': [`group.app.bsky`], + 'com.apple.developer.parent-application-identifiers': [ + `$(AppIdentifierPrefix)${config.ios.bundleIdentifier}`, + ], + 'com.apple.developer.associated-domains': config.ios.associatedDomains, + } + + fs.mkdirSync(path.dirname(entitlementsPath), { + recursive: true, + }) + fs.writeFileSync(entitlementsPath, plist.default.build(appClipEntitlements)) + + return config + }) +} + +module.exports = {withClipEntitlements} diff --git a/plugins/starterPackAppClipExtension/withClipInfoPlist.js b/plugins/starterPackAppClipExtension/withClipInfoPlist.js new file mode 100644 index 0000000000..4f104a6543 --- /dev/null +++ b/plugins/starterPackAppClipExtension/withClipInfoPlist.js @@ -0,0 +1,46 @@ +const {withInfoPlist} = require('@expo/config-plugins') +const plist = require('@expo/plist') +const path = require('path') +const fs = require('fs') + +const withClipInfoPlist = (config, {targetName}) => { + // eslint-disable-next-line no-shadow + return withInfoPlist(config, config => { + const targetPath = path.join( + config.modRequest.platformProjectRoot, + targetName, + 'Info.plist', + ) + + const newPlist = plist.default.build({ + NSAppClip: { + NSAppClipRequestEphemeralUserNotification: false, + NSAppClipRequestLocationConfirmation: false, + }, + UILaunchScreen: {}, + CFBundleName: '$(PRODUCT_NAME)', + CFBundleIdentifier: '$(PRODUCT_BUNDLE_IDENTIFIER)', + CFBundleVersion: '$(CURRENT_PROJECT_VERSION)', + CFBundleExecutable: '$(EXECUTABLE_NAME)', + CFBundlePackageType: '$(PRODUCT_BUNDLE_PACKAGE_TYPE)', + CFBundleShortVersionString: config.version, + CFBundleIconName: 'AppIcon', + UIViewControllerBasedStatusBarAppearance: 'NO', + UISupportedInterfaceOrientations: [ + 'UIInterfaceOrientationPortrait', + 'UIInterfaceOrientationPortraitUpsideDown', + ], + 'UISupportedInterfaceOrientations~ipad': [ + 'UIInterfaceOrientationPortrait', + 'UIInterfaceOrientationPortraitUpsideDown', + ], + }) + + fs.mkdirSync(path.dirname(targetPath), {recursive: true}) + fs.writeFileSync(targetPath, newPlist) + + return config + }) +} + +module.exports = {withClipInfoPlist} diff --git a/plugins/starterPackAppClipExtension/withFiles.js b/plugins/starterPackAppClipExtension/withFiles.js new file mode 100644 index 0000000000..ad99f5ae41 --- /dev/null +++ b/plugins/starterPackAppClipExtension/withFiles.js @@ -0,0 +1,40 @@ +const {withXcodeProject} = require('@expo/config-plugins') +const path = require('path') +const fs = require('fs') + +const FILES = ['AppDelegate.swift', 'ViewController.swift'] + +const withFiles = (config, {targetName}) => { + // eslint-disable-next-line no-shadow + return withXcodeProject(config, config => { + const basePath = path.join( + config.modRequest.projectRoot, + 'modules', + targetName, + ) + + for (const file of FILES) { + const sourcePath = path.join(basePath, file) + const targetPath = path.join( + config.modRequest.platformProjectRoot, + targetName, + file, + ) + + fs.mkdirSync(path.dirname(targetPath), {recursive: true}) + fs.copyFileSync(sourcePath, targetPath) + } + + const imagesBasePath = path.join(basePath, 'Images.xcassets') + const imagesTargetPath = path.join( + config.modRequest.platformProjectRoot, + targetName, + 'Images.xcassets', + ) + fs.cpSync(imagesBasePath, imagesTargetPath, {recursive: true}) + + return config + }) +} + +module.exports = {withFiles} diff --git a/plugins/starterPackAppClipExtension/withStarterPackAppClip.js b/plugins/starterPackAppClipExtension/withStarterPackAppClip.js new file mode 100644 index 0000000000..1e3f0b7029 --- /dev/null +++ b/plugins/starterPackAppClipExtension/withStarterPackAppClip.js @@ -0,0 +1,40 @@ +const {withPlugins} = require('@expo/config-plugins') +const {withAppEntitlements} = require('./withAppEntitlements') +const {withClipEntitlements} = require('./withClipEntitlements') +const {withClipInfoPlist} = require('./withClipInfoPlist') +const {withFiles} = require('./withFiles') +const {withXcodeTarget} = require('./withXcodeTarget') + +const APP_CLIP_TARGET_NAME = 'BlueskyClip' + +const withStarterPackAppClip = config => { + return withPlugins(config, [ + withAppEntitlements, + [ + withClipEntitlements, + { + targetName: APP_CLIP_TARGET_NAME, + }, + ], + [ + withClipInfoPlist, + { + targetName: APP_CLIP_TARGET_NAME, + }, + ], + [ + withFiles, + { + targetName: APP_CLIP_TARGET_NAME, + }, + ], + [ + withXcodeTarget, + { + targetName: APP_CLIP_TARGET_NAME, + }, + ], + ]) +} + +module.exports = withStarterPackAppClip diff --git a/plugins/starterPackAppClipExtension/withXcodeTarget.js b/plugins/starterPackAppClipExtension/withXcodeTarget.js new file mode 100644 index 0000000000..61d5f81b07 --- /dev/null +++ b/plugins/starterPackAppClipExtension/withXcodeTarget.js @@ -0,0 +1,91 @@ +const {withXcodeProject} = require('@expo/config-plugins') + +const BUILD_PHASE_FILES = ['AppDelegate.swift', 'ViewController.swift'] + +const withXcodeTarget = (config, {targetName}) => { + // eslint-disable-next-line no-shadow + return withXcodeProject(config, config => { + const pbxProject = config.modResults + + const target = pbxProject.addTarget(targetName, 'application', targetName) + target.pbxNativeTarget.productType = `"com.apple.product-type.application.on-demand-install-capable"` + pbxProject.addBuildPhase( + BUILD_PHASE_FILES.map(f => `${targetName}/${f}`), + 'PBXSourcesBuildPhase', + 'Sources', + target.uuid, + 'application', + '"AppClips"', + ) + pbxProject.addBuildPhase( + [`${targetName}/Images.xcassets`], + 'PBXResourcesBuildPhase', + 'Resources', + target.uuid, + 'application', + '"AppClips"', + ) + + const pbxGroup = pbxProject.addPbxGroup([ + 'AppDelegate.swift', + 'ViewController.swift', + 'Images.xcassets', + `${targetName}.entitlements`, + 'Info.plist', + ]) + + pbxProject.addFile(`${targetName}/Info.plist`, pbxGroup.uuid) + const configurations = pbxProject.pbxXCBuildConfigurationSection() + for (const key in configurations) { + if (typeof configurations[key].buildSettings !== 'undefined') { + const buildSettingsObj = configurations[key].buildSettings + if ( + typeof buildSettingsObj.PRODUCT_NAME !== 'undefined' && + buildSettingsObj.PRODUCT_NAME === `"${targetName}"` + ) { + buildSettingsObj.CLANG_ENABLE_MODULES = 'YES' + buildSettingsObj.INFOPLIST_FILE = `"${targetName}/Info.plist"` + buildSettingsObj.CODE_SIGN_ENTITLEMENTS = `"${targetName}/${targetName}.entitlements"` + buildSettingsObj.CODE_SIGN_STYLE = 'Automatic' + buildSettingsObj.CURRENT_PROJECT_VERSION = `"${ + process.env.BSKY_IOS_BUILD_NUMBER ?? '1' + }"` + buildSettingsObj.GENERATE_INFOPLIST_FILE = 'YES' + buildSettingsObj.MARKETING_VERSION = `"${config.version}"` + buildSettingsObj.PRODUCT_BUNDLE_IDENTIFIER = `"${config.ios?.bundleIdentifier}.AppClip"` + buildSettingsObj.SWIFT_EMIT_LOC_STRINGS = 'YES' + buildSettingsObj.SWIFT_VERSION = '5.0' + buildSettingsObj.TARGETED_DEVICE_FAMILY = `"1"` + buildSettingsObj.DEVELOPMENT_TEAM = 'B3LX46C5HS' + buildSettingsObj.IPHONEOS_DEPLOYMENT_TARGET = '14.0' + buildSettingsObj.ASSETCATALOG_COMPILER_APPICON_NAME = 'AppIcon' + } + } + } + + pbxProject.addTargetAttribute('DevelopmentTeam', 'B3LX46C5HS', targetName) + + if (!pbxProject.hash.project.objects.PBXTargetDependency) { + pbxProject.hash.project.objects.PBXTargetDependency = {} + } + if (!pbxProject.hash.project.objects.PBXContainerItemProxy) { + pbxProject.hash.project.objects.PBXContainerItemProxy = {} + } + pbxProject.addTargetDependency(pbxProject.getFirstTarget().uuid, [ + target.uuid, + ]) + + pbxProject.addBuildPhase( + [`${targetName}.app`], + 'PBXCopyFilesBuildPhase', + 'Embed App Clips', + pbxProject.getFirstTarget().uuid, + 'application', + '"AppClips"', + ) + + return config + }) +} + +module.exports = {withXcodeTarget} diff --git a/plugins/withAppDelegateReferrer.js b/plugins/withAppDelegateReferrer.js new file mode 100644 index 0000000000..de773df075 --- /dev/null +++ b/plugins/withAppDelegateReferrer.js @@ -0,0 +1,41 @@ +const {withAppDelegate} = require('@expo/config-plugins') +const {mergeContents} = require('@expo/config-plugins/build/utils/generateCode') +const path = require('path') +const fs = require('fs') + +module.exports = config => { + // eslint-disable-next-line no-shadow + return withAppDelegate(config, async config => { + const delegatePath = path.join( + config.modRequest.platformProjectRoot, + 'AppDelegate.mm', + ) + + let newContents = config.modResults.contents + newContents = mergeContents({ + src: newContents, + anchor: '// Linking API', + newSrc: ` + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setObject:options[UIApplicationOpenURLOptionsSourceApplicationKey] forKey:@"referrerApp"];\n`, + offset: 2, + tag: 'referrer info - deep links', + comment: '//', + }).contents + + newContents = mergeContents({ + src: newContents, + anchor: '// Universal Links', + newSrc: ` + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setURL:userActivity.referrerURL forKey:@"referrer"];\n`, + offset: 2, + tag: 'referrer info - universal links', + comment: '//', + }).contents + + config.modResults.contents = newContents + + return config + }) +} diff --git a/scripts/setGitHubOutput.sh b/scripts/setGitHubOutput.sh new file mode 100755 index 0000000000..e8ecfcdaf3 --- /dev/null +++ b/scripts/setGitHubOutput.sh @@ -0,0 +1,9 @@ +#!/bin/bash +outputIos=$(eas build:version:get -p ios) +outputAndroid=$(eas build:version:get -p android) +BSKY_IOS_BUILD_NUMBER=${outputIos#*buildNumber - } +BSKY_ANDROID_VERSION_CODE=${outputAndroid#*versionCode - } + +echo PACKAGE_VERSION="$(jq -r '.version' package.json)" > "$GITHUB_OUTPUT" +echo BSKY_IOS_BUILD_NUMBER=$BSKY_IOS_BUILD_NUMBER >> "$GITHUB_OUTPUT" +echo BSKY_ANDROID_VERSION_CODE=$BSKY_ANDROID_VERSION_CODE >> "$GITHUB_OUTPUT" diff --git a/scripts/updateExtensions.sh b/scripts/updateExtensions.sh index f3e972aa7b..b01134eebe 100755 --- a/scripts/updateExtensions.sh +++ b/scripts/updateExtensions.sh @@ -1,6 +1,7 @@ #!/bin/bash IOS_SHARE_EXTENSION_DIRECTORY="./ios/Share-with-Bluesky" IOS_NOTIFICATION_EXTENSION_DIRECTORY="./ios/BlueskyNSE" +IOS_APP_CLIP_DIRECTORY="./ios/BlueskyClip" MODULES_DIRECTORY="./modules" if [ ! -d $IOS_SHARE_EXTENSION_DIRECTORY ]; then @@ -16,3 +17,11 @@ if [ ! -d $IOS_NOTIFICATION_EXTENSION_DIRECTORY ]; then else cp -R $IOS_NOTIFICATION_EXTENSION_DIRECTORY $MODULES_DIRECTORY fi + + +if [ ! -d $IOS_APP_CLIP_DIRECTORY ]; then + echo "$IOS_APP_CLIP_DIRECTORY not found inside of your iOS project." + exit 1 +else + cp -R $IOS_APP_CLIP_DIRECTORY $MODULES_DIRECTORY +fi diff --git a/src/App.native.tsx b/src/App.native.tsx index 425d6ac6ea..bce439a717 100644 --- a/src/App.native.tsx +++ b/src/App.native.tsx @@ -4,6 +4,7 @@ import 'view/icons' import React, {useEffect, useState} from 'react' import {GestureHandlerRootView} from 'react-native-gesture-handler' +import {KeyboardProvider} from 'react-native-keyboard-controller' import {RootSiblingParent} from 'react-native-root-siblings' import { initialWindowMetrics, @@ -13,43 +14,54 @@ import * as SplashScreen from 'expo-splash-screen' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {Provider as StatsigProvider} from '#/lib/statsig/statsig' +import {useIntentHandler} from '#/lib/hooks/useIntentHandler' +import {QueryProvider} from '#/lib/react-query' +import { + initialize, + Provider as StatsigProvider, + tryFetchGates, +} from '#/lib/statsig/statsig' +import {s} from '#/lib/styles' +import {ThemeProvider} from '#/lib/ThemeContext' +import I18nProvider from '#/locale/i18nProvider' import {logger} from '#/logger' +import {Provider as A11yProvider} from '#/state/a11y' +import {Provider as MutedThreadsProvider} from '#/state/cache/thread-mutes' +import {Provider as DialogStateProvider} from '#/state/dialogs' +import {listenSessionDropped} from '#/state/events' +import {Provider as InvitesStateProvider} from '#/state/invites' +import {Provider as LightboxStateProvider} from '#/state/lightbox' import {MessagesProvider} from '#/state/messages' +import {Provider as ModalStateProvider} from '#/state/modals' import {init as initPersistedState} from '#/state/persisted' +import {Provider as PrefsStateProvider} from '#/state/preferences' import {Provider as LabelDefsProvider} from '#/state/preferences/label-defs' import {Provider as ModerationOptsProvider} from '#/state/preferences/moderation-opts' -import {readLastActiveAccount} from '#/state/session/util' -import {useIntentHandler} from 'lib/hooks/useIntentHandler' -import {QueryProvider} from 'lib/react-query' -import {s} from 'lib/styles' -import {ThemeProvider} from 'lib/ThemeContext' -import {Provider as DialogStateProvider} from 'state/dialogs' -import {Provider as InvitesStateProvider} from 'state/invites' -import {Provider as LightboxStateProvider} from 'state/lightbox' -import {Provider as ModalStateProvider} from 'state/modals' -import {Provider as MutedThreadsProvider} from 'state/muted-threads' -import {Provider as PrefsStateProvider} from 'state/preferences' -import {Provider as UnreadNotifsProvider} from 'state/queries/notifications/unread' +import {Provider as UnreadNotifsProvider} from '#/state/queries/notifications/unread' import { Provider as SessionProvider, SessionAccount, useSession, useSessionApi, -} from 'state/session' -import {Provider as ShellStateProvider} from 'state/shell' -import {Provider as LoggedOutViewProvider} from 'state/shell/logged-out' -import {Provider as SelectedFeedProvider} from 'state/shell/selected-feed' -import {TestCtrls} from 'view/com/testing/TestCtrls' -import * as Toast from 'view/com/util/Toast' -import {Shell} from 'view/shell' +} from '#/state/session' +import {readLastActiveAccount} from '#/state/session/util' +import {Provider as ShellStateProvider} from '#/state/shell' +import {Provider as LoggedOutViewProvider} from '#/state/shell/logged-out' +import {Provider as ProgressGuideProvider} from '#/state/shell/progress-guide' +import {Provider as SelectedFeedProvider} from '#/state/shell/selected-feed' +import {Provider as StarterPackProvider} from '#/state/shell/starter-pack' +import {TestCtrls} from '#/view/com/testing/TestCtrls' +import {ActiveVideoProvider} from '#/view/com/util/post-embeds/ActiveVideoContext' +import * as Toast from '#/view/com/util/Toast' +import {Shell} from '#/view/shell' import {ThemeProvider as Alf} from '#/alf' import {useColorModeTheme} from '#/alf/util/useColorModeTheme' +import {useStarterPackEntry} from '#/components/hooks/useStarterPackEntry' import {Provider as PortalProvider} from '#/components/Portal' import {Splash} from '#/Splash' +import {Provider as TourProvider} from '#/tours' import {BackgroundNotificationPreferencesProvider} from '../modules/expo-background-notification-handler/src/BackgroundNotificationHandlerProvider' -import I18nProvider from './locale/i18nProvider' -import {listenSessionDropped} from './state/events' +import {AudioCategory, PlatformInfo} from '../modules/expo-bluesky-swiss-army' SplashScreen.preventAutoHideAsync() @@ -61,6 +73,7 @@ function InnerApp() { const {_} = useLingui() useIntentHandler() + const hasCheckedReferrer = useStarterPackEntry() // init useEffect(() => { @@ -68,6 +81,9 @@ function InnerApp() { try { if (account) { await resumeSession(account) + } else { + await initialize() + await tryFetchGates(undefined, 'prefer-fresh-gates') } } catch (e) { logger.error(`session: resume failed`, {message: e}) @@ -81,7 +97,10 @@ function InnerApp() { useEffect(() => { return listenSessionDropped(() => { - Toast.show(_(msg`Sorry! Your session expired. Please log in again.`)) + Toast.show( + _(msg`Sorry! Your session expired. Please log in again.`), + 'info', + ) }) }, [_]) @@ -89,36 +108,45 @@ function InnerApp() { - - - - - - - {/* LabelDefsProvider MUST come before ModerationOptsProvider */} - - - - - - - - - - - - - - - - - - - - - + + + + + + + + {/* LabelDefsProvider MUST come before ModerationOptsProvider */} + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -130,6 +158,8 @@ function App() { const [isReady, setReady] = useState(false) React.useEffect(() => { + PlatformInfo.setAudioCategory(AudioCategory.Ambient) + PlatformInfo.setAudioActive(false) initPersistedState().then(() => setReady(true)) }, []) @@ -142,27 +172,31 @@ function App() { * that is set up in the InnerApp component above. */ return ( - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + ) } diff --git a/src/App.web.tsx b/src/App.web.tsx index 900ceefd7c..df6fbf2449 100644 --- a/src/App.web.tsx +++ b/src/App.web.tsx @@ -2,46 +2,53 @@ import 'lib/sentry' // must be near top import 'view/icons' import React, {useEffect, useState} from 'react' +import {KeyboardProvider} from 'react-native-keyboard-controller' import {RootSiblingParent} from 'react-native-root-siblings' import {SafeAreaProvider} from 'react-native-safe-area-context' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {useIntentHandler} from '#/lib/hooks/useIntentHandler' +import {QueryProvider} from '#/lib/react-query' import {Provider as StatsigProvider} from '#/lib/statsig/statsig' +import {ThemeProvider} from '#/lib/ThemeContext' +import I18nProvider from '#/locale/i18nProvider' import {logger} from '#/logger' +import {Provider as A11yProvider} from '#/state/a11y' +import {Provider as MutedThreadsProvider} from '#/state/cache/thread-mutes' +import {Provider as DialogStateProvider} from '#/state/dialogs' +import {listenSessionDropped} from '#/state/events' +import {Provider as InvitesStateProvider} from '#/state/invites' +import {Provider as LightboxStateProvider} from '#/state/lightbox' import {MessagesProvider} from '#/state/messages' +import {Provider as ModalStateProvider} from '#/state/modals' import {init as initPersistedState} from '#/state/persisted' +import {Provider as PrefsStateProvider} from '#/state/preferences' import {Provider as LabelDefsProvider} from '#/state/preferences/label-defs' import {Provider as ModerationOptsProvider} from '#/state/preferences/moderation-opts' -import {readLastActiveAccount} from '#/state/session/util' -import {useIntentHandler} from 'lib/hooks/useIntentHandler' -import {QueryProvider} from 'lib/react-query' -import {ThemeProvider} from 'lib/ThemeContext' -import {Provider as DialogStateProvider} from 'state/dialogs' -import {Provider as InvitesStateProvider} from 'state/invites' -import {Provider as LightboxStateProvider} from 'state/lightbox' -import {Provider as ModalStateProvider} from 'state/modals' -import {Provider as MutedThreadsProvider} from 'state/muted-threads' -import {Provider as PrefsStateProvider} from 'state/preferences' -import {Provider as UnreadNotifsProvider} from 'state/queries/notifications/unread' +import {Provider as UnreadNotifsProvider} from '#/state/queries/notifications/unread' import { Provider as SessionProvider, SessionAccount, useSession, useSessionApi, -} from 'state/session' -import {Provider as ShellStateProvider} from 'state/shell' -import {Provider as LoggedOutViewProvider} from 'state/shell/logged-out' -import {Provider as SelectedFeedProvider} from 'state/shell/selected-feed' -import * as Toast from 'view/com/util/Toast' -import {ToastContainer} from 'view/com/util/Toast.web' -import {Shell} from 'view/shell/index' +} from '#/state/session' +import {readLastActiveAccount} from '#/state/session/util' +import {Provider as ShellStateProvider} from '#/state/shell' +import {Provider as LoggedOutViewProvider} from '#/state/shell/logged-out' +import {Provider as ProgressGuideProvider} from '#/state/shell/progress-guide' +import {Provider as SelectedFeedProvider} from '#/state/shell/selected-feed' +import {Provider as StarterPackProvider} from '#/state/shell/starter-pack' +import {ActiveVideoProvider} from '#/view/com/util/post-embeds/ActiveVideoContext' +import * as Toast from '#/view/com/util/Toast' +import {ToastContainer} from '#/view/com/util/Toast.web' +import {Shell} from '#/view/shell/index' import {ThemeProvider as Alf} from '#/alf' import {useColorModeTheme} from '#/alf/util/useColorModeTheme' +import {useStarterPackEntry} from '#/components/hooks/useStarterPackEntry' import {Provider as PortalProvider} from '#/components/Portal' +import {Provider as TourProvider} from '#/tours' import {BackgroundNotificationPreferencesProvider} from '../modules/expo-background-notification-handler/src/BackgroundNotificationHandlerProvider' -import I18nProvider from './locale/i18nProvider' -import {listenSessionDropped} from './state/events' function InnerApp() { const [isReady, setIsReady] = React.useState(false) @@ -50,6 +57,7 @@ function InnerApp() { const theme = useColorModeTheme() const {_} = useLingui() useIntentHandler() + const hasCheckedReferrer = useStarterPackEntry() // init useEffect(() => { @@ -70,47 +78,60 @@ function InnerApp() { useEffect(() => { return listenSessionDropped(() => { - Toast.show(_(msg`Sorry! Your session expired. Please log in again.`)) + Toast.show( + _(msg`Sorry! Your session expired. Please log in again.`), + 'info', + ) }) }, [_]) // wait for session to resume - if (!isReady) return null + if (!isReady || !hasCheckedReferrer) return null return ( - - - - - - - - {/* LabelDefsProvider MUST come before ModerationOptsProvider */} - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + {/* LabelDefsProvider MUST come before ModerationOptsProvider */} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) } @@ -130,27 +151,29 @@ function App() { * that is set up in the InnerApp component above. */ return ( - - - - + + + + - + + + - - - - + + + + ) } diff --git a/src/Navigation.tsx b/src/Navigation.tsx index f68f8ed660..0d151427fb 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -22,7 +22,6 @@ import {buildStateObject} from 'lib/routes/helpers' import { AllNavigatorParams, BottomTabNavigatorParams, - FeedsTabNavigatorParams, FlatNavigatorParams, HomeTabNavigatorParams, MessagesTabNavigatorParams, @@ -32,7 +31,7 @@ import { } from 'lib/routes/types' import {RouteParams, State} from 'lib/routes/types' import {bskyTitle} from 'lib/strings/headings' -import {isAndroid, isNative} from 'platform/detection' +import {isAndroid, isNative, isWeb} from 'platform/detection' import {PreferencesExternalEmbeds} from '#/view/screens/PreferencesExternalEmbeds' import {AppPasswords} from 'view/screens/AppPasswords' import {ModerationBlockedAccounts} from 'view/screens/ModerationBlockedAccounts' @@ -40,9 +39,19 @@ import {ModerationMutedAccounts} from 'view/screens/ModerationMutedAccounts' import {PreferencesFollowingFeed} from 'view/screens/PreferencesFollowingFeed' import {PreferencesThreads} from 'view/screens/PreferencesThreads' import {SavedFeeds} from 'view/screens/SavedFeeds' +import {SharedPreferencesTesterScreen} from '#/screens/E2E/SharedPreferencesTesterScreen' import HashtagScreen from '#/screens/Hashtag' import {ModerationScreen} from '#/screens/Moderation' +import {ProfileKnownFollowersScreen} from '#/screens/Profile/KnownFollowers' import {ProfileLabelerLikedByScreen} from '#/screens/Profile/ProfileLabelerLikedBy' +import {AppearanceSettingsScreen} from '#/screens/Settings/AppearanceSettings' +import { + StarterPackScreen, + StarterPackScreenShort, +} from '#/screens/StarterPack/StarterPackScreen' +import {Wizard} from '#/screens/StarterPack/Wizard' +import {VideoDownloadScreen} from '#/components/VideoDownloadScreen' +import {Referrer} from '../modules/expo-bluesky-swiss-army' import {init as initAnalytics} from './lib/analytics/analytics' import {useWebScrollRestoration} from './lib/hooks/useWebScrollRestoration' import {attachRouteToLogEvents, logEvent} from './lib/statsig/statsig' @@ -54,8 +63,8 @@ import {useModalControls} from './state/modals' import {useUnreadNotifications} from './state/queries/notifications/unread' import {useSession} from './state/session' import { - setEmailConfirmationRequested, shouldRequestEmailConfirmation, + snoozeEmailConfirmationPrompt, } from './state/shell/reminders' import {AccessibilitySettingsScreen} from './view/screens/AccessibilitySettings' import {CommunityGuidelinesScreen} from './view/screens/CommunityGuidelines' @@ -69,6 +78,7 @@ import {LogScreen} from './view/screens/Log' import {ModerationModlistsScreen} from './view/screens/ModerationModlists' import {NotFoundScreen} from './view/screens/NotFound' import {NotificationsScreen} from './view/screens/Notifications' +import {NotificationsSettingsScreen} from './view/screens/NotificationsSettings' import {PostLikedByScreen} from './view/screens/PostLikedBy' import {PostRepostedByScreen} from './view/screens/PostRepostedBy' import {PostThreadScreen} from './view/screens/PostThread' @@ -91,7 +101,6 @@ const navigationRef = createNavigationContainerRef() const HomeTab = createNativeStackNavigatorWithAuth() const SearchTab = createNativeStackNavigatorWithAuth() -const FeedsTab = createNativeStackNavigatorWithAuth() const NotificationsTab = createNativeStackNavigatorWithAuth() const MyProfileTab = @@ -171,6 +180,13 @@ function commonScreens(Stack: typeof HomeTab, unreadCountLabel?: string) { title: title(msg`People followed by @${route.params.name}`), })} /> + ProfileKnownFollowersScreen} + options={({route}) => ({ + title: title(msg`Followers of @${route.params.name} that you know`), + })} + /> ProfileListScreen} @@ -222,6 +238,11 @@ function commonScreens(Stack: typeof HomeTab, unreadCountLabel?: string) { getComponent={() => DebugModScreen} options={{title: title(msg`Moderation states`), requireAuth: true}} /> + SharedPreferencesTesterScreen} + options={{title: title(msg`Shared Preferences Tester`)}} + /> LogScreen} @@ -291,6 +312,14 @@ function commonScreens(Stack: typeof HomeTab, unreadCountLabel?: string) { requireAuth: true, }} /> + AppearanceSettingsScreen} + options={{ + title: title(msg`Appearance Settings`), + requireAuth: true, + }} + /> HashtagScreen} @@ -306,6 +335,41 @@ function commonScreens(Stack: typeof HomeTab, unreadCountLabel?: string) { getComponent={() => MessagesSettingsScreen} options={{title: title(msg`Chat settings`), requireAuth: true}} /> + NotificationsSettingsScreen} + options={{title: title(msg`Notification settings`), requireAuth: true}} + /> + FeedsScreen} + options={{title: title(msg`Feeds`)}} + /> + StarterPackScreen} + options={{title: title(msg`Starter Pack`)}} + /> + StarterPackScreenShort} + options={{title: title(msg`Starter Pack`)}} + /> + Wizard} + options={{title: title(msg`Create a starter pack`), requireAuth: true}} + /> + Wizard} + options={{title: title(msg`Edit your starter pack`), requireAuth: true}} + /> + VideoDownloadScreen} + options={{title: title(msg`Download video`)}} + /> ) } @@ -330,7 +394,6 @@ function TabsNavigator() { tabBar={tabBar}> HomeTabNavigator} /> SearchTabNavigator} /> - FeedsTabNavigator} /> NotificationsTabNavigator} @@ -353,14 +416,15 @@ function HomeTabNavigator() { return ( HomeScreen} /> + HomeScreen} /> {commonScreens(HomeTab)} ) @@ -371,11 +435,11 @@ function SearchTabNavigator() { return ( SearchScreen} /> @@ -384,34 +448,16 @@ function SearchTabNavigator() { ) } -function FeedsTabNavigator() { - const pal = usePalette('default') - return ( - - FeedsScreen} /> - {commonScreens(FeedsTab as typeof HomeTab)} - - ) -} - function NotificationsTabNavigator() { const pal = usePalette('default') return ( MessagesScreen} - options={{requireAuth: true}} + options={({route}) => ({ + requireAuth: true, + animationTypeForReplace: route.params?.animation ?? 'push', + })} /> {commonScreens(MessagesTab as typeof HomeTab)} @@ -485,10 +534,11 @@ const FlatNavigator = () => { { getComponent={() => SearchScreen} options={{title: title(msg`Search`)}} /> - FeedsScreen} - options={{title: title(msg`Feeds`)}} - /> NotificationsScreen} @@ -516,6 +561,11 @@ const FlatNavigator = () => { getComponent={() => MessagesScreen} options={{title: title(msg`Messages`), requireAuth: true}} /> + HomeScreen} + options={{title: title(msg`Home`)}} + /> {commonScreens(Flat as typeof HomeTab, numUnread)} ) @@ -598,7 +648,7 @@ function RoutesContainer({children}: React.PropsWithChildren<{}>) { if (currentAccount && shouldRequestEmailConfirmation(currentAccount)) { openModal({name: 'verify-email', showReminder: true}) - setEmailConfirmationRequested() + snoozeEmailConfirmationPrompt() } } @@ -608,7 +658,7 @@ function RoutesContainer({children}: React.PropsWithChildren<{}>) { linking={LINKING} theme={theme} onStateChange={() => { - logEvent('router:navigate', { + logEvent('router:navigate:sampled', { from: prevLoggedRouteName.current, }) prevLoggedRouteName.current = getCurrentRouteName() @@ -617,7 +667,7 @@ function RoutesContainer({children}: React.PropsWithChildren<{}>) { attachRouteToLogEvents(getCurrentRouteName) logModuleInitTime() onReady() - logEvent('router:navigate', {}) + logEvent('router:navigate:sampled', {}) }}> {children} @@ -741,6 +791,17 @@ function logModuleInitTime() { initMs, }) + if (isWeb) { + const referrerInfo = Referrer.getReferrerInfo() + if (referrerInfo && referrerInfo.hostname !== 'bsky.app') { + logEvent('deepLink:referrerReceived', { + to: window.location.href, + referrer: referrerInfo?.referrer, + hostname: referrerInfo?.hostname, + }) + } + } + if (__DEV__) { // This log is noisy, so keep false committed const shouldLog = false diff --git a/src/alf/atoms.ts b/src/alf/atoms.ts index 3e5ddf049b..e918e370d8 100644 --- a/src/alf/atoms.ts +++ b/src/alf/atoms.ts @@ -1,4 +1,4 @@ -import {Platform} from 'react-native' +import {Platform, StyleSheet} from 'react-native' import * as tokens from '#/alf/tokens' import {native, web} from '#/alf/util/platform' @@ -55,6 +55,13 @@ export const atoms = { height: '100vh', }), + /* + * Theme-independent bg colors + */ + bg_transparent: { + backgroundColor: 'transparent', + }, + /* * Border radius */ @@ -137,6 +144,9 @@ export const atoms = { flex_shrink: { flexShrink: 1, }, + flex_shrink_0: { + flexShrink: 0, + }, justify_start: { justifyContent: 'flex-start', }, @@ -259,6 +269,9 @@ export const atoms = { font_bold: { fontWeight: tokens.fontWeight.bold, }, + font_heavy: { + fontWeight: tokens.fontWeight.heavy, + }, italic: { fontStyle: 'italic', }, @@ -270,19 +283,19 @@ export const atoms = { borderWidth: 0, }, border: { - borderWidth: 1, + borderWidth: StyleSheet.hairlineWidth, }, border_t: { - borderTopWidth: 1, + borderTopWidth: StyleSheet.hairlineWidth, }, border_b: { - borderBottomWidth: 1, + borderBottomWidth: StyleSheet.hairlineWidth, }, border_l: { - borderLeftWidth: 1, + borderLeftWidth: StyleSheet.hairlineWidth, }, border_r: { - borderRightWidth: 1, + borderRightWidth: StyleSheet.hairlineWidth, }, /* @@ -841,7 +854,7 @@ export const atoms = { marginRight: 'auto', }, /* - * Pointer events + * Pointer events & user select */ pointer_events_none: { pointerEvents: 'none', @@ -849,6 +862,15 @@ export const atoms = { pointer_events_auto: { pointerEvents: 'auto', }, + user_select_none: { + userSelect: 'none', + }, + user_select_text: { + userSelect: 'text', + }, + user_select_all: { + userSelect: 'all', + }, /* * Text decoration */ diff --git a/src/alf/index.tsx b/src/alf/index.tsx index f0a0ede7a3..ade2ce1451 100644 --- a/src/alf/index.tsx +++ b/src/alf/index.tsx @@ -1,12 +1,16 @@ import React from 'react' import {Dimensions} from 'react-native' -import * as themes from '#/alf/themes' -export * from '#/alf/types' -export * as tokens from '#/alf/tokens' +import {createThemes, defaultTheme} from '#/alf/themes' +import {Theme, ThemeName} from '#/alf/types' +import {BLUE_HUE, GREEN_HUE, RED_HUE} from '#/alf/util/colorGeneration' + export {atoms} from '#/alf/atoms' -export * from '#/alf/util/platform' +export * as tokens from '#/alf/tokens' +export * from '#/alf/types' export * from '#/alf/util/flatten' +export * from '#/alf/util/platform' +export * from '#/alf/util/themeSelector' type BreakpointName = keyof typeof breakpoints @@ -37,8 +41,8 @@ function getActiveBreakpoints({width}: {width: number}) { * Context */ export const Context = React.createContext<{ - themeName: themes.ThemeName - theme: themes.Theme + themeName: ThemeName + theme: Theme breakpoints: { active: BreakpointName | undefined gtPhone: boolean @@ -47,7 +51,7 @@ export const Context = React.createContext<{ } }>({ themeName: 'light', - theme: themes.light, + theme: defaultTheme, breakpoints: { active: undefined, gtPhone: false, @@ -59,7 +63,16 @@ export const Context = React.createContext<{ export function ThemeProvider({ children, theme: themeName, -}: React.PropsWithChildren<{theme: themes.ThemeName}>) { +}: React.PropsWithChildren<{theme: ThemeName}>) { + const themes = React.useMemo(() => { + return createThemes({ + hues: { + primary: BLUE_HUE, + negative: RED_HUE, + positive: GREEN_HUE, + }, + }) + }, []) const theme = themes[themeName] const [breakpoints, setBreakpoints] = React.useState(() => getActiveBreakpoints({width: Dimensions.get('window').width}), diff --git a/src/alf/themes.ts b/src/alf/themes.ts index 0c95a459ed..f5d2247f9f 100644 --- a/src/alf/themes.ts +++ b/src/alf/themes.ts @@ -1,456 +1,578 @@ -import * as tokens from '#/alf/tokens' -import type {Mutable} from '#/alf/types' import {atoms} from '#/alf/atoms' -import {BLUE_HUE, GREEN_HUE, RED_HUE} from '#/alf/util/colorGeneration' +import {Palette, Theme} from '#/alf/types' +import { + BLUE_HUE, + defaultScale, + dimScale, + GREEN_HUE, + RED_HUE, +} from '#/alf/util/colorGeneration' -export type ThemeName = 'light' | 'dim' | 'dark' -export type ReadonlyTheme = typeof light -export type Theme = Mutable -export type ReadonlyPalette = typeof lightPalette -export type Palette = Mutable - -export const lightPalette = { - white: tokens.color.gray_0, - black: tokens.color.gray_1000, - - contrast_25: tokens.color.gray_25, - contrast_50: tokens.color.gray_50, - contrast_100: tokens.color.gray_100, - contrast_200: tokens.color.gray_200, - contrast_300: tokens.color.gray_300, - contrast_400: tokens.color.gray_400, - contrast_500: tokens.color.gray_500, - contrast_600: tokens.color.gray_600, - contrast_700: tokens.color.gray_700, - contrast_800: tokens.color.gray_800, - contrast_900: tokens.color.gray_900, - contrast_950: tokens.color.gray_950, - contrast_975: tokens.color.gray_975, - - primary_25: tokens.color.blue_25, - primary_50: tokens.color.blue_50, - primary_100: tokens.color.blue_100, - primary_200: tokens.color.blue_200, - primary_300: tokens.color.blue_300, - primary_400: tokens.color.blue_400, - primary_500: tokens.color.blue_500, - primary_600: tokens.color.blue_600, - primary_700: tokens.color.blue_700, - primary_800: tokens.color.blue_800, - primary_900: tokens.color.blue_900, - primary_950: tokens.color.blue_950, - primary_975: tokens.color.blue_975, - - positive_25: tokens.color.green_25, - positive_50: tokens.color.green_50, - positive_100: tokens.color.green_100, - positive_200: tokens.color.green_200, - positive_300: tokens.color.green_300, - positive_400: tokens.color.green_400, - positive_500: tokens.color.green_500, - positive_600: tokens.color.green_600, - positive_700: tokens.color.green_700, - positive_800: tokens.color.green_800, - positive_900: tokens.color.green_900, - positive_950: tokens.color.green_950, - positive_975: tokens.color.green_975, - - negative_25: tokens.color.red_25, - negative_50: tokens.color.red_50, - negative_100: tokens.color.red_100, - negative_200: tokens.color.red_200, - negative_300: tokens.color.red_300, - negative_400: tokens.color.red_400, - negative_500: tokens.color.red_500, - negative_600: tokens.color.red_600, - negative_700: tokens.color.red_700, - negative_800: tokens.color.red_800, - negative_900: tokens.color.red_900, - negative_950: tokens.color.red_950, - negative_975: tokens.color.red_975, -} as const - -export const darkPalette: Palette = { - white: tokens.color.gray_0, - black: tokens.color.trueBlack, - - contrast_25: tokens.color.gray_1000, - contrast_50: tokens.color.gray_975, - contrast_100: tokens.color.gray_950, - contrast_200: tokens.color.gray_900, - contrast_300: tokens.color.gray_800, - contrast_400: tokens.color.gray_700, - contrast_500: tokens.color.gray_600, - contrast_600: tokens.color.gray_500, - contrast_700: tokens.color.gray_400, - contrast_800: tokens.color.gray_300, - contrast_900: tokens.color.gray_200, - contrast_950: tokens.color.gray_100, - contrast_975: tokens.color.gray_50, - - primary_25: tokens.color.blue_25, - primary_50: tokens.color.blue_50, - primary_100: tokens.color.blue_100, - primary_200: tokens.color.blue_200, - primary_300: tokens.color.blue_300, - primary_400: tokens.color.blue_400, - primary_500: tokens.color.blue_500, - primary_600: tokens.color.blue_600, - primary_700: tokens.color.blue_700, - primary_800: tokens.color.blue_800, - primary_900: tokens.color.blue_900, - primary_950: tokens.color.blue_950, - primary_975: tokens.color.blue_975, - - positive_25: tokens.color.green_25, - positive_50: tokens.color.green_50, - positive_100: tokens.color.green_100, - positive_200: tokens.color.green_200, - positive_300: tokens.color.green_300, - positive_400: tokens.color.green_400, - positive_500: tokens.color.green_500, - positive_600: tokens.color.green_600, - positive_700: tokens.color.green_700, - positive_800: tokens.color.green_800, - positive_900: tokens.color.green_900, - positive_950: tokens.color.green_950, - positive_975: tokens.color.green_975, - - negative_25: tokens.color.red_25, - negative_50: tokens.color.red_50, - negative_100: tokens.color.red_100, - negative_200: tokens.color.red_200, - negative_300: tokens.color.red_300, - negative_400: tokens.color.red_400, - negative_500: tokens.color.red_500, - negative_600: tokens.color.red_600, - negative_700: tokens.color.red_700, - negative_800: tokens.color.red_800, - negative_900: tokens.color.red_900, - negative_950: tokens.color.red_950, - negative_975: tokens.color.red_975, -} as const - -export const dimPalette: Palette = { - ...darkPalette, - black: `hsl(${BLUE_HUE}, 28%, ${tokens.dimScale[0]}%)`, - - contrast_25: `hsl(${BLUE_HUE}, 28%, ${tokens.dimScale[1]}%)`, - contrast_50: `hsl(${BLUE_HUE}, 28%, ${tokens.dimScale[2]}%)`, - contrast_100: `hsl(${BLUE_HUE}, 28%, ${tokens.dimScale[3]}%)`, - contrast_200: `hsl(${BLUE_HUE}, 28%, ${tokens.dimScale[4]}%)`, - contrast_300: `hsl(${BLUE_HUE}, 24%, ${tokens.dimScale[5]}%)`, - contrast_400: `hsl(${BLUE_HUE}, 24%, ${tokens.dimScale[6]}%)`, - contrast_500: `hsl(${BLUE_HUE}, 20%, ${tokens.dimScale[7]}%)`, - contrast_600: `hsl(${BLUE_HUE}, 20%, ${tokens.dimScale[8]}%)`, - contrast_700: `hsl(${BLUE_HUE}, 20%, ${tokens.dimScale[9]}%)`, - contrast_800: `hsl(${BLUE_HUE}, 20%, ${tokens.dimScale[10]}%)`, - contrast_900: `hsl(${BLUE_HUE}, 20%, ${tokens.dimScale[11]}%)`, - contrast_950: `hsl(${BLUE_HUE}, 20%, ${tokens.dimScale[12]}%)`, - contrast_975: `hsl(${BLUE_HUE}, 20%, ${tokens.dimScale[13]}%)`, - - primary_25: `hsl(${BLUE_HUE}, 99%, ${tokens.dimScale[13]}%)`, - primary_50: `hsl(${BLUE_HUE}, 99%, ${tokens.dimScale[12]}%)`, - primary_100: `hsl(${BLUE_HUE}, 99%, ${tokens.dimScale[11]}%)`, - primary_200: `hsl(${BLUE_HUE}, 99%, ${tokens.dimScale[10]}%)`, - primary_300: `hsl(${BLUE_HUE}, 99%, ${tokens.dimScale[9]}%)`, - primary_400: `hsl(${BLUE_HUE}, 99%, ${tokens.dimScale[8]}%)`, - primary_500: `hsl(${BLUE_HUE}, 99%, ${tokens.dimScale[7]}%)`, - primary_600: `hsl(${BLUE_HUE}, 95%, ${tokens.dimScale[6]}%)`, - primary_700: `hsl(${BLUE_HUE}, 90%, ${tokens.dimScale[5]}%)`, - primary_800: `hsl(${BLUE_HUE}, 82%, ${tokens.dimScale[4]}%)`, - primary_900: `hsl(${BLUE_HUE}, 70%, ${tokens.dimScale[3]}%)`, - primary_950: `hsl(${BLUE_HUE}, 60%, ${tokens.dimScale[2]}%)`, - primary_975: `hsl(${BLUE_HUE}, 50%, ${tokens.dimScale[1]}%)`, - - positive_25: `hsl(${GREEN_HUE}, 82%, ${tokens.dimScale[13]}%)`, - positive_50: `hsl(${GREEN_HUE}, 82%, ${tokens.dimScale[12]}%)`, - positive_100: `hsl(${GREEN_HUE}, 82%, ${tokens.dimScale[11]}%)`, - positive_200: `hsl(${GREEN_HUE}, 82%, ${tokens.dimScale[10]}%)`, - positive_300: `hsl(${GREEN_HUE}, 82%, ${tokens.dimScale[9]}%)`, - positive_400: `hsl(${GREEN_HUE}, 82%, ${tokens.dimScale[8]}%)`, - positive_500: `hsl(${GREEN_HUE}, 82%, ${tokens.dimScale[7]}%)`, - positive_600: `hsl(${GREEN_HUE}, 82%, ${tokens.dimScale[6]}%)`, - positive_700: `hsl(${GREEN_HUE}, 82%, ${tokens.dimScale[5]}%)`, - positive_800: `hsl(${GREEN_HUE}, 82%, ${tokens.dimScale[4]}%)`, - positive_900: `hsl(${GREEN_HUE}, 70%, ${tokens.dimScale[3]}%)`, - positive_950: `hsl(${GREEN_HUE}, 60%, ${tokens.dimScale[2]}%)`, - positive_975: `hsl(${GREEN_HUE}, 50%, ${tokens.dimScale[1]}%)`, - - negative_25: `hsl(${RED_HUE}, 91%, ${tokens.dimScale[13]}%)`, - negative_50: `hsl(${RED_HUE}, 91%, ${tokens.dimScale[12]}%)`, - negative_100: `hsl(${RED_HUE}, 91%, ${tokens.dimScale[11]}%)`, - negative_200: `hsl(${RED_HUE}, 91%, ${tokens.dimScale[10]}%)`, - negative_300: `hsl(${RED_HUE}, 91%, ${tokens.dimScale[9]}%)`, - negative_400: `hsl(${RED_HUE}, 91%, ${tokens.dimScale[8]}%)`, - negative_500: `hsl(${RED_HUE}, 91%, ${tokens.dimScale[7]}%)`, - negative_600: `hsl(${RED_HUE}, 91%, ${tokens.dimScale[6]}%)`, - negative_700: `hsl(${RED_HUE}, 91%, ${tokens.dimScale[5]}%)`, - negative_800: `hsl(${RED_HUE}, 88%, ${tokens.dimScale[4]}%)`, - negative_900: `hsl(${RED_HUE}, 84%, ${tokens.dimScale[3]}%)`, - negative_950: `hsl(${RED_HUE}, 80%, ${tokens.dimScale[2]}%)`, - negative_975: `hsl(${RED_HUE}, 70%, ${tokens.dimScale[1]}%)`, -} as const - -export const light = { - name: 'light', - palette: lightPalette, - atoms: { - text: { - color: lightPalette.black, - }, - text_contrast_low: { - color: lightPalette.contrast_400, - }, - text_contrast_medium: { - color: lightPalette.contrast_700, - }, - text_contrast_high: { - color: lightPalette.contrast_900, - }, - text_inverted: { - color: lightPalette.white, - }, - bg: { - backgroundColor: lightPalette.white, - }, - bg_contrast_25: { - backgroundColor: lightPalette.contrast_25, - }, - bg_contrast_50: { - backgroundColor: lightPalette.contrast_50, - }, - bg_contrast_100: { - backgroundColor: lightPalette.contrast_100, - }, - bg_contrast_200: { - backgroundColor: lightPalette.contrast_200, - }, - bg_contrast_300: { - backgroundColor: lightPalette.contrast_300, - }, - bg_contrast_400: { - backgroundColor: lightPalette.contrast_400, - }, - bg_contrast_500: { - backgroundColor: lightPalette.contrast_500, - }, - bg_contrast_600: { - backgroundColor: lightPalette.contrast_600, - }, - bg_contrast_700: { - backgroundColor: lightPalette.contrast_700, - }, - bg_contrast_800: { - backgroundColor: lightPalette.contrast_800, - }, - bg_contrast_900: { - backgroundColor: lightPalette.contrast_900, - }, - bg_contrast_950: { - backgroundColor: lightPalette.contrast_950, - }, - bg_contrast_975: { - backgroundColor: lightPalette.contrast_975, - }, - border_contrast_low: { - borderColor: lightPalette.contrast_100, - }, - border_contrast_medium: { - borderColor: lightPalette.contrast_200, - }, - border_contrast_high: { - borderColor: lightPalette.contrast_300, - }, - shadow_sm: { - ...atoms.shadow_sm, - shadowColor: lightPalette.black, - }, - shadow_md: { - ...atoms.shadow_md, - shadowColor: lightPalette.black, - }, - shadow_lg: { - ...atoms.shadow_lg, - shadowColor: lightPalette.black, - }, +const themes = createThemes({ + hues: { + primary: BLUE_HUE, + negative: RED_HUE, + positive: GREEN_HUE, }, -} +}) -export const dark: Theme = { - name: 'dark', - palette: darkPalette, - atoms: { - text: { - color: darkPalette.white, - }, - text_contrast_low: { - color: darkPalette.contrast_400, - }, - text_contrast_medium: { - color: darkPalette.contrast_700, - }, - text_contrast_high: { - color: darkPalette.contrast_900, - }, - text_inverted: { - color: darkPalette.black, - }, - bg: { - backgroundColor: darkPalette.black, - }, - bg_contrast_25: { - backgroundColor: darkPalette.contrast_25, - }, - bg_contrast_50: { - backgroundColor: darkPalette.contrast_50, - }, - bg_contrast_100: { - backgroundColor: darkPalette.contrast_100, - }, - bg_contrast_200: { - backgroundColor: darkPalette.contrast_200, - }, - bg_contrast_300: { - backgroundColor: darkPalette.contrast_300, - }, - bg_contrast_400: { - backgroundColor: darkPalette.contrast_400, - }, - bg_contrast_500: { - backgroundColor: darkPalette.contrast_500, - }, - bg_contrast_600: { - backgroundColor: darkPalette.contrast_600, - }, - bg_contrast_700: { - backgroundColor: darkPalette.contrast_700, - }, - bg_contrast_800: { - backgroundColor: darkPalette.contrast_800, - }, - bg_contrast_900: { - backgroundColor: darkPalette.contrast_900, - }, - bg_contrast_950: { - backgroundColor: darkPalette.contrast_950, - }, - bg_contrast_975: { - backgroundColor: darkPalette.contrast_975, - }, - border_contrast_low: { - borderColor: darkPalette.contrast_100, - }, - border_contrast_medium: { - borderColor: darkPalette.contrast_200, - }, - border_contrast_high: { - borderColor: darkPalette.contrast_300, - }, - shadow_sm: { - ...atoms.shadow_sm, - shadowOpacity: 0.7, - shadowColor: tokens.color.trueBlack, - }, - shadow_md: { - ...atoms.shadow_md, - shadowOpacity: 0.7, - shadowColor: tokens.color.trueBlack, - }, - shadow_lg: { - ...atoms.shadow_lg, - shadowOpacity: 0.7, - shadowColor: tokens.color.trueBlack, - }, - }, -} +/** + * @deprecated use ALF and access palette from `useTheme()` + */ +export const lightPalette = themes.lightPalette +/** + * @deprecated use ALF and access palette from `useTheme()` + */ +export const darkPalette = themes.darkPalette +/** + * @deprecated use ALF and access palette from `useTheme()` + */ +export const dimPalette = themes.dimPalette +/** + * @deprecated use ALF and access theme from `useTheme()` + */ +export const light = themes.light +/** + * @deprecated use ALF and access theme from `useTheme()` + */ +export const dark = themes.dark +/** + * @deprecated use ALF and access theme from `useTheme()` + */ +export const dim = themes.dim -export const dim: Theme = { - ...dark, - name: 'dim', - palette: dimPalette, - atoms: { - ...dark.atoms, - text: { - color: dimPalette.white, +export const defaultTheme = themes.light + +export function createThemes({ + hues, +}: { + hues: { + primary: number + negative: number + positive: number + } +}): { + lightPalette: Palette + darkPalette: Palette + dimPalette: Palette + light: Theme + dark: Theme + dim: Theme +} { + const color = { + trueBlack: '#000000', + + gray_0: `hsl(${hues.primary}, 20%, ${defaultScale[14]}%)`, + gray_25: `hsl(${hues.primary}, 20%, ${defaultScale[13]}%)`, + gray_50: `hsl(${hues.primary}, 20%, ${defaultScale[12]}%)`, + gray_100: `hsl(${hues.primary}, 20%, ${defaultScale[11]}%)`, + gray_200: `hsl(${hues.primary}, 20%, ${defaultScale[10]}%)`, + gray_300: `hsl(${hues.primary}, 20%, ${defaultScale[9]}%)`, + gray_400: `hsl(${hues.primary}, 20%, ${defaultScale[8]}%)`, + gray_500: `hsl(${hues.primary}, 20%, ${defaultScale[7]}%)`, + gray_600: `hsl(${hues.primary}, 24%, ${defaultScale[6]}%)`, + gray_700: `hsl(${hues.primary}, 24%, ${defaultScale[5]}%)`, + gray_800: `hsl(${hues.primary}, 28%, ${defaultScale[4]}%)`, + gray_900: `hsl(${hues.primary}, 28%, ${defaultScale[3]}%)`, + gray_950: `hsl(${hues.primary}, 28%, ${defaultScale[2]}%)`, + gray_975: `hsl(${hues.primary}, 28%, ${defaultScale[1]}%)`, + gray_1000: `hsl(${hues.primary}, 28%, ${defaultScale[0]}%)`, + + primary_25: `hsl(${hues.primary}, 99%, 97%)`, + primary_50: `hsl(${hues.primary}, 99%, 95%)`, + primary_100: `hsl(${hues.primary}, 99%, 90%)`, + primary_200: `hsl(${hues.primary}, 99%, 80%)`, + primary_300: `hsl(${hues.primary}, 99%, 70%)`, + primary_400: `hsl(${hues.primary}, 99%, 60%)`, + primary_500: `hsl(${hues.primary}, 99%, 53%)`, + primary_600: `hsl(${hues.primary}, 99%, 42%)`, + primary_700: `hsl(${hues.primary}, 99%, 34%)`, + primary_800: `hsl(${hues.primary}, 99%, 26%)`, + primary_900: `hsl(${hues.primary}, 99%, 18%)`, + primary_950: `hsl(${hues.primary}, 99%, 10%)`, + primary_975: `hsl(${hues.primary}, 99%, 7%)`, + + green_25: `hsl(${hues.positive}, 82%, 97%)`, + green_50: `hsl(${hues.positive}, 82%, 95%)`, + green_100: `hsl(${hues.positive}, 82%, 90%)`, + green_200: `hsl(${hues.positive}, 82%, 80%)`, + green_300: `hsl(${hues.positive}, 82%, 70%)`, + green_400: `hsl(${hues.positive}, 82%, 60%)`, + green_500: `hsl(${hues.positive}, 82%, 50%)`, + green_600: `hsl(${hues.positive}, 82%, 42%)`, + green_700: `hsl(${hues.positive}, 82%, 34%)`, + green_800: `hsl(${hues.positive}, 82%, 26%)`, + green_900: `hsl(${hues.positive}, 82%, 18%)`, + green_950: `hsl(${hues.positive}, 82%, 10%)`, + green_975: `hsl(${hues.positive}, 82%, 7%)`, + + red_25: `hsl(${hues.negative}, 91%, 97%)`, + red_50: `hsl(${hues.negative}, 91%, 95%)`, + red_100: `hsl(${hues.negative}, 91%, 90%)`, + red_200: `hsl(${hues.negative}, 91%, 80%)`, + red_300: `hsl(${hues.negative}, 91%, 70%)`, + red_400: `hsl(${hues.negative}, 91%, 60%)`, + red_500: `hsl(${hues.negative}, 91%, 50%)`, + red_600: `hsl(${hues.negative}, 91%, 42%)`, + red_700: `hsl(${hues.negative}, 91%, 34%)`, + red_800: `hsl(${hues.negative}, 91%, 26%)`, + red_900: `hsl(${hues.negative}, 91%, 18%)`, + red_950: `hsl(${hues.negative}, 91%, 10%)`, + red_975: `hsl(${hues.negative}, 91%, 7%)`, + } as const + + const lightPalette = { + white: color.gray_0, + black: color.gray_1000, + + contrast_25: color.gray_25, + contrast_50: color.gray_50, + contrast_100: color.gray_100, + contrast_200: color.gray_200, + contrast_300: color.gray_300, + contrast_400: color.gray_400, + contrast_500: color.gray_500, + contrast_600: color.gray_600, + contrast_700: color.gray_700, + contrast_800: color.gray_800, + contrast_900: color.gray_900, + contrast_950: color.gray_950, + contrast_975: color.gray_975, + + primary_25: color.primary_25, + primary_50: color.primary_50, + primary_100: color.primary_100, + primary_200: color.primary_200, + primary_300: color.primary_300, + primary_400: color.primary_400, + primary_500: color.primary_500, + primary_600: color.primary_600, + primary_700: color.primary_700, + primary_800: color.primary_800, + primary_900: color.primary_900, + primary_950: color.primary_950, + primary_975: color.primary_975, + + positive_25: color.green_25, + positive_50: color.green_50, + positive_100: color.green_100, + positive_200: color.green_200, + positive_300: color.green_300, + positive_400: color.green_400, + positive_500: color.green_500, + positive_600: color.green_600, + positive_700: color.green_700, + positive_800: color.green_800, + positive_900: color.green_900, + positive_950: color.green_950, + positive_975: color.green_975, + + negative_25: color.red_25, + negative_50: color.red_50, + negative_100: color.red_100, + negative_200: color.red_200, + negative_300: color.red_300, + negative_400: color.red_400, + negative_500: color.red_500, + negative_600: color.red_600, + negative_700: color.red_700, + negative_800: color.red_800, + negative_900: color.red_900, + negative_950: color.red_950, + negative_975: color.red_975, + } as const + + const darkPalette: Palette = { + white: color.gray_0, + black: color.trueBlack, + + contrast_25: color.gray_975, + contrast_50: color.gray_950, + contrast_100: color.gray_900, + contrast_200: color.gray_800, + contrast_300: color.gray_700, + contrast_400: color.gray_600, + contrast_500: color.gray_500, + contrast_600: color.gray_400, + contrast_700: color.gray_300, + contrast_800: color.gray_200, + contrast_900: color.gray_100, + contrast_950: color.gray_50, + contrast_975: color.gray_25, + + primary_25: color.primary_975, + primary_50: color.primary_950, + primary_100: color.primary_900, + primary_200: color.primary_800, + primary_300: color.primary_700, + primary_400: color.primary_600, + primary_500: color.primary_500, + primary_600: color.primary_400, + primary_700: color.primary_300, + primary_800: color.primary_200, + primary_900: color.primary_100, + primary_950: color.primary_50, + primary_975: color.primary_25, + + positive_25: color.green_975, + positive_50: color.green_950, + positive_100: color.green_900, + positive_200: color.green_800, + positive_300: color.green_700, + positive_400: color.green_600, + positive_500: color.green_500, + positive_600: color.green_400, + positive_700: color.green_300, + positive_800: color.green_200, + positive_900: color.green_100, + positive_950: color.green_50, + positive_975: color.green_25, + + negative_25: color.red_975, + negative_50: color.red_950, + negative_100: color.red_900, + negative_200: color.red_800, + negative_300: color.red_700, + negative_400: color.red_600, + negative_500: color.red_500, + negative_600: color.red_400, + negative_700: color.red_300, + negative_800: color.red_200, + negative_900: color.red_100, + negative_950: color.red_50, + negative_975: color.red_25, + } as const + + const dimPalette: Palette = { + ...darkPalette, + black: `hsl(${hues.primary}, 28%, ${dimScale[0]}%)`, + + contrast_25: `hsl(${hues.primary}, 28%, ${dimScale[1]}%)`, + contrast_50: `hsl(${hues.primary}, 28%, ${dimScale[2]}%)`, + contrast_100: `hsl(${hues.primary}, 28%, ${dimScale[3]}%)`, + contrast_200: `hsl(${hues.primary}, 28%, ${dimScale[4]}%)`, + contrast_300: `hsl(${hues.primary}, 24%, ${dimScale[5]}%)`, + contrast_400: `hsl(${hues.primary}, 24%, ${dimScale[6]}%)`, + contrast_500: `hsl(${hues.primary}, 20%, ${dimScale[7]}%)`, + contrast_600: `hsl(${hues.primary}, 20%, ${dimScale[8]}%)`, + contrast_700: `hsl(${hues.primary}, 20%, ${dimScale[9]}%)`, + contrast_800: `hsl(${hues.primary}, 20%, ${dimScale[10]}%)`, + contrast_900: `hsl(${hues.primary}, 20%, ${dimScale[11]}%)`, + contrast_950: `hsl(${hues.primary}, 20%, ${dimScale[12]}%)`, + contrast_975: `hsl(${hues.primary}, 20%, ${dimScale[13]}%)`, + + primary_25: `hsl(${hues.primary}, 50%, ${dimScale[1]}%)`, + primary_50: `hsl(${hues.primary}, 60%, ${dimScale[2]}%)`, + primary_100: `hsl(${hues.primary}, 70%, ${dimScale[3]}%)`, + primary_200: `hsl(${hues.primary}, 82%, ${dimScale[4]}%)`, + primary_300: `hsl(${hues.primary}, 90%, ${dimScale[5]}%)`, + primary_400: `hsl(${hues.primary}, 95%, ${dimScale[6]}%)`, + primary_500: `hsl(${hues.primary}, 99%, ${dimScale[7]}%)`, + primary_600: `hsl(${hues.primary}, 99%, ${dimScale[8]}%)`, + primary_700: `hsl(${hues.primary}, 99%, ${dimScale[9]}%)`, + primary_800: `hsl(${hues.primary}, 99%, ${dimScale[10]}%)`, + primary_900: `hsl(${hues.primary}, 99%, ${dimScale[11]}%)`, + primary_950: `hsl(${hues.primary}, 99%, ${dimScale[12]}%)`, + primary_975: `hsl(${hues.primary}, 99%, ${dimScale[13]}%)`, + + positive_25: `hsl(${hues.positive}, 50%, ${dimScale[1]}%)`, + positive_50: `hsl(${hues.positive}, 60%, ${dimScale[2]}%)`, + positive_100: `hsl(${hues.positive}, 70%, ${dimScale[3]}%)`, + positive_200: `hsl(${hues.positive}, 82%, ${dimScale[4]}%)`, + positive_300: `hsl(${hues.positive}, 82%, ${dimScale[5]}%)`, + positive_400: `hsl(${hues.positive}, 82%, ${dimScale[6]}%)`, + positive_500: `hsl(${hues.positive}, 82%, ${dimScale[7]}%)`, + positive_600: `hsl(${hues.positive}, 82%, ${dimScale[8]}%)`, + positive_700: `hsl(${hues.positive}, 82%, ${dimScale[9]}%)`, + positive_800: `hsl(${hues.positive}, 82%, ${dimScale[10]}%)`, + positive_900: `hsl(${hues.positive}, 82%, ${dimScale[11]}%)`, + positive_950: `hsl(${hues.positive}, 82%, ${dimScale[12]}%)`, + positive_975: `hsl(${hues.positive}, 82%, ${dimScale[13]}%)`, + + negative_25: `hsl(${hues.negative}, 70%, ${dimScale[1]}%)`, + negative_50: `hsl(${hues.negative}, 80%, ${dimScale[2]}%)`, + negative_100: `hsl(${hues.negative}, 84%, ${dimScale[3]}%)`, + negative_200: `hsl(${hues.negative}, 88%, ${dimScale[4]}%)`, + negative_300: `hsl(${hues.negative}, 91%, ${dimScale[5]}%)`, + negative_400: `hsl(${hues.negative}, 91%, ${dimScale[6]}%)`, + negative_500: `hsl(${hues.negative}, 91%, ${dimScale[7]}%)`, + negative_600: `hsl(${hues.negative}, 91%, ${dimScale[8]}%)`, + negative_700: `hsl(${hues.negative}, 91%, ${dimScale[9]}%)`, + negative_800: `hsl(${hues.negative}, 91%, ${dimScale[10]}%)`, + negative_900: `hsl(${hues.negative}, 91%, ${dimScale[11]}%)`, + negative_950: `hsl(${hues.negative}, 91%, ${dimScale[12]}%)`, + negative_975: `hsl(${hues.negative}, 91%, ${dimScale[13]}%)`, + } as const + + const light: Theme = { + name: 'light', + palette: lightPalette, + atoms: { + text: { + color: lightPalette.black, + }, + text_contrast_low: { + color: lightPalette.contrast_400, + }, + text_contrast_medium: { + color: lightPalette.contrast_700, + }, + text_contrast_high: { + color: lightPalette.contrast_900, + }, + text_inverted: { + color: lightPalette.white, + }, + bg: { + backgroundColor: lightPalette.white, + }, + bg_contrast_25: { + backgroundColor: lightPalette.contrast_25, + }, + bg_contrast_50: { + backgroundColor: lightPalette.contrast_50, + }, + bg_contrast_100: { + backgroundColor: lightPalette.contrast_100, + }, + bg_contrast_200: { + backgroundColor: lightPalette.contrast_200, + }, + bg_contrast_300: { + backgroundColor: lightPalette.contrast_300, + }, + bg_contrast_400: { + backgroundColor: lightPalette.contrast_400, + }, + bg_contrast_500: { + backgroundColor: lightPalette.contrast_500, + }, + bg_contrast_600: { + backgroundColor: lightPalette.contrast_600, + }, + bg_contrast_700: { + backgroundColor: lightPalette.contrast_700, + }, + bg_contrast_800: { + backgroundColor: lightPalette.contrast_800, + }, + bg_contrast_900: { + backgroundColor: lightPalette.contrast_900, + }, + bg_contrast_950: { + backgroundColor: lightPalette.contrast_950, + }, + bg_contrast_975: { + backgroundColor: lightPalette.contrast_975, + }, + border_contrast_low: { + borderColor: lightPalette.contrast_100, + }, + border_contrast_medium: { + borderColor: lightPalette.contrast_200, + }, + border_contrast_high: { + borderColor: lightPalette.contrast_300, + }, + shadow_sm: { + ...atoms.shadow_sm, + shadowColor: lightPalette.black, + }, + shadow_md: { + ...atoms.shadow_md, + shadowColor: lightPalette.black, + }, + shadow_lg: { + ...atoms.shadow_lg, + shadowColor: lightPalette.black, + }, }, - text_contrast_low: { - color: dimPalette.contrast_400, + } + + const dark: Theme = { + name: 'dark', + palette: darkPalette, + atoms: { + text: { + color: darkPalette.white, + }, + text_contrast_low: { + color: darkPalette.contrast_400, + }, + text_contrast_medium: { + color: darkPalette.contrast_600, + }, + text_contrast_high: { + color: darkPalette.contrast_900, + }, + text_inverted: { + color: darkPalette.black, + }, + bg: { + backgroundColor: darkPalette.black, + }, + bg_contrast_25: { + backgroundColor: darkPalette.contrast_25, + }, + bg_contrast_50: { + backgroundColor: darkPalette.contrast_50, + }, + bg_contrast_100: { + backgroundColor: darkPalette.contrast_100, + }, + bg_contrast_200: { + backgroundColor: darkPalette.contrast_200, + }, + bg_contrast_300: { + backgroundColor: darkPalette.contrast_300, + }, + bg_contrast_400: { + backgroundColor: darkPalette.contrast_400, + }, + bg_contrast_500: { + backgroundColor: darkPalette.contrast_500, + }, + bg_contrast_600: { + backgroundColor: darkPalette.contrast_600, + }, + bg_contrast_700: { + backgroundColor: darkPalette.contrast_700, + }, + bg_contrast_800: { + backgroundColor: darkPalette.contrast_800, + }, + bg_contrast_900: { + backgroundColor: darkPalette.contrast_900, + }, + bg_contrast_950: { + backgroundColor: darkPalette.contrast_950, + }, + bg_contrast_975: { + backgroundColor: darkPalette.contrast_975, + }, + border_contrast_low: { + borderColor: darkPalette.contrast_100, + }, + border_contrast_medium: { + borderColor: darkPalette.contrast_200, + }, + border_contrast_high: { + borderColor: darkPalette.contrast_300, + }, + shadow_sm: { + ...atoms.shadow_sm, + shadowOpacity: 0.7, + shadowColor: color.trueBlack, + }, + shadow_md: { + ...atoms.shadow_md, + shadowOpacity: 0.7, + shadowColor: color.trueBlack, + }, + shadow_lg: { + ...atoms.shadow_lg, + shadowOpacity: 0.7, + shadowColor: color.trueBlack, + }, }, - text_contrast_medium: { - color: dimPalette.contrast_700, + } + + const dim: Theme = { + ...dark, + name: 'dim', + palette: dimPalette, + atoms: { + ...dark.atoms, + text: { + color: dimPalette.white, + }, + text_contrast_low: { + color: dimPalette.contrast_400, + }, + text_contrast_medium: { + color: dimPalette.contrast_700, + }, + text_contrast_high: { + color: dimPalette.contrast_900, + }, + text_inverted: { + color: dimPalette.black, + }, + bg: { + backgroundColor: dimPalette.black, + }, + bg_contrast_25: { + backgroundColor: dimPalette.contrast_25, + }, + bg_contrast_50: { + backgroundColor: dimPalette.contrast_50, + }, + bg_contrast_100: { + backgroundColor: dimPalette.contrast_100, + }, + bg_contrast_200: { + backgroundColor: dimPalette.contrast_200, + }, + bg_contrast_300: { + backgroundColor: dimPalette.contrast_300, + }, + bg_contrast_400: { + backgroundColor: dimPalette.contrast_400, + }, + bg_contrast_500: { + backgroundColor: dimPalette.contrast_500, + }, + bg_contrast_600: { + backgroundColor: dimPalette.contrast_600, + }, + bg_contrast_700: { + backgroundColor: dimPalette.contrast_700, + }, + bg_contrast_800: { + backgroundColor: dimPalette.contrast_800, + }, + bg_contrast_900: { + backgroundColor: dimPalette.contrast_900, + }, + bg_contrast_950: { + backgroundColor: dimPalette.contrast_950, + }, + bg_contrast_975: { + backgroundColor: dimPalette.contrast_975, + }, + border_contrast_low: { + borderColor: dimPalette.contrast_100, + }, + border_contrast_medium: { + borderColor: dimPalette.contrast_200, + }, + border_contrast_high: { + borderColor: dimPalette.contrast_300, + }, + shadow_sm: { + ...atoms.shadow_sm, + shadowOpacity: 0.7, + shadowColor: `hsl(${hues.primary}, 28%, 6%)`, + }, + shadow_md: { + ...atoms.shadow_md, + shadowOpacity: 0.7, + shadowColor: `hsl(${hues.primary}, 28%, 6%)`, + }, + shadow_lg: { + ...atoms.shadow_lg, + shadowOpacity: 0.7, + shadowColor: `hsl(${hues.primary}, 28%, 6%)`, + }, }, - text_contrast_high: { - color: dimPalette.contrast_900, - }, - text_inverted: { - color: dimPalette.black, - }, - bg: { - backgroundColor: dimPalette.black, - }, - bg_contrast_25: { - backgroundColor: dimPalette.contrast_25, - }, - bg_contrast_50: { - backgroundColor: dimPalette.contrast_50, - }, - bg_contrast_100: { - backgroundColor: dimPalette.contrast_100, - }, - bg_contrast_200: { - backgroundColor: dimPalette.contrast_200, - }, - bg_contrast_300: { - backgroundColor: dimPalette.contrast_300, - }, - bg_contrast_400: { - backgroundColor: dimPalette.contrast_400, - }, - bg_contrast_500: { - backgroundColor: dimPalette.contrast_500, - }, - bg_contrast_600: { - backgroundColor: dimPalette.contrast_600, - }, - bg_contrast_700: { - backgroundColor: dimPalette.contrast_700, - }, - bg_contrast_800: { - backgroundColor: dimPalette.contrast_800, - }, - bg_contrast_900: { - backgroundColor: dimPalette.contrast_900, - }, - bg_contrast_950: { - backgroundColor: dimPalette.contrast_950, - }, - bg_contrast_975: { - backgroundColor: dimPalette.contrast_975, - }, - border_contrast_low: { - borderColor: dimPalette.contrast_100, - }, - border_contrast_medium: { - borderColor: dimPalette.contrast_200, - }, - border_contrast_high: { - borderColor: dimPalette.contrast_300, - }, - shadow_sm: { - ...atoms.shadow_sm, - shadowOpacity: 0.7, - shadowColor: `hsl(${BLUE_HUE}, 28%, 6%)`, - }, - shadow_md: { - ...atoms.shadow_md, - shadowOpacity: 0.7, - shadowColor: `hsl(${BLUE_HUE}, 28%, 6%)`, - }, - shadow_lg: { - ...atoms.shadow_lg, - shadowOpacity: 0.7, - shadowColor: `hsl(${BLUE_HUE}, 28%, 6%)`, - }, - }, + } + + return { + lightPalette, + darkPalette, + dimPalette, + light, + dark, + dim, + } } diff --git a/src/alf/tokens.ts b/src/alf/tokens.ts index 1bddd95d43..0208945eeb 100644 --- a/src/alf/tokens.ts +++ b/src/alf/tokens.ts @@ -1,77 +1,6 @@ -import { - BLUE_HUE, - generateScale, - GREEN_HUE, - RED_HUE, -} from '#/alf/util/colorGeneration' - -export const scale = generateScale(6, 100) -// dim shifted 6% lighter -export const dimScale = generateScale(12, 100) - export const color = { - trueBlack: '#000000', - temp_purple: 'rgb(105 0 255)', temp_purple_dark: 'rgb(83 0 202)', - - gray_0: `hsl(${BLUE_HUE}, 20%, ${scale[14]}%)`, - gray_25: `hsl(${BLUE_HUE}, 20%, ${scale[13]}%)`, - gray_50: `hsl(${BLUE_HUE}, 20%, ${scale[12]}%)`, - gray_100: `hsl(${BLUE_HUE}, 20%, ${scale[11]}%)`, - gray_200: `hsl(${BLUE_HUE}, 20%, ${scale[10]}%)`, - gray_300: `hsl(${BLUE_HUE}, 20%, ${scale[9]}%)`, - gray_400: `hsl(${BLUE_HUE}, 20%, ${scale[8]}%)`, - gray_500: `hsl(${BLUE_HUE}, 20%, ${scale[7]}%)`, - gray_600: `hsl(${BLUE_HUE}, 24%, ${scale[6]}%)`, - gray_700: `hsl(${BLUE_HUE}, 24%, ${scale[5]}%)`, - gray_800: `hsl(${BLUE_HUE}, 28%, ${scale[4]}%)`, - gray_900: `hsl(${BLUE_HUE}, 28%, ${scale[3]}%)`, - gray_950: `hsl(${BLUE_HUE}, 28%, ${scale[2]}%)`, - gray_975: `hsl(${BLUE_HUE}, 28%, ${scale[1]}%)`, - gray_1000: `hsl(${BLUE_HUE}, 28%, ${scale[0]}%)`, - - blue_25: `hsl(${BLUE_HUE}, 99%, 97%)`, - blue_50: `hsl(${BLUE_HUE}, 99%, 95%)`, - blue_100: `hsl(${BLUE_HUE}, 99%, 90%)`, - blue_200: `hsl(${BLUE_HUE}, 99%, 80%)`, - blue_300: `hsl(${BLUE_HUE}, 99%, 70%)`, - blue_400: `hsl(${BLUE_HUE}, 99%, 60%)`, - blue_500: `hsl(${BLUE_HUE}, 99%, 53%)`, - blue_600: `hsl(${BLUE_HUE}, 99%, 42%)`, - blue_700: `hsl(${BLUE_HUE}, 99%, 34%)`, - blue_800: `hsl(${BLUE_HUE}, 99%, 26%)`, - blue_900: `hsl(${BLUE_HUE}, 99%, 18%)`, - blue_950: `hsl(${BLUE_HUE}, 99%, 10%)`, - blue_975: `hsl(${BLUE_HUE}, 99%, 7%)`, - - green_25: `hsl(${GREEN_HUE}, 82%, 97%)`, - green_50: `hsl(${GREEN_HUE}, 82%, 95%)`, - green_100: `hsl(${GREEN_HUE}, 82%, 90%)`, - green_200: `hsl(${GREEN_HUE}, 82%, 80%)`, - green_300: `hsl(${GREEN_HUE}, 82%, 70%)`, - green_400: `hsl(${GREEN_HUE}, 82%, 60%)`, - green_500: `hsl(${GREEN_HUE}, 82%, 50%)`, - green_600: `hsl(${GREEN_HUE}, 82%, 42%)`, - green_700: `hsl(${GREEN_HUE}, 82%, 34%)`, - green_800: `hsl(${GREEN_HUE}, 82%, 26%)`, - green_900: `hsl(${GREEN_HUE}, 82%, 18%)`, - green_950: `hsl(${GREEN_HUE}, 82%, 10%)`, - green_975: `hsl(${GREEN_HUE}, 82%, 7%)`, - - red_25: `hsl(${RED_HUE}, 91%, 97%)`, - red_50: `hsl(${RED_HUE}, 91%, 95%)`, - red_100: `hsl(${RED_HUE}, 91%, 90%)`, - red_200: `hsl(${RED_HUE}, 91%, 80%)`, - red_300: `hsl(${RED_HUE}, 91%, 70%)`, - red_400: `hsl(${RED_HUE}, 91%, 60%)`, - red_500: `hsl(${RED_HUE}, 91%, 50%)`, - red_600: `hsl(${RED_HUE}, 91%, 42%)`, - red_700: `hsl(${RED_HUE}, 91%, 34%)`, - red_800: `hsl(${RED_HUE}, 91%, 26%)`, - red_900: `hsl(${RED_HUE}, 91%, 18%)`, - red_950: `hsl(${RED_HUE}, 91%, 10%)`, - red_975: `hsl(${RED_HUE}, 91%, 7%)`, } as const export const space = { @@ -118,6 +47,7 @@ export const fontWeight = { normal: '400', semibold: '500', bold: '600', + heavy: '700', } as const export const gradients = { @@ -177,10 +107,3 @@ export const gradients = { hover_value: '#755B62', }, } as const - -export type Color = keyof typeof color -export type Space = keyof typeof space -export type FontSize = keyof typeof fontSize -export type LineHeight = keyof typeof lineHeight -export type BorderRadius = keyof typeof borderRadius -export type FontWeight = keyof typeof fontWeight diff --git a/src/alf/types.ts b/src/alf/types.ts index dd8d816d2b..41822b8dd5 100644 --- a/src/alf/types.ts +++ b/src/alf/types.ts @@ -1,21 +1,4 @@ -import {StyleProp, ViewStyle, TextStyle} from 'react-native' - -type LiteralToCommon = T extends number - ? number - : T extends string - ? string - : T extends symbol - ? symbol - : never - -/** - * @see https://stackoverflow.com/questions/68249999/use-as-const-in-typescript-without-adding-readonly-modifiers - */ -export type Mutable = { - -readonly [K in keyof T]: T[K] extends PropertyKey - ? LiteralToCommon - : Mutable -} +import {StyleProp, TextStyle, ViewStyle} from 'react-native' export type TextStyleProp = { style?: StyleProp @@ -24,3 +7,156 @@ export type TextStyleProp = { export type ViewStyleProp = { style?: StyleProp } + +export type ThemeName = 'light' | 'dim' | 'dark' +export type Palette = { + white: string + black: string + + contrast_25: string + contrast_50: string + contrast_100: string + contrast_200: string + contrast_300: string + contrast_400: string + contrast_500: string + contrast_600: string + contrast_700: string + contrast_800: string + contrast_900: string + contrast_950: string + contrast_975: string + + primary_25: string + primary_50: string + primary_100: string + primary_200: string + primary_300: string + primary_400: string + primary_500: string + primary_600: string + primary_700: string + primary_800: string + primary_900: string + primary_950: string + primary_975: string + + positive_25: string + positive_50: string + positive_100: string + positive_200: string + positive_300: string + positive_400: string + positive_500: string + positive_600: string + positive_700: string + positive_800: string + positive_900: string + positive_950: string + positive_975: string + + negative_25: string + negative_50: string + negative_100: string + negative_200: string + negative_300: string + negative_400: string + negative_500: string + negative_600: string + negative_700: string + negative_800: string + negative_900: string + negative_950: string + negative_975: string +} +export type ThemedAtoms = { + text: { + color: string + } + text_contrast_low: { + color: string + } + text_contrast_medium: { + color: string + } + text_contrast_high: { + color: string + } + text_inverted: { + color: string + } + bg: { + backgroundColor: string + } + bg_contrast_25: { + backgroundColor: string + } + bg_contrast_50: { + backgroundColor: string + } + bg_contrast_100: { + backgroundColor: string + } + bg_contrast_200: { + backgroundColor: string + } + bg_contrast_300: { + backgroundColor: string + } + bg_contrast_400: { + backgroundColor: string + } + bg_contrast_500: { + backgroundColor: string + } + bg_contrast_600: { + backgroundColor: string + } + bg_contrast_700: { + backgroundColor: string + } + bg_contrast_800: { + backgroundColor: string + } + bg_contrast_900: { + backgroundColor: string + } + bg_contrast_950: { + backgroundColor: string + } + bg_contrast_975: { + backgroundColor: string + } + border_contrast_low: { + borderColor: string + } + border_contrast_medium: { + borderColor: string + } + border_contrast_high: { + borderColor: string + } + shadow_sm: { + shadowRadius: number + shadowOpacity: number + elevation: number + shadowColor: string + } + shadow_md: { + shadowRadius: number + shadowOpacity: number + elevation: number + shadowColor: string + } + shadow_lg: { + shadowRadius: number + shadowOpacity: number + elevation: number + shadowColor: string + } +} +export type Theme = { + name: ThemeName + palette: Palette + atoms: ThemedAtoms +} diff --git a/src/alf/util/colorGeneration.ts b/src/alf/util/colorGeneration.ts index 929a01d3a7..8d769b51b1 100644 --- a/src/alf/util/colorGeneration.ts +++ b/src/alf/util/colorGeneration.ts @@ -15,3 +15,7 @@ export function generateScale(start: number, end: number) { return start + range * stop }) } + +export const defaultScale = generateScale(6, 100) +// dim shifted 6% lighter +export const dimScale = generateScale(12, 100) diff --git a/src/alf/util/themeSelector.ts b/src/alf/util/themeSelector.ts new file mode 100644 index 0000000000..e79f863872 --- /dev/null +++ b/src/alf/util/themeSelector.ts @@ -0,0 +1,14 @@ +import {ThemeName} from '#/alf/types' + +export function select(name: ThemeName, options: Record) { + switch (name) { + case 'light': + return options.light + case 'dark': + return options.dark || options.dim + case 'dim': + return options.dim || options.dark + default: + throw new Error(`select(theme, options) received unknown theme ${name}`) + } +} diff --git a/src/alf/util/useColorModeTheme.ts b/src/alf/util/useColorModeTheme.ts index 4f8921bf9b..12840c7062 100644 --- a/src/alf/util/useColorModeTheme.ts +++ b/src/alf/util/useColorModeTheme.ts @@ -1,25 +1,28 @@ import React from 'react' import {ColorSchemeName, useColorScheme} from 'react-native' - -import {useThemePrefs} from 'state/shell' -import {isWeb} from 'platform/detection' -import {ThemeName, light, dark, dim} from '#/alf/themes' import * as SystemUI from 'expo-system-ui' +import {isWeb} from 'platform/detection' +import {useThemePrefs} from 'state/shell' +import {dark, dim, light} from '#/alf/themes' +import {ThemeName} from '#/alf/types' + export function useColorModeTheme(): ThemeName { + const theme = useThemeName() + + React.useLayoutEffect(() => { + updateDocument(theme) + SystemUI.setBackgroundColorAsync(getBackgroundColor(theme)) + }, [theme]) + + return theme +} + +export function useThemeName(): ThemeName { const colorScheme = useColorScheme() const {colorMode, darkTheme} = useThemePrefs() - React.useLayoutEffect(() => { - const theme = getThemeName(colorScheme, colorMode, darkTheme) - updateDocument(theme) - SystemUI.setBackgroundColorAsync(getBackgroundColor(theme)) - }, [colorMode, colorScheme, darkTheme]) - - return React.useMemo( - () => getThemeName(colorScheme, colorMode, darkTheme), - [colorScheme, colorMode, darkTheme], - ) + return getThemeName(colorScheme, colorMode, darkTheme) } function getThemeName( @@ -53,7 +56,7 @@ function updateDocument(theme: ThemeName) { } } -function getBackgroundColor(theme: ThemeName): string { +export function getBackgroundColor(theme: ThemeName): string { switch (theme) { case 'light': return light.atoms.bg.backgroundColor diff --git a/src/components/AccountList.tsx b/src/components/AccountList.tsx index 7d696801ed..883c06c144 100644 --- a/src/components/AccountList.tsx +++ b/src/components/AccountList.tsx @@ -37,7 +37,7 @@ export function AccountList({ style={[ a.rounded_md, a.overflow_hidden, - a.border, + {borderWidth: 1}, t.atoms.border_contrast_low, ]}> {accounts.map(account => ( @@ -48,7 +48,7 @@ export function AccountList({ isCurrentAccount={account.did === currentAccount?.did} isPendingAccount={account.did === pendingDid} /> - + ))} + + + + ) +} + +export function createProfileFeedHref({ + feed, +}: { + feed: AppBskyFeedDefs.GeneratorView +}) { + const urip = new AtUri(feed.uri) + const handleOrDid = feed.creator.handle || feed.creator.did + return `/profile/${handleOrDid}/feed/${urip.rkey}` +} diff --git a/src/components/FeedInterstitials.tsx b/src/components/FeedInterstitials.tsx new file mode 100644 index 0000000000..e37d2c3e0e --- /dev/null +++ b/src/components/FeedInterstitials.tsx @@ -0,0 +1,478 @@ +import React from 'react' +import {View} from 'react-native' +import {ScrollView} from 'react-native-gesture-handler' +import {AppBskyFeedDefs, AtUri} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' + +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {NavigationProp} from '#/lib/routes/types' +import {logEvent} from '#/lib/statsig/statsig' +import {logger} from '#/logger' +import {useModerationOpts} from '#/state/preferences/moderation-opts' +import {useGetPopularFeedsQuery} from '#/state/queries/feed' +import {useProfilesQuery} from '#/state/queries/profile' +import {useSession} from '#/state/session' +import {useProgressGuide} from '#/state/shell/progress-guide' +import * as userActionHistory from '#/state/userActionHistory' +import {SeenPost} from '#/state/userActionHistory' +import {atoms as a, useBreakpoints, useTheme, ViewStyleProp, web} from '#/alf' +import {Button} from '#/components/Button' +import * as FeedCard from '#/components/FeedCard' +import {ArrowRight_Stroke2_Corner0_Rounded as Arrow} from '#/components/icons/Arrow' +import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag' +import {PersonPlus_Stroke2_Corner0_Rounded as Person} from '#/components/icons/Person' +import {InlineLinkText} from '#/components/Link' +import * as ProfileCard from '#/components/ProfileCard' +import {Text} from '#/components/Typography' +import {ProgressGuideList} from './ProgressGuide/List' + +const MOBILE_CARD_WIDTH = 300 + +function CardOuter({ + children, + style, +}: {children: React.ReactNode | React.ReactNode[]} & ViewStyleProp) { + const t = useTheme() + const {gtMobile} = useBreakpoints() + return ( + + {children} + + ) +} + +export function SuggestedFollowPlaceholder() { + const t = useTheme() + return ( + + + + + + + + + + + + ) +} + +export function SuggestedFeedsCardPlaceholder() { + const t = useTheme() + return ( + + + + + + + + + ) +} + +function getRank(seenPost: SeenPost): string { + let tier: string + if (seenPost.feedContext === 'popfriends') { + tier = 'a' + } else if (seenPost.feedContext?.startsWith('cluster')) { + tier = 'b' + } else if (seenPost.feedContext === 'popcluster') { + tier = 'c' + } else if (seenPost.feedContext?.startsWith('ntpc')) { + tier = 'd' + } else if (seenPost.feedContext?.startsWith('t-')) { + tier = 'e' + } else if (seenPost.feedContext === 'nettop') { + tier = 'f' + } else { + tier = 'g' + } + let score = Math.round( + Math.log( + 1 + seenPost.likeCount + seenPost.repostCount + seenPost.replyCount, + ), + ) + if (seenPost.isFollowedBy || Math.random() > 0.9) { + score *= 2 + } + const rank = 100 - score + return `${tier}-${rank}` +} + +function sortSeenPosts(postA: SeenPost, postB: SeenPost): 0 | 1 | -1 { + const rankA = getRank(postA) + const rankB = getRank(postB) + // Yes, we're comparing strings here. + // The "larger" string means a worse rank. + if (rankA > rankB) { + return 1 + } else if (rankA < rankB) { + return -1 + } else { + return 0 + } +} + +function useExperimentalSuggestedUsersQuery() { + const {currentAccount} = useSession() + const userActionSnapshot = userActionHistory.useActionHistorySnapshot() + const dids = React.useMemo(() => { + const {likes, follows, followSuggestions, seen} = userActionSnapshot + const likeDids = likes + .map(l => new AtUri(l)) + .map(uri => uri.host) + .filter(did => !follows.includes(did)) + let suggestedDids: string[] = [] + if (followSuggestions.length > 0) { + suggestedDids = [ + // It's ok if these will pick the same item (weighed by its frequency) + followSuggestions[Math.floor(Math.random() * followSuggestions.length)], + followSuggestions[Math.floor(Math.random() * followSuggestions.length)], + followSuggestions[Math.floor(Math.random() * followSuggestions.length)], + followSuggestions[Math.floor(Math.random() * followSuggestions.length)], + ] + } + const seenDids = seen + .sort(sortSeenPosts) + .map(l => new AtUri(l.uri)) + .map(uri => uri.host) + return [...new Set([...suggestedDids, ...likeDids, ...seenDids])].filter( + did => did !== currentAccount?.did, + ) + }, [userActionSnapshot, currentAccount]) + const {data, isLoading, error} = useProfilesQuery({ + handles: dids.slice(0, 16), + }) + + const profiles = data + ? data.profiles.filter(profile => { + return !profile.viewer?.following + }) + : [] + + return { + isLoading, + error, + profiles: profiles.slice(0, 6), + } +} + +export function SuggestedFollows() { + const t = useTheme() + const {_} = useLingui() + const { + isLoading: isSuggestionsLoading, + profiles, + error, + } = useExperimentalSuggestedUsersQuery() + const moderationOpts = useModerationOpts() + const navigation = useNavigation() + const {gtMobile} = useBreakpoints() + const isLoading = isSuggestionsLoading || !moderationOpts + const maxLength = gtMobile ? 4 : 6 + + const content = isLoading ? ( + Array(maxLength) + .fill(0) + .map((_, i) => ( + + + + )) + ) : error || !profiles.length ? null : ( + <> + {profiles.slice(0, maxLength).map(profile => ( + { + logEvent('feed:interstitial:profileCard:press', {}) + }} + style={[ + a.flex_1, + gtMobile && web([a.flex_0, {width: 'calc(50% - 6px)'}]), + ]}> + {({hovered, pressed}) => ( + + + + + + + + + + + )} + + ))} + + ) + + if (error || (!isLoading && profiles.length < 4)) { + logger.debug(`Not enough profiles to show suggested follows`) + return null + } + + return ( + + + + Suggested for you + + + + + {gtMobile ? ( + + + {content} + + + + + Browse more suggestions + + + + + ) : ( + + + {content} + + + + + )} + + ) +} + +export function SuggestedFeeds() { + const numFeedsToDisplay = 3 + const t = useTheme() + const {_} = useLingui() + const {data, isLoading, error} = useGetPopularFeedsQuery({ + limit: numFeedsToDisplay, + }) + const navigation = useNavigation() + const {gtMobile} = useBreakpoints() + + const feeds = React.useMemo(() => { + const items: AppBskyFeedDefs.GeneratorView[] = [] + + if (!data) return items + + for (const page of data.pages) { + for (const feed of page.feeds) { + items.push(feed) + } + } + + return items + }, [data]) + + const content = isLoading ? ( + Array(numFeedsToDisplay) + .fill(0) + .map((_, i) => ) + ) : error || !feeds ? null : ( + <> + {feeds.slice(0, numFeedsToDisplay).map(feed => ( + { + logEvent('feed:interstitial:feedCard:press', {}) + }}> + {({hovered, pressed}) => ( + + + + + + + + + + )} + + ))} + + ) + + return error ? null : ( + + + + Some other feeds you might like + + + + + {gtMobile ? ( + + {content} + + + + Browse more suggestions + + + + + ) : ( + + + {content} + + + + + )} + + ) +} + +export function ProgressGuide() { + const t = useTheme() + const {isDesktop} = useWebMediaQueries() + const guide = useProgressGuide('like-10-and-follow-7') + + if (isDesktop) { + return null + } + + return guide ? ( + + + + ) : null +} diff --git a/src/components/FullWindowOverlay.ios.tsx b/src/components/FullWindowOverlay.ios.tsx new file mode 100644 index 0000000000..db516c6589 --- /dev/null +++ b/src/components/FullWindowOverlay.ios.tsx @@ -0,0 +1 @@ +export {FullWindowOverlay} from 'react-native-screens' diff --git a/src/components/FullWindowOverlay.tsx b/src/components/FullWindowOverlay.tsx new file mode 100644 index 0000000000..c9bdb6e720 --- /dev/null +++ b/src/components/FullWindowOverlay.tsx @@ -0,0 +1 @@ +export {Fragment as FullWindowOverlay} from 'react' diff --git a/src/components/IconCircle.tsx b/src/components/IconCircle.tsx index aa779e37f3..806d35c385 100644 --- a/src/components/IconCircle.tsx +++ b/src/components/IconCircle.tsx @@ -2,14 +2,14 @@ import React from 'react' import {View} from 'react-native' import { - useTheme, atoms as a, - ViewStyleProp, - TextStyleProp, flatten, + TextStyleProp, + useTheme, + ViewStyleProp, } from '#/alf' -import {Growth_Stroke2_Corner0_Rounded as Growth} from '#/components/icons/Growth' import {Props} from '#/components/icons/common' +import {Growth_Stroke2_Corner0_Rounded as Growth} from '#/components/icons/Growth' export function IconCircle({ icon: Icon, @@ -32,8 +32,7 @@ export function IconCircle({ { width: size === 'lg' ? 52 : 64, height: size === 'lg' ? 52 : 64, - backgroundColor: - t.name === 'light' ? t.palette.primary_50 : t.palette.primary_950, + backgroundColor: t.palette.primary_50, }, flatten(style), ]}> diff --git a/src/components/KeyboardControllerPadding.android.tsx b/src/components/KeyboardControllerPadding.android.tsx new file mode 100644 index 0000000000..92ef1b0b05 --- /dev/null +++ b/src/components/KeyboardControllerPadding.android.tsx @@ -0,0 +1,31 @@ +import React from 'react' +import {useKeyboardHandler} from 'react-native-keyboard-controller' +import Animated, { + useAnimatedStyle, + useSharedValue, +} from 'react-native-reanimated' + +export function KeyboardControllerPadding({maxHeight}: {maxHeight?: number}) { + const keyboardHeight = useSharedValue(0) + + useKeyboardHandler( + { + onMove: e => { + 'worklet' + + if (maxHeight && e.height > maxHeight) { + keyboardHeight.value = maxHeight + } else { + keyboardHeight.value = e.height + } + }, + }, + [maxHeight], + ) + + const animatedStyle = useAnimatedStyle(() => ({ + height: keyboardHeight.value, + })) + + return +} diff --git a/src/components/KeyboardControllerPadding.tsx b/src/components/KeyboardControllerPadding.tsx new file mode 100644 index 0000000000..f3163d87cf --- /dev/null +++ b/src/components/KeyboardControllerPadding.tsx @@ -0,0 +1,7 @@ +export function KeyboardControllerPadding({ + maxHeight: _, +}: { + maxHeight?: number +}) { + return null +} diff --git a/src/components/KnownFollowers.tsx b/src/components/KnownFollowers.tsx new file mode 100644 index 0000000000..4017a7b0be --- /dev/null +++ b/src/components/KnownFollowers.tsx @@ -0,0 +1,243 @@ +import React from 'react' +import {View} from 'react-native' +import {AppBskyActorDefs, moderateProfile, ModerationOpts} from '@atproto/api' +import {msg, Plural, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {makeProfileLink} from '#/lib/routes/links' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {UserAvatar} from '#/view/com/util/UserAvatar' +import {atoms as a, useTheme} from '#/alf' +import {Link, LinkProps} from '#/components/Link' +import {Text} from '#/components/Typography' + +const AVI_SIZE = 30 +const AVI_SIZE_SMALL = 20 +const AVI_BORDER = 1 + +/** + * Shared logic to determine if `KnownFollowers` should be shown. + * + * Checks the # of actual returned users instead of the `count` value, because + * `count` includes blocked users and `followers` does not. + */ +export function shouldShowKnownFollowers( + knownFollowers?: AppBskyActorDefs.KnownFollowers, +) { + return knownFollowers && knownFollowers.followers.length > 0 +} + +export function KnownFollowers({ + profile, + moderationOpts, + onLinkPress, + minimal, +}: { + profile: AppBskyActorDefs.ProfileViewDetailed + moderationOpts: ModerationOpts + onLinkPress?: LinkProps['onPress'] + minimal?: boolean +}) { + const cache = React.useRef>( + new Map(), + ) + + /* + * Results for `knownFollowers` are not sorted consistently, so when + * revalidating we can see a flash of this data updating. This cache prevents + * this happening for screens that remain in memory. When pushing a new + * screen, or once this one is popped, this cache is empty, so new data is + * displayed. + */ + if (profile.viewer?.knownFollowers && !cache.current.has(profile.did)) { + cache.current.set(profile.did, profile.viewer.knownFollowers) + } + + const cachedKnownFollowers = cache.current.get(profile.did) + + if (cachedKnownFollowers && shouldShowKnownFollowers(cachedKnownFollowers)) { + return ( + + ) + } + + return null +} + +function KnownFollowersInner({ + profile, + moderationOpts, + cachedKnownFollowers, + onLinkPress, + minimal, +}: { + profile: AppBskyActorDefs.ProfileViewDetailed + moderationOpts: ModerationOpts + cachedKnownFollowers: AppBskyActorDefs.KnownFollowers + onLinkPress?: LinkProps['onPress'] + minimal?: boolean +}) { + const t = useTheme() + const {_} = useLingui() + + const textStyle = [ + a.flex_1, + a.text_sm, + a.leading_snug, + t.atoms.text_contrast_medium, + ] + + const slice = cachedKnownFollowers.followers.slice(0, 3).map(f => { + const moderation = moderateProfile(f, moderationOpts) + return { + profile: { + ...f, + displayName: sanitizeDisplayName( + f.displayName || f.handle, + moderation.ui('displayName'), + ), + }, + moderation, + } + }) + + // Does not have blocks applied. Always >= slices.length + const serverCount = cachedKnownFollowers.count + + /* + * We check above too, but here for clarity and a reminder to _check for + * valid indices_ + */ + if (slice.length === 0) return null + + const SIZE = minimal ? AVI_SIZE_SMALL : AVI_SIZE + + return ( + + {({hovered, pressed}) => ( + <> + + {slice.map(({profile: prof, moderation}, i) => ( + + + + ))} + + + + {slice.length >= 2 ? ( + // 2-n followers, including blocks + serverCount > 2 ? ( + + Followed by{' '} + + {slice[0].profile.displayName} + + ,{' '} + + {slice[1].profile.displayName} + + , and{' '} + + + ) : ( + // only 2 + + Followed by{' '} + + {slice[0].profile.displayName} + {' '} + and{' '} + + {slice[1].profile.displayName} + + + ) + ) : serverCount > 1 ? ( + // 1-n followers, including blocks + + Followed by{' '} + + {slice[0].profile.displayName} + {' '} + and{' '} + + + ) : ( + // only 1 + + Followed by{' '} + + {slice[0].profile.displayName} + + + )} + + + )} + + ) +} diff --git a/src/components/LinearGradientBackground.tsx b/src/components/LinearGradientBackground.tsx new file mode 100644 index 0000000000..f516b19f5f --- /dev/null +++ b/src/components/LinearGradientBackground.tsx @@ -0,0 +1,23 @@ +import React from 'react' +import {StyleProp, ViewStyle} from 'react-native' +import {LinearGradient} from 'expo-linear-gradient' + +import {gradients} from '#/alf/tokens' + +export function LinearGradientBackground({ + style, + children, +}: { + style: StyleProp + children: React.ReactNode +}) { + const gradient = gradients.sky.values.map(([_, color]) => { + return color + }) + + return ( + + {children} + + ) +} diff --git a/src/components/Link.tsx b/src/components/Link.tsx index a2e952a6ef..6c25faffb8 100644 --- a/src/components/Link.tsx +++ b/src/components/Link.tsx @@ -1,5 +1,10 @@ import React from 'react' -import {GestureResponderEvent} from 'react-native' +import { + GestureResponderEvent, + Pressable, + StyleProp, + ViewStyle, +} from 'react-native' import {sanitizeUrl} from '@braintree/sanitize-url' import {StackActions, useLinkProps} from '@react-navigation/native' @@ -12,7 +17,8 @@ import { isExternalUrl, linkRequiresWarning, } from '#/lib/strings/url-helpers' -import {isNative, isWeb} from '#/platform/detection' +import {isNative} from '#/platform/detection' +import {shouldClickOpenNewTab} from '#/platform/urls' import {useModalControls} from '#/state/modals' import {useOpenLink} from '#/state/preferences/in-app-browser' import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' @@ -34,11 +40,6 @@ type BaseLinkProps = Pick< > & { testID?: string - /** - * Label for a11y. Defaults to the href. - */ - label?: string - /** * The React Navigation `StackAction` to perform when the link is pressed. */ @@ -116,16 +117,7 @@ export function useLink({ if (isExternal) { openLink(href) } else { - /** - * A `GestureResponderEvent`, but cast to `any` to avoid using a bunch - * of @ts-ignore below. - */ - const event = e as any - const isMiddleClick = isWeb && event.button === 1 - const isMetaKey = - isWeb && - (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) - const shouldOpenInNewTab = isMetaKey || isMiddleClick + const shouldOpenInNewTab = shouldClickOpenNewTab(e) if (isBskyDownloadUrl(href)) { shareUrl(BSKY_DOWNLOAD_URL) @@ -200,7 +192,7 @@ export function useLink({ } export type LinkProps = Omit & - Omit + Omit /** * A interactive element that renders as a `
` tag on the web. On mobile it @@ -227,7 +219,6 @@ export function Link({ return ( + + + + + + + + + + + {isMe ? ( + Welcome, friend! + ) : ( + Say hello! + )} + + + + {profile.joinedViaStarterPack ? ( + + {profileName} joined Bluesky using a starter pack{' '} + {timeAgo(createdAt, now, {format: 'long'})} ago + + ) : ( + + {profileName} joined Bluesky{' '} + {timeAgo(createdAt, now, {format: 'long'})} ago + + )} + + {profile.joinedViaStarterPack ? ( + { + control.close() + }}> + + + + + ) : null} + + {isNative && ( + + )} + + + + + + + ) +} diff --git a/src/components/Pills.tsx b/src/components/Pills.tsx new file mode 100644 index 0000000000..2fff999373 --- /dev/null +++ b/src/components/Pills.tsx @@ -0,0 +1,169 @@ +import React from 'react' +import {View} from 'react-native' +import {BSKY_LABELER_DID, ModerationCause} from '@atproto/api' +import {Trans} from '@lingui/macro' + +import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription' +import {UserAvatar} from '#/view/com/util/UserAvatar' +import {atoms as a, useTheme, ViewStyleProp} from '#/alf' +import {Button} from '#/components/Button' +import { + ModerationDetailsDialog, + useModerationDetailsDialogControl, +} from '#/components/moderation/ModerationDetailsDialog' +import {Text} from '#/components/Typography' + +export type CommonProps = { + size?: 'sm' | 'lg' +} + +export function Row({ + children, + style, + size = 'sm', +}: {children: React.ReactNode | React.ReactNode[]} & CommonProps & + ViewStyleProp) { + const styles = React.useMemo(() => { + switch (size) { + case 'lg': + return [{gap: 5}] + case 'sm': + default: + return [{gap: 3}] + } + }, [size]) + return ( + + {children} + + ) +} + +export type LabelProps = { + cause: ModerationCause + disableDetailsDialog?: boolean + noBg?: boolean +} & CommonProps + +export function Label({ + cause, + size = 'sm', + disableDetailsDialog, + noBg, +}: LabelProps) { + const t = useTheme() + const control = useModerationDetailsDialogControl() + const desc = useModerationCauseDescription(cause) + const isLabeler = Boolean(desc.sourceType && desc.sourceDid) + const isBlueskyLabel = + desc.sourceType === 'labeler' && desc.sourceDid === BSKY_LABELER_DID + + const {outer, avi, text} = React.useMemo(() => { + switch (size) { + case 'lg': { + return { + outer: [ + t.atoms.bg_contrast_25, + { + gap: 5, + paddingHorizontal: 5, + paddingVertical: 5, + }, + ], + avi: 16, + text: [a.text_sm], + } + } + case 'sm': + default: { + return { + outer: [ + !noBg && t.atoms.bg_contrast_25, + { + gap: 3, + paddingHorizontal: 3, + paddingVertical: 3, + }, + ], + avi: 12, + text: [a.text_xs], + } + } + } + }, [t, size, noBg]) + + return ( + <> + + + {!disableDetailsDialog && ( + + )} + + ) +} + +export function FollowsYou({size = 'sm'}: CommonProps) { + const t = useTheme() + + const variantStyles = React.useMemo(() => { + switch (size) { + case 'sm': + case 'lg': + default: + return [ + { + paddingHorizontal: 6, + paddingVertical: 3, + borderRadius: 4, + }, + ] + } + }, [size]) + + return ( + + + Follows You + + + ) +} diff --git a/src/components/ProfileCard.tsx b/src/components/ProfileCard.tsx new file mode 100644 index 0000000000..a263d19461 --- /dev/null +++ b/src/components/ProfileCard.tsx @@ -0,0 +1,392 @@ +import React from 'react' +import {GestureResponderEvent, View} from 'react-native' +import { + AppBskyActorDefs, + moderateProfile, + ModerationOpts, + RichText as RichTextApi, +} from '@atproto/api' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {LogEvents} from '#/lib/statsig/statsig' +import {sanitizeDisplayName} from '#/lib/strings/display-names' +import {useProfileFollowMutationQueue} from '#/state/queries/profile' +import {sanitizeHandle} from 'lib/strings/handles' +import {useProfileShadow} from 'state/cache/profile-shadow' +import {useSession} from 'state/session' +import * as Toast from '#/view/com/util/Toast' +import {ProfileCardPills} from 'view/com/profile/ProfileCard' +import {UserAvatar} from 'view/com/util/UserAvatar' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonIcon, ButtonProps, ButtonText} from '#/components/Button' +import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' +import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' +import {Link as InternalLink, LinkProps} from '#/components/Link' +import {RichText} from '#/components/RichText' +import {Text} from '#/components/Typography' + +export function Default({ + profile, + moderationOpts, + logContext = 'ProfileCard', +}: { + profile: AppBskyActorDefs.ProfileViewDetailed + moderationOpts: ModerationOpts + logContext?: 'ProfileCard' | 'StarterPackProfilesList' +}) { + return ( + + + + ) +} + +export function Card({ + profile, + moderationOpts, + logContext = 'ProfileCard', +}: { + profile: AppBskyActorDefs.ProfileViewDetailed + moderationOpts: ModerationOpts + logContext?: 'ProfileCard' | 'StarterPackProfilesList' +}) { + const moderation = moderateProfile(profile, moderationOpts) + + return ( + +
+ + + +
+ + + + +
+ ) +} + +export function Outer({ + children, +}: { + children: React.ReactElement | React.ReactElement[] +}) { + return {children} +} + +export function Header({ + children, +}: { + children: React.ReactElement | React.ReactElement[] +}) { + return {children} +} + +export function Link({ + profile, + children, + style, + ...rest +}: { + profile: AppBskyActorDefs.ProfileViewDetailed +} & Omit) { + const {_} = useLingui() + return ( + + {children} + + ) +} + +export function Avatar({ + profile, + moderationOpts, +}: { + profile: AppBskyActorDefs.ProfileViewDetailed + moderationOpts: ModerationOpts +}) { + const moderation = moderateProfile(profile, moderationOpts) + + return ( + + ) +} + +export function AvatarPlaceholder() { + const t = useTheme() + return ( + + ) +} + +export function NameAndHandle({ + profile, + moderationOpts, +}: { + profile: AppBskyActorDefs.ProfileViewDetailed + moderationOpts: ModerationOpts +}) { + const t = useTheme() + const moderation = moderateProfile(profile, moderationOpts) + const name = sanitizeDisplayName( + profile.displayName || sanitizeHandle(profile.handle), + moderation.ui('displayName'), + ) + const handle = sanitizeHandle(profile.handle, '@') + + return ( + + + {name} + + + {handle} + + + ) +} + +export function NameAndHandlePlaceholder() { + const t = useTheme() + + return ( + + + + + + ) +} + +export function Description({ + profile: profileUnshadowed, +}: { + profile: AppBskyActorDefs.ProfileViewDetailed +}) { + const profile = useProfileShadow(profileUnshadowed) + const {description} = profile + const rt = React.useMemo(() => { + if (!description) return + const rt = new RichTextApi({text: description || ''}) + rt.detectFacetsWithoutResolution() + return rt + }, [description]) + if (!rt) return null + if ( + profile.viewer && + (profile.viewer.blockedBy || + profile.viewer.blocking || + profile.viewer.blockingByList) + ) + return null + return ( + + + + ) +} + +export function DescriptionPlaceholder() { + const t = useTheme() + return ( + + + + + + ) +} + +export type FollowButtonProps = { + profile: AppBskyActorDefs.ProfileViewBasic + moderationOpts: ModerationOpts + logContext: LogEvents['profile:follow']['logContext'] & + LogEvents['profile:unfollow']['logContext'] +} & Partial + +export function FollowButton(props: FollowButtonProps) { + const {currentAccount, hasSession} = useSession() + const isMe = props.profile.did === currentAccount?.did + return hasSession && !isMe ? : null +} + +export function FollowButtonInner({ + profile: profileUnshadowed, + moderationOpts, + logContext, + ...rest +}: FollowButtonProps) { + const {_} = useLingui() + const profile = useProfileShadow(profileUnshadowed) + const moderation = moderateProfile(profile, moderationOpts) + const [queueFollow, queueUnfollow] = useProfileFollowMutationQueue( + profile, + logContext, + ) + const isRound = Boolean(rest.shape && rest.shape === 'round') + + const onPressFollow = async (e: GestureResponderEvent) => { + e.preventDefault() + e.stopPropagation() + try { + await queueFollow() + Toast.show( + _( + msg`Following ${sanitizeDisplayName( + profile.displayName || profile.handle, + moderation.ui('displayName'), + )}`, + ), + ) + } catch (err: any) { + if (err?.name !== 'AbortError') { + Toast.show(_(msg`An issue occurred, please try again.`), 'xmark') + } + } + } + + const onPressUnfollow = async (e: GestureResponderEvent) => { + e.preventDefault() + e.stopPropagation() + try { + await queueUnfollow() + Toast.show( + _( + msg`No longer following ${sanitizeDisplayName( + profile.displayName || profile.handle, + moderation.ui('displayName'), + )}`, + ), + ) + } catch (err: any) { + if (err?.name !== 'AbortError') { + Toast.show(_(msg`An issue occurred, please try again.`), 'xmark') + } + } + } + + const unfollowLabel = _( + msg({ + message: 'Following', + comment: 'User is following this account, click to unfollow', + }), + ) + const followLabel = _( + msg({ + message: 'Follow', + comment: 'User is not following this account, click to follow', + }), + ) + + if (!profile.viewer) return null + if ( + profile.viewer.blockedBy || + profile.viewer.blocking || + profile.viewer.blockingByList + ) + return null + + return ( + + {profile.viewer.following ? ( + + ) : ( + + )} + + ) +} diff --git a/src/components/ProfileHoverCard/index.web.tsx b/src/components/ProfileHoverCard/index.web.tsx index 09a4b397bb..9280009887 100644 --- a/src/components/ProfileHoverCard/index.web.tsx +++ b/src/components/ProfileHoverCard/index.web.tsx @@ -5,12 +5,14 @@ import {flip, offset, shift, size, useFloating} from '@floating-ui/react-dom' import {msg, plural} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {getModerationCauseKey} from '#/lib/moderation' import {makeProfileLink} from '#/lib/routes/links' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {sanitizeHandle} from '#/lib/strings/handles' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {usePrefetchProfileQuery, useProfileQuery} from '#/state/queries/profile' import {useSession} from '#/state/session' +import {isTouchDevice} from 'lib/browser' import {useProfileShadow} from 'state/cache/profile-shadow' import {formatCount} from '#/view/com/util/numeric/format' import {UserAvatar} from '#/view/com/util/UserAvatar' @@ -21,8 +23,13 @@ import {useFollowMethods} from '#/components/hooks/useFollowMethods' import {useRichText} from '#/components/hooks/useRichText' import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' +import { + KnownFollowers, + shouldShowKnownFollowers, +} from '#/components/KnownFollowers' import {InlineLinkText, Link} from '#/components/Link' import {Loader} from '#/components/Loader' +import * as Pills from '#/components/Pills' import {Portal} from '#/components/Portal' import {RichText} from '#/components/RichText' import {Text} from '#/components/Typography' @@ -43,10 +50,25 @@ const floatingMiddlewares = [ }), ] -const isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0 - export function ProfileHoverCard(props: ProfileHoverCardProps) { - return isTouchDevice ? props.children : + const prefetchProfileQuery = usePrefetchProfileQuery() + const prefetchedProfile = React.useRef(false) + const onPointerMove = () => { + if (!prefetchedProfile.current) { + prefetchedProfile.current = true + prefetchProfileQuery(props.did) + } + } + + if (props.disable || isTouchDevice) { + return props.children + } else { + return ( + + + + ) + } } type State = @@ -367,7 +389,10 @@ function Inner({ profile: profileShadow, logContext: 'ProfileHoverCard', }) - const blockHide = profile.viewer?.blocking || profile.viewer?.blockedBy + const isBlockedUser = + profile.viewer?.blocking || + profile.viewer?.blockedBy || + profile.viewer?.blockingByList const following = formatCount(profile.followsCount || 0) const followers = formatCount(profile.followersCount || 0) const pluralizedFollowers = plural(profile.followersCount || 0, { @@ -398,45 +423,71 @@ function Inner({ /> - {!isMe && ( - - )} + {!isMe && + (isBlockedUser ? ( + + {_(msg`View profile`)} + + ) : ( + + ))} - + {sanitizeDisplayName( profile.displayName || sanitizeHandle(profile.handle), moderation.ui('displayName'), )} - + - {!blockHide && ( + {isBlockedUser && ( + + {moderation.ui('profileView').alerts.map(cause => ( + + ))} + + )} + + {!isBlockedUser && ( <> ) : undefined} + + {!isMe && + shouldShowKnownFollowers(profile.viewer?.knownFollowers) && ( + + + + )} )} diff --git a/src/components/ProfileHoverCard/types.ts b/src/components/ProfileHoverCard/types.ts index a62279c96c..2fa0643838 100644 --- a/src/components/ProfileHoverCard/types.ts +++ b/src/components/ProfileHoverCard/types.ts @@ -4,4 +4,5 @@ export type ProfileHoverCardProps = { children: React.ReactElement did: string inline?: boolean + disable?: boolean } diff --git a/src/components/ProgressGuide/List.tsx b/src/components/ProgressGuide/List.tsx new file mode 100644 index 0000000000..f68445d2be --- /dev/null +++ b/src/components/ProgressGuide/List.tsx @@ -0,0 +1,61 @@ +import React from 'react' +import {StyleProp, View, ViewStyle} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import { + useProgressGuide, + useProgressGuideControls, +} from '#/state/shell/progress-guide' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonIcon} from '#/components/Button' +import {TimesLarge_Stroke2_Corner0_Rounded as Times} from '#/components/icons/Times' +import {Text} from '#/components/Typography' +import {ProgressGuideTask} from './Task' + +export function ProgressGuideList({style}: {style?: StyleProp}) { + const t = useTheme() + const {_} = useLingui() + const guide = useProgressGuide('like-10-and-follow-7') + const {endProgressGuide} = useProgressGuideControls() + + if (guide) { + return ( + + + + Getting started + + + + + + + ) + } + return null +} diff --git a/src/components/ProgressGuide/Task.tsx b/src/components/ProgressGuide/Task.tsx new file mode 100644 index 0000000000..a83715a425 --- /dev/null +++ b/src/components/ProgressGuide/Task.tsx @@ -0,0 +1,50 @@ +import React from 'react' +import {View} from 'react-native' +import * as Progress from 'react-native-progress' + +import {atoms as a, useTheme} from '#/alf' +import {AnimatedCheck} from '../anim/AnimatedCheck' +import {Text} from '../Typography' + +export function ProgressGuideTask({ + current, + total, + title, + subtitle, +}: { + current: number + total: number + title: string + subtitle?: string +}) { + const t = useTheme() + + return ( + + {current === total ? ( + + ) : ( + + )} + + + + {title} + + {subtitle && ( + + {subtitle} + + )} + + + ) +} diff --git a/src/components/ProgressGuide/Toast.tsx b/src/components/ProgressGuide/Toast.tsx new file mode 100644 index 0000000000..346312af51 --- /dev/null +++ b/src/components/ProgressGuide/Toast.tsx @@ -0,0 +1,169 @@ +import React, {useImperativeHandle} from 'react' +import {Pressable, useWindowDimensions, View} from 'react-native' +import Animated, { + Easing, + runOnJS, + useAnimatedStyle, + useSharedValue, + withTiming, +} from 'react-native-reanimated' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {isWeb} from '#/platform/detection' +import {atoms as a, useTheme} from '#/alf' +import {Portal} from '#/components/Portal' +import {AnimatedCheck, AnimatedCheckRef} from '../anim/AnimatedCheck' +import {Text} from '../Typography' + +export interface ProgressGuideToastRef { + open(): void + close(): void +} + +export interface ProgressGuideToastProps { + title: string + subtitle?: string + visibleDuration?: number // default 5s +} + +export const ProgressGuideToast = React.forwardRef< + ProgressGuideToastRef, + ProgressGuideToastProps +>(function ProgressGuideToast({title, subtitle, visibleDuration}, ref) { + const t = useTheme() + const {_} = useLingui() + const insets = useSafeAreaInsets() + const [isOpen, setIsOpen] = React.useState(false) + const translateY = useSharedValue(0) + const opacity = useSharedValue(0) + const animatedCheckRef = React.useRef(null) + const timeoutRef = React.useRef() + const winDim = useWindowDimensions() + + /** + * Methods + */ + + const close = React.useCallback(() => { + // clear the timeout, in case this was called imperatively + if (timeoutRef.current) { + clearTimeout(timeoutRef.current) + timeoutRef.current = undefined + } + + // animate the opacity then set isOpen to false when done + const setIsntOpen = () => setIsOpen(false) + opacity.value = withTiming( + 0, + { + duration: 400, + easing: Easing.out(Easing.cubic), + }, + () => runOnJS(setIsntOpen)(), + ) + }, [setIsOpen, opacity]) + + const open = React.useCallback(() => { + // set isOpen=true to render + setIsOpen(true) + + // animate the vertical translation, the opacity, and the checkmark + const playCheckmark = () => animatedCheckRef.current?.play() + opacity.value = 0 + opacity.value = withTiming( + 1, + { + duration: 100, + easing: Easing.out(Easing.cubic), + }, + () => runOnJS(playCheckmark)(), + ) + translateY.value = 0 + translateY.value = withTiming(insets.top + 10, { + duration: 500, + easing: Easing.out(Easing.cubic), + }) + + // start the countdown timer to autoclose + timeoutRef.current = setTimeout(close, visibleDuration || 5e3) + }, [setIsOpen, translateY, opacity, insets, close, visibleDuration]) + + useImperativeHandle( + ref, + () => ({ + open, + close, + }), + [open, close], + ) + + const containerStyle = React.useMemo(() => { + let left = 10 + let right = 10 + if (isWeb && winDim.width > 400) { + left = right = (winDim.width - 380) / 2 + } + return { + position: isWeb ? 'fixed' : 'absolute', + top: 0, + left, + right, + } + }, [winDim.width]) + + const animatedStyle = useAnimatedStyle(() => ({ + transform: [{translateY: translateY.value}], + opacity: opacity.value, + })) + + return ( + isOpen && ( + + + + + + {title} + {subtitle && ( + + {subtitle} + + )} + + + + + ) + ) +}) diff --git a/src/components/Prompt.tsx b/src/components/Prompt.tsx index 92e848e8eb..315ad0dfda 100644 --- a/src/components/Prompt.tsx +++ b/src/components/Prompt.tsx @@ -1,10 +1,10 @@ import React from 'react' -import {View} from 'react-native' +import {GestureResponderEvent, View} from 'react-native' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {atoms as a, useBreakpoints, useTheme} from '#/alf' -import {Button, ButtonColor, ButtonText} from '#/components/Button' +import {Button, ButtonColor, ButtonProps, ButtonText} from '#/components/Button' import * as Dialog from '#/components/Dialog' import {Text} from '#/components/Typography' @@ -136,7 +136,7 @@ export function Action({ * Note: The dialog will close automatically when the action is pressed, you * should NOT close the dialog as a side effect of this method. */ - onPress: () => void + onPress: ButtonProps['onPress'] color?: ButtonColor /** * Optional i18n string. If undefined, it will default to "Confirm". @@ -147,9 +147,12 @@ export function Action({ const {_} = useLingui() const {gtMobile} = useBreakpoints() const {close} = Dialog.useDialogContext() - const handleOnPress = React.useCallback(() => { - close(onPress) - }, [close, onPress]) + const handleOnPress = React.useCallback( + (e: GestureResponderEvent) => { + close(() => onPress?.(e)) + }, + [close, onPress], + ) return ( - ))} - - ) -} - -function RadioIcon({selected}: {selected: boolean}) { - const t = useTheme() - return ( - - {selected && ( - - )} - - ) -} diff --git a/src/components/ReportDialog/SelectReportOptionView.tsx b/src/components/ReportDialog/SelectReportOptionView.tsx index da3c434401..169c07d732 100644 --- a/src/components/ReportDialog/SelectReportOptionView.tsx +++ b/src/components/ReportDialog/SelectReportOptionView.tsx @@ -25,12 +25,10 @@ import {SquareArrowTopRight_Stroke2_Corner0_Rounded as SquareArrowTopRight} from import {Text} from '#/components/Typography' import {ReportDialogProps} from './types' -type ParamsWithMessages = ReportDialogProps['params'] | {type: 'message'} - export function SelectReportOptionView({ ...props }: { - params: ParamsWithMessages + params: ReportDialogProps['params'] labelers: AppBskyLabelerDefs.LabelerViewDetailed[] onSelectReportOption: (reportOption: ReportOption) => void goBack: () => void @@ -57,7 +55,10 @@ export function SelectReportOptionView({ } else if (props.params.type === 'feedgen') { title = _(msg`Report this feed`) description = _(msg`Why should this feed be reviewed?`) - } else if (props.params.type === 'message') { + } else if (props.params.type === 'starterpack') { + title = _(msg`Report this starter pack`) + description = _(msg`Why should this starter pack be reviewed?`) + } else if (props.params.type === 'convoMessage') { title = _(msg`Report this message`) description = _(msg`Why should this message be reviewed?`) } diff --git a/src/components/ReportDialog/SubmitView.tsx b/src/components/ReportDialog/SubmitView.tsx index 40d655aa90..2def0fa4b4 100644 --- a/src/components/ReportDialog/SubmitView.tsx +++ b/src/components/ReportDialog/SubmitView.tsx @@ -35,7 +35,7 @@ export function SubmitView({ }) { const t = useTheme() const {_} = useLingui() - const {getAgent} = useAgent() + const agent = useAgent() const [details, setDetails] = React.useState('') const [submitting, setSubmitting] = React.useState(false) const [selectedServices, setSelectedServices] = React.useState([ @@ -60,15 +60,19 @@ export function SubmitView({ reason: details, } const results = await Promise.all( - selectedServices.map(did => - getAgent() - .withProxy('atproto_labeler', did) - .createModerationReport(report) + selectedServices.map(did => { + return agent + .createModerationReport(report, { + encoding: 'application/json', + headers: { + 'atproto-proxy': `${did}#atproto_labeler`, + }, + }) .then( _ => true, _ => false, - ), - ), + ) + }), ) setSubmitting(false) @@ -91,7 +95,7 @@ export function SubmitView({ selectedServices, onSubmitComplete, setError, - getAgent, + agent, ]) return ( diff --git a/src/components/ReportDialog/types.ts b/src/components/ReportDialog/types.ts index 0c8a1e0778..3f43db4a19 100644 --- a/src/components/ReportDialog/types.ts +++ b/src/components/ReportDialog/types.ts @@ -4,7 +4,7 @@ export type ReportDialogProps = { control: Dialog.DialogOuterProps['control'] params: | { - type: 'post' | 'list' | 'feedgen' | 'other' + type: 'post' | 'list' | 'feedgen' | 'starterpack' | 'other' uri: string cid: string } @@ -12,4 +12,5 @@ export type ReportDialogProps = { type: 'account' did: string } + | {type: 'convoMessage'} } diff --git a/src/components/RichText.tsx b/src/components/RichText.tsx index ed69c199ad..7511775978 100644 --- a/src/components/RichText.tsx +++ b/src/components/RichText.tsx @@ -17,6 +17,19 @@ import {Text, TextProps} from '#/components/Typography' const WORD_WRAP = {wordWrap: 1} +export type RichTextProps = TextStyleProp & + Pick & { + value: RichTextAPI | string + testID?: string + numberOfLines?: number + disableLinks?: boolean + enableTags?: boolean + authorHandle?: string + onLinkPress?: LinkProps['onPress'] + interactiveStyle?: TextStyle + emojiMultiplier?: number + } + export function RichText({ testID, value, @@ -28,17 +41,8 @@ export function RichText({ authorHandle, onLinkPress, interactiveStyle, -}: TextStyleProp & - Pick & { - value: RichTextAPI | string - testID?: string - numberOfLines?: number - disableLinks?: boolean - enableTags?: boolean - authorHandle?: string - onLinkPress?: LinkProps['onPress'] - interactiveStyle?: TextStyle - }) { + emojiMultiplier = 1.85, +}: RichTextProps) { const richText = React.useMemo( () => value instanceof RichTextAPI ? value : new RichTextAPI({text: value}), @@ -57,17 +61,14 @@ export function RichText({ const {text, facets} = richText if (!facets?.length) { - if (text.length <= 5 && /^\p{Extended_Pictographic}+$/u.test(text)) { + if (isOnlyEmoji(text)) { + const fontSize = + (flattenedStyle.fontSize ?? a.text_sm.fontSize) * emojiMultiplier return ( {text} @@ -247,3 +248,10 @@ function RichTextTag({ ) } + +export function isOnlyEmoji(text: string) { + return ( + text.length <= 15 && + /^[\p{Emoji_Presentation}\p{Extended_Pictographic}]+$/u.test(text) + ) +} diff --git a/src/components/StarterPack/Main/FeedsList.tsx b/src/components/StarterPack/Main/FeedsList.tsx new file mode 100644 index 0000000000..7d7cd2047c --- /dev/null +++ b/src/components/StarterPack/Main/FeedsList.tsx @@ -0,0 +1,68 @@ +import React, {useCallback} from 'react' +import {ListRenderItemInfo, View} from 'react-native' +import {AppBskyFeedDefs} from '@atproto/api' +import {GeneratorView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' + +import {useBottomBarOffset} from 'lib/hooks/useBottomBarOffset' +import {isNative, isWeb} from 'platform/detection' +import {List, ListRef} from 'view/com/util/List' +import {SectionRef} from '#/screens/Profile/Sections/types' +import {atoms as a, useTheme} from '#/alf' +import * as FeedCard from '#/components/FeedCard' + +function keyExtractor(item: AppBskyFeedDefs.GeneratorView) { + return item.uri +} + +interface ProfilesListProps { + feeds: AppBskyFeedDefs.GeneratorView[] + headerHeight: number + scrollElRef: ListRef +} + +export const FeedsList = React.forwardRef( + function FeedsListImpl({feeds, headerHeight, scrollElRef}, ref) { + const [initialHeaderHeight] = React.useState(headerHeight) + const bottomBarOffset = useBottomBarOffset(20) + const t = useTheme() + + const onScrollToTop = useCallback(() => { + scrollElRef.current?.scrollToOffset({ + animated: isNative, + offset: -headerHeight, + }) + }, [scrollElRef, headerHeight]) + + React.useImperativeHandle(ref, () => ({ + scrollToTop: onScrollToTop, + })) + + const renderItem = ({item, index}: ListRenderItemInfo) => { + return ( + + + + ) + } + + return ( + + } + showsVerticalScrollIndicator={false} + desktopFixedHeight={true} + /> + ) + }, +) diff --git a/src/components/StarterPack/Main/PostsList.tsx b/src/components/StarterPack/Main/PostsList.tsx new file mode 100644 index 0000000000..c19c6bc63e --- /dev/null +++ b/src/components/StarterPack/Main/PostsList.tsx @@ -0,0 +1,51 @@ +import React, {useCallback} from 'react' +import {View} from 'react-native' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {FeedDescriptor} from '#/state/queries/post-feed' +import {isNative} from 'platform/detection' +import {Feed} from 'view/com/posts/Feed' +import {EmptyState} from 'view/com/util/EmptyState' +import {ListRef} from 'view/com/util/List' +import {SectionRef} from '#/screens/Profile/Sections/types' + +interface ProfilesListProps { + listUri: string + headerHeight: number + scrollElRef: ListRef +} + +export const PostsList = React.forwardRef( + function PostsListImpl({listUri, headerHeight, scrollElRef}, ref) { + const feed: FeedDescriptor = `list|${listUri}|as_following` + const {_} = useLingui() + + const onScrollToTop = useCallback(() => { + scrollElRef.current?.scrollToOffset({ + animated: isNative, + offset: -headerHeight, + }) + }, [scrollElRef, headerHeight]) + + React.useImperativeHandle(ref, () => ({ + scrollToTop: onScrollToTop, + })) + + const renderPostsEmpty = useCallback(() => { + return + }, [_]) + + return ( + + + + ) + }, +) diff --git a/src/components/StarterPack/Main/ProfilesList.tsx b/src/components/StarterPack/Main/ProfilesList.tsx new file mode 100644 index 0000000000..3249f1b32e --- /dev/null +++ b/src/components/StarterPack/Main/ProfilesList.tsx @@ -0,0 +1,134 @@ +import React, {useCallback} from 'react' +import {ListRenderItemInfo, View} from 'react-native' +import { + AppBskyActorDefs, + AppBskyGraphGetList, + AtUri, + ModerationOpts, +} from '@atproto/api' +import {InfiniteData, UseInfiniteQueryResult} from '@tanstack/react-query' + +import {useBottomBarOffset} from 'lib/hooks/useBottomBarOffset' +import {isBlockedOrBlocking} from 'lib/moderation/blocked-and-muted' +import {isNative, isWeb} from 'platform/detection' +import {useListMembersQuery} from 'state/queries/list-members' +import {useSession} from 'state/session' +import {List, ListRef} from 'view/com/util/List' +import {SectionRef} from '#/screens/Profile/Sections/types' +import {atoms as a, useTheme} from '#/alf' +import {ListMaybePlaceholder} from '#/components/Lists' +import {Default as ProfileCard} from '#/components/ProfileCard' + +function keyExtractor(item: AppBskyActorDefs.ProfileViewBasic, index: number) { + return `${item.did}-${index}` +} + +interface ProfilesListProps { + listUri: string + listMembersQuery: UseInfiniteQueryResult< + InfiniteData + > + moderationOpts: ModerationOpts + headerHeight: number + scrollElRef: ListRef +} + +export const ProfilesList = React.forwardRef( + function ProfilesListImpl( + {listUri, moderationOpts, headerHeight, scrollElRef}, + ref, + ) { + const t = useTheme() + const [initialHeaderHeight] = React.useState(headerHeight) + const bottomBarOffset = useBottomBarOffset(20) + const {currentAccount} = useSession() + const {data, refetch, isError} = useListMembersQuery(listUri, 50) + + const [isPTRing, setIsPTRing] = React.useState(false) + + // The server returns these sorted by descending creation date, so we want to invert + const profiles = data?.pages + .flatMap(p => p.items.map(i => i.subject)) + .filter(p => !isBlockedOrBlocking(p) && !p.associated?.labeler) + .reverse() + const isOwn = new AtUri(listUri).host === currentAccount?.did + + const getSortedProfiles = () => { + if (!profiles) return + if (!isOwn) return profiles + + const myIndex = profiles.findIndex(p => p.did === currentAccount?.did) + return myIndex !== -1 + ? [ + profiles[myIndex], + ...profiles.slice(0, myIndex), + ...profiles.slice(myIndex + 1), + ] + : profiles + } + const onScrollToTop = useCallback(() => { + scrollElRef.current?.scrollToOffset({ + animated: isNative, + offset: -headerHeight, + }) + }, [scrollElRef, headerHeight]) + + React.useImperativeHandle(ref, () => ({ + scrollToTop: onScrollToTop, + })) + + const renderItem = ({ + item, + index, + }: ListRenderItemInfo) => { + return ( + + + + ) + } + + if (!data) { + return ( + + + + ) + } + + if (data) + return ( + + } + showsVerticalScrollIndicator={false} + desktopFixedHeight + refreshing={isPTRing} + onRefresh={async () => { + setIsPTRing(true) + await refetch() + setIsPTRing(false) + }} + /> + ) + }, +) diff --git a/src/components/StarterPack/ProfileStarterPacks.tsx b/src/components/StarterPack/ProfileStarterPacks.tsx new file mode 100644 index 0000000000..7fb0545a21 --- /dev/null +++ b/src/components/StarterPack/ProfileStarterPacks.tsx @@ -0,0 +1,322 @@ +import React from 'react' +import { + findNodeHandle, + ListRenderItemInfo, + StyleProp, + View, + ViewStyle, +} from 'react-native' +import {AppBskyGraphDefs, AppBskyGraphGetActorStarterPacks} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' +import {InfiniteData, UseInfiniteQueryResult} from '@tanstack/react-query' + +import {logger} from '#/logger' +import {useGenerateStarterPackMutation} from 'lib/generate-starterpack' +import {useBottomBarOffset} from 'lib/hooks/useBottomBarOffset' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {NavigationProp} from 'lib/routes/types' +import {parseStarterPackUri} from 'lib/strings/starter-pack' +import {List, ListRef} from 'view/com/util/List' +import {Text} from 'view/com/util/text/Text' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {useDialogControl} from '#/components/Dialog' +import {LinearGradientBackground} from '#/components/LinearGradientBackground' +import {Loader} from '#/components/Loader' +import * as Prompt from '#/components/Prompt' +import {Default as StarterPackCard} from '#/components/StarterPack/StarterPackCard' +import {PlusSmall_Stroke2_Corner0_Rounded as Plus} from '../icons/Plus' + +interface SectionRef { + scrollToTop: () => void +} + +interface ProfileFeedgensProps { + starterPacksQuery: UseInfiniteQueryResult< + InfiniteData, + Error + > + scrollElRef: ListRef + headerOffset: number + enabled?: boolean + style?: StyleProp + testID?: string + setScrollViewTag: (tag: number | null) => void + isMe: boolean +} + +function keyExtractor(item: AppBskyGraphDefs.StarterPackView) { + return item.uri +} + +export const ProfileStarterPacks = React.forwardRef< + SectionRef, + ProfileFeedgensProps +>(function ProfileFeedgensImpl( + { + starterPacksQuery: query, + scrollElRef, + headerOffset, + enabled, + style, + testID, + setScrollViewTag, + isMe, + }, + ref, +) { + const t = useTheme() + const bottomBarOffset = useBottomBarOffset(100) + const [isPTRing, setIsPTRing] = React.useState(false) + const {data, refetch, isFetching, hasNextPage, fetchNextPage} = query + const {isTabletOrDesktop} = useWebMediaQueries() + + const items = data?.pages.flatMap(page => page.starterPacks) + + React.useImperativeHandle(ref, () => ({ + scrollToTop: () => {}, + })) + + const onRefresh = React.useCallback(async () => { + setIsPTRing(true) + try { + await refetch() + } catch (err) { + logger.error('Failed to refresh starter packs', {message: err}) + } + setIsPTRing(false) + }, [refetch, setIsPTRing]) + + const onEndReached = React.useCallback(async () => { + if (isFetching || !hasNextPage) return + + try { + await fetchNextPage() + } catch (err) { + logger.error('Failed to load more starter packs', {message: err}) + } + }, [isFetching, hasNextPage, fetchNextPage]) + + React.useEffect(() => { + if (enabled && scrollElRef.current) { + const nativeTag = findNodeHandle(scrollElRef.current) + setScrollViewTag(nativeTag) + } + }, [enabled, scrollElRef, setScrollViewTag]) + + const renderItem = ({ + item, + index, + }: ListRenderItemInfo) => { + return ( + + + + ) + } + + return ( + + + + ) +}) + +function CreateAnother() { + const {_} = useLingui() + const t = useTheme() + const navigation = useNavigation() + + return ( + + + + ) +} + +function Empty() { + const {_} = useLingui() + const t = useTheme() + const navigation = useNavigation() + const confirmDialogControl = useDialogControl() + const followersDialogControl = useDialogControl() + const errorDialogControl = useDialogControl() + + const [isGenerating, setIsGenerating] = React.useState(false) + + const {mutate: generateStarterPack} = useGenerateStarterPackMutation({ + onSuccess: ({uri}) => { + const parsed = parseStarterPackUri(uri) + if (parsed) { + navigation.push('StarterPack', { + name: parsed.name, + rkey: parsed.rkey, + }) + } + setIsGenerating(false) + }, + onError: e => { + logger.error('Failed to generate starter pack', {safeMessage: e}) + setIsGenerating(false) + if (e.name === 'NOT_ENOUGH_FOLLOWERS') { + followersDialogControl.open() + } else { + errorDialogControl.open() + } + }, + }) + + const generate = () => { + setIsGenerating(true) + generateStarterPack() + } + + return ( + + + + You haven't created a starter pack yet! + + + + Starter packs let you easily share your favorite feeds and people + with your friends. + + + + + + + + + + + Generate a starter pack + + + + Bluesky will choose a set of recommended accounts from people in + your network. + + + + + { + navigation.navigate('StarterPackWizard') + }} + /> + + + {}} + showCancel={false} + /> + + + ) +} diff --git a/src/components/StarterPack/QrCode.tsx b/src/components/StarterPack/QrCode.tsx new file mode 100644 index 0000000000..a8a2e34917 --- /dev/null +++ b/src/components/StarterPack/QrCode.tsx @@ -0,0 +1,119 @@ +import React from 'react' +import {View} from 'react-native' +import QRCode from 'react-native-qrcode-styled' +import ViewShot from 'react-native-view-shot' +import {AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api' +import {Trans} from '@lingui/macro' + +import {isWeb} from 'platform/detection' +import {Logo} from 'view/icons/Logo' +import {Logotype} from 'view/icons/Logotype' +import {useTheme} from '#/alf' +import {atoms as a} from '#/alf' +import {LinearGradientBackground} from '#/components/LinearGradientBackground' +import {Text} from '#/components/Typography' + +interface Props { + starterPack: AppBskyGraphDefs.StarterPackView + link: string +} + +export const QrCode = React.forwardRef(function QrCode( + {starterPack, link}, + ref, +) { + const {record} = starterPack + + if (!AppBskyGraphStarterpack.isRecord(record)) { + return null + } + + return ( + + + + + {record.name} + + + + + Join the conversation + + + + + + + + on + + + + + + + + + + ) +}) + +export function QrCodeInner({link}: {link: string}) { + const t = useTheme() + + return ( + + ) +} diff --git a/src/components/StarterPack/QrCodeDialog.tsx b/src/components/StarterPack/QrCodeDialog.tsx new file mode 100644 index 0000000000..a884390bf8 --- /dev/null +++ b/src/components/StarterPack/QrCodeDialog.tsx @@ -0,0 +1,198 @@ +import React from 'react' +import {View} from 'react-native' +import ViewShot from 'react-native-view-shot' +import {requestMediaLibraryPermissionsAsync} from 'expo-image-picker' +import {createAssetAsync} from 'expo-media-library' +import * as Sharing from 'expo-sharing' +import {AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {logger} from '#/logger' +import {logEvent} from 'lib/statsig/statsig' +import {isNative, isWeb} from 'platform/detection' +import * as Toast from '#/view/com/util/Toast' +import {atoms as a} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import * as Dialog from '#/components/Dialog' +import {DialogControlProps} from '#/components/Dialog' +import {Loader} from '#/components/Loader' +import {QrCode} from '#/components/StarterPack/QrCode' + +export function QrCodeDialog({ + starterPack, + link, + control, +}: { + starterPack: AppBskyGraphDefs.StarterPackView + link?: string + control: DialogControlProps +}) { + const {_} = useLingui() + const [isProcessing, setIsProcessing] = React.useState(false) + + const ref = React.useRef(null) + + const getCanvas = (base64: string): Promise => { + return new Promise(resolve => { + const image = new Image() + image.onload = () => { + const canvas = document.createElement('canvas') + canvas.width = image.width + canvas.height = image.height + + const ctx = canvas.getContext('2d') + ctx?.drawImage(image, 0, 0) + resolve(canvas) + } + image.src = base64 + }) + } + + const onSavePress = async () => { + ref.current?.capture?.().then(async (uri: string) => { + if (isNative) { + const res = await requestMediaLibraryPermissionsAsync() + + if (!res) { + Toast.show( + _( + msg`You must grant access to your photo library to save a QR code`, + ), + ) + return + } + + // Incase of a FS failure, don't crash the app + try { + await createAssetAsync(`file://${uri}`) + } catch (e: unknown) { + Toast.show( + _(msg`An error occurred while saving the QR code!`), + 'xmark', + ) + logger.error('Failed to save QR code', {error: e}) + return + } + } else { + setIsProcessing(true) + + if (!AppBskyGraphStarterpack.isRecord(starterPack.record)) { + return + } + + const canvas = await getCanvas(uri) + const imgHref = canvas + .toDataURL('image/png') + .replace('image/png', 'image/octet-stream') + + const link = document.createElement('a') + link.setAttribute( + 'download', + `${starterPack.record.name.replaceAll(' ', '_')}_Share_Card.png`, + ) + link.setAttribute('href', imgHref) + link.click() + } + + logEvent('starterPack:share', { + starterPack: starterPack.uri, + shareType: 'qrcode', + qrShareType: 'save', + }) + setIsProcessing(false) + Toast.show( + isWeb + ? _(msg`QR code has been downloaded!`) + : _(msg`QR code saved to your camera roll!`), + ) + control.close() + }) + } + + const onCopyPress = async () => { + setIsProcessing(true) + ref.current?.capture?.().then(async (uri: string) => { + const canvas = await getCanvas(uri) + // @ts-expect-error web only + canvas.toBlob((blob: Blob) => { + const item = new ClipboardItem({'image/png': blob}) + navigator.clipboard.write([item]) + }) + + logEvent('starterPack:share', { + starterPack: starterPack.uri, + shareType: 'qrcode', + qrShareType: 'copy', + }) + Toast.show(_(msg`QR code copied to your clipboard!`)) + setIsProcessing(false) + control.close() + }) + } + + const onSharePress = async () => { + ref.current?.capture?.().then(async (uri: string) => { + control.close(() => { + Sharing.shareAsync(uri, {mimeType: 'image/png', UTI: 'image/png'}).then( + () => { + logEvent('starterPack:share', { + starterPack: starterPack.uri, + shareType: 'qrcode', + qrShareType: 'share', + }) + }, + ) + }) + }) + } + + return ( + + + + + {!link ? ( + + + + ) : ( + <> + + {isProcessing ? ( + + + + ) : ( + + + + + )} + + )} + + + + ) +} diff --git a/src/components/StarterPack/ShareDialog.tsx b/src/components/StarterPack/ShareDialog.tsx new file mode 100644 index 0000000000..9851b08567 --- /dev/null +++ b/src/components/StarterPack/ShareDialog.tsx @@ -0,0 +1,168 @@ +import React from 'react' +import {View} from 'react-native' +import {Image} from 'expo-image' +import {requestMediaLibraryPermissionsAsync} from 'expo-image-picker' +import {AppBskyGraphDefs} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {logger} from '#/logger' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {saveImageToMediaLibrary} from 'lib/media/manip' +import {shareUrl} from 'lib/sharing' +import {logEvent} from 'lib/statsig/statsig' +import {getStarterPackOgCard} from 'lib/strings/starter-pack' +import {isNative, isWeb} from 'platform/detection' +import * as Toast from 'view/com/util/Toast' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import {DialogControlProps} from '#/components/Dialog' +import * as Dialog from '#/components/Dialog' +import {Loader} from '#/components/Loader' +import {Text} from '#/components/Typography' + +interface Props { + starterPack: AppBskyGraphDefs.StarterPackView + link?: string + imageLoaded?: boolean + qrDialogControl: DialogControlProps + control: DialogControlProps +} + +export function ShareDialog(props: Props) { + return ( + + + + ) +} + +function ShareDialogInner({ + starterPack, + link, + imageLoaded, + qrDialogControl, + control, +}: Props) { + const {_} = useLingui() + const t = useTheme() + const {isTabletOrDesktop} = useWebMediaQueries() + + const imageUrl = getStarterPackOgCard(starterPack) + + const onShareLink = async () => { + if (!link) return + shareUrl(link) + logEvent('starterPack:share', { + starterPack: starterPack.uri, + shareType: 'link', + }) + control.close() + } + + const onSave = async () => { + const res = await requestMediaLibraryPermissionsAsync() + + if (!res) { + Toast.show( + _(msg`You must grant access to your photo library to save the image.`), + 'xmark', + ) + return + } + + try { + await saveImageToMediaLibrary({uri: imageUrl}) + Toast.show(_(msg`Image saved to your camera roll!`)) + control.close() + } catch (e: unknown) { + Toast.show(_(msg`An error occurred while saving the QR code!`), 'xmark') + logger.error('Failed to save QR code', {error: e}) + return + } + } + + return ( + <> + + + {!imageLoaded || !link ? ( + + + + ) : ( + + + + Invite people to this starter pack! + + + + Share this starter pack and help people join your community on + Bluesky. + + + + + + + + {isNative && ( + + )} + + + )} + + + ) +} diff --git a/src/components/StarterPack/StarterPackCard.tsx b/src/components/StarterPack/StarterPackCard.tsx new file mode 100644 index 0000000000..4c4bf246ea --- /dev/null +++ b/src/components/StarterPack/StarterPackCard.tsx @@ -0,0 +1,164 @@ +import React from 'react' +import {View} from 'react-native' +import {Image} from 'expo-image' +import {AppBskyGraphDefs, AppBskyGraphStarterpack, AtUri} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useQueryClient} from '@tanstack/react-query' + +import {sanitizeHandle} from 'lib/strings/handles' +import {getStarterPackOgCard} from 'lib/strings/starter-pack' +import {precacheResolvedUri} from 'state/queries/resolve-uri' +import {precacheStarterPack} from 'state/queries/starter-packs' +import {useSession} from 'state/session' +import {atoms as a, useTheme} from '#/alf' +import {StarterPack} from '#/components/icons/StarterPack' +import {BaseLink} from '#/components/Link' +import {Text} from '#/components/Typography' + +export function Default({ + starterPack, +}: { + starterPack?: AppBskyGraphDefs.StarterPackViewBasic +}) { + if (!starterPack) return null + return ( + + + + ) +} + +export function Notification({ + starterPack, +}: { + starterPack?: AppBskyGraphDefs.StarterPackViewBasic +}) { + if (!starterPack) return null + return ( + + + + ) +} + +export function Card({ + starterPack, + noIcon, + noDescription, +}: { + starterPack: AppBskyGraphDefs.StarterPackViewBasic + noIcon?: boolean + noDescription?: boolean +}) { + const {record, creator, joinedAllTimeCount} = starterPack + + const {_} = useLingui() + const t = useTheme() + const {currentAccount} = useSession() + + if (!AppBskyGraphStarterpack.isRecord(record)) { + return null + } + + return ( + + + {!noIcon ? : null} + + + {record.name} + + + + Starter pack by{' '} + {creator?.did === currentAccount?.did + ? _(msg`you`) + : `@${sanitizeHandle(creator.handle)}`} + + + + + {!noDescription && record.description ? ( + + {record.description} + + ) : null} + {!!joinedAllTimeCount && joinedAllTimeCount >= 50 && ( + + {joinedAllTimeCount} users have joined! + + )} + + ) +} + +export function Link({ + starterPack, + children, +}: { + starterPack: AppBskyGraphDefs.StarterPackViewBasic + onPress?: () => void + children: React.ReactNode +}) { + const {_} = useLingui() + const queryClient = useQueryClient() + const {record} = starterPack + const {rkey, handleOrDid} = React.useMemo(() => { + const rkey = new AtUri(starterPack.uri).rkey + const {creator} = starterPack + return {rkey, handleOrDid: creator.handle || creator.did} + }, [starterPack]) + + if (!AppBskyGraphStarterpack.isRecord(record)) { + return null + } + + return ( + { + precacheResolvedUri( + queryClient, + starterPack.creator.handle, + starterPack.creator.did, + ) + precacheStarterPack(queryClient, starterPack) + }}> + {children} + + ) +} + +export function Embed({ + starterPack, +}: { + starterPack: AppBskyGraphDefs.StarterPackViewBasic +}) { + const t = useTheme() + const imageUri = getStarterPackOgCard(starterPack) + + return ( + + + + + + + + + ) +} diff --git a/src/components/StarterPack/Wizard/ScreenTransition.tsx b/src/components/StarterPack/Wizard/ScreenTransition.tsx new file mode 100644 index 0000000000..b7cd4e4c1f --- /dev/null +++ b/src/components/StarterPack/Wizard/ScreenTransition.tsx @@ -0,0 +1,31 @@ +import React from 'react' +import {StyleProp, ViewStyle} from 'react-native' +import Animated, { + FadeIn, + FadeOut, + SlideInLeft, + SlideInRight, +} from 'react-native-reanimated' + +import {isWeb} from 'platform/detection' + +export function ScreenTransition({ + direction, + style, + children, +}: { + direction: 'Backward' | 'Forward' + style?: StyleProp + children: React.ReactNode +}) { + const entering = direction === 'Forward' ? SlideInRight : SlideInLeft + + return ( + + {children} + + ) +} diff --git a/src/components/StarterPack/Wizard/WizardEditListDialog.tsx b/src/components/StarterPack/Wizard/WizardEditListDialog.tsx new file mode 100644 index 0000000000..cf755e1bcf --- /dev/null +++ b/src/components/StarterPack/Wizard/WizardEditListDialog.tsx @@ -0,0 +1,154 @@ +import React, {useRef} from 'react' +import type {ListRenderItemInfo} from 'react-native' +import {View} from 'react-native' +import {AppBskyActorDefs, ModerationOpts} from '@atproto/api' +import {GeneratorView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' +import {BottomSheetFlatListMethods} from '@discord/bottom-sheet' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {isWeb} from 'platform/detection' +import {useSession} from 'state/session' +import {WizardAction, WizardState} from '#/screens/StarterPack/Wizard/State' +import {atoms as a, native, useTheme, web} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import * as Dialog from '#/components/Dialog' +import { + WizardFeedCard, + WizardProfileCard, +} from '#/components/StarterPack/Wizard/WizardListCard' +import {Text} from '#/components/Typography' + +function keyExtractor( + item: AppBskyActorDefs.ProfileViewBasic | GeneratorView, + index: number, +) { + return `${item.did}-${index}` +} + +export function WizardEditListDialog({ + control, + state, + dispatch, + moderationOpts, + profile, +}: { + control: Dialog.DialogControlProps + state: WizardState + dispatch: (action: WizardAction) => void + moderationOpts: ModerationOpts + profile: AppBskyActorDefs.ProfileViewBasic +}) { + const {_} = useLingui() + const t = useTheme() + const {currentAccount} = useSession() + + const listRef = useRef(null) + + const getData = () => { + if (state.currentStep === 'Feeds') return state.feeds + + return [ + profile, + ...state.profiles.filter(p => p.did !== currentAccount?.did), + ] + } + + const renderItem = ({item}: ListRenderItemInfo) => + state.currentStep === 'Profiles' ? ( + + ) : ( + + ) + + return ( + + + + + + {state.currentStep === 'Profiles' ? ( + Edit People + ) : ( + Edit Feeds + )} + + + {isWeb && ( + + )} + + + } + stickyHeaderIndices={[0]} + style={[ + web([a.py_0, {height: '100vh', maxHeight: 600}, a.px_0]), + native({ + height: '100%', + paddingHorizontal: 0, + marginTop: 0, + paddingTop: 0, + borderTopLeftRadius: 40, + borderTopRightRadius: 40, + }), + ]} + webInnerStyle={[a.py_0, {maxWidth: 500, minWidth: 200}]} + keyboardDismissMode="on-drag" + removeClippedSubviews={true} + /> + + ) +} diff --git a/src/components/StarterPack/Wizard/WizardListCard.tsx b/src/components/StarterPack/Wizard/WizardListCard.tsx new file mode 100644 index 0000000000..55cf0f02b3 --- /dev/null +++ b/src/components/StarterPack/Wizard/WizardListCard.tsx @@ -0,0 +1,211 @@ +import React from 'react' +import {Keyboard, View} from 'react-native' +import { + AppBskyActorDefs, + AppBskyFeedDefs, + moderateFeedGenerator, + moderateProfile, + ModerationOpts, + ModerationUI, +} from '@atproto/api' +import {GeneratorView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {DISCOVER_FEED_URI} from 'lib/constants' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {useSession} from 'state/session' +import {UserAvatar} from 'view/com/util/UserAvatar' +import {WizardAction, WizardState} from '#/screens/StarterPack/Wizard/State' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import * as Toggle from '#/components/forms/Toggle' +import {Checkbox} from '#/components/forms/Toggle' +import {Text} from '#/components/Typography' + +function WizardListCard({ + type, + btnType, + displayName, + subtitle, + onPress, + avatar, + included, + disabled, + moderationUi, +}: { + type: 'user' | 'algo' + btnType: 'checkbox' | 'remove' + profile?: AppBskyActorDefs.ProfileViewBasic + feed?: AppBskyFeedDefs.GeneratorView + displayName: string + subtitle: string + onPress: () => void + avatar?: string + included?: boolean + disabled?: boolean + moderationUi: ModerationUI +}) { + const t = useTheme() + const {_} = useLingui() + + return ( + + + + + {displayName} + + + {subtitle} + + + {btnType === 'checkbox' ? ( + + ) : !disabled ? ( + + ) : null} + + ) +} + +export function WizardProfileCard({ + btnType, + state, + dispatch, + profile, + moderationOpts, +}: { + btnType: 'checkbox' | 'remove' + state: WizardState + dispatch: (action: WizardAction) => void + profile: AppBskyActorDefs.ProfileViewBasic + moderationOpts: ModerationOpts +}) { + const {currentAccount} = useSession() + + const isMe = profile.did === currentAccount?.did + const included = isMe || state.profiles.some(p => p.did === profile.did) + const disabled = isMe || (!included && state.profiles.length >= 49) + const moderationUi = moderateProfile(profile, moderationOpts).ui('avatar') + const displayName = profile.displayName + ? sanitizeDisplayName(profile.displayName) + : `@${sanitizeHandle(profile.handle)}` + + const onPress = () => { + if (disabled) return + + Keyboard.dismiss() + if (profile.did === currentAccount?.did) return + + if (!included) { + dispatch({type: 'AddProfile', profile}) + } else { + dispatch({type: 'RemoveProfile', profileDid: profile.did}) + } + } + + return ( + + ) +} + +export function WizardFeedCard({ + btnType, + generator, + state, + dispatch, + moderationOpts, +}: { + btnType: 'checkbox' | 'remove' + generator: GeneratorView + state: WizardState + dispatch: (action: WizardAction) => void + moderationOpts: ModerationOpts +}) { + const isDiscover = generator.uri === DISCOVER_FEED_URI + const included = isDiscover || state.feeds.some(f => f.uri === generator.uri) + const disabled = isDiscover || (!included && state.feeds.length >= 3) + const moderationUi = moderateFeedGenerator(generator, moderationOpts).ui( + 'avatar', + ) + + const onPress = () => { + if (disabled) return + + Keyboard.dismiss() + if (included) { + dispatch({type: 'RemoveFeed', feedUri: generator.uri}) + } else { + dispatch({type: 'AddFeed', feed: generator}) + } + } + + return ( + + ) +} diff --git a/src/components/TagMenu/index.tsx b/src/components/TagMenu/index.tsx index 0ed7036671..2c6a0b674c 100644 --- a/src/components/TagMenu/index.tsx +++ b/src/components/TagMenu/index.tsx @@ -1,27 +1,27 @@ import React from 'react' import {View} from 'react-native' -import {useNavigation} from '@react-navigation/native' -import {useLingui} from '@lingui/react' import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' -import {atoms as a, native, useTheme} from '#/alf' -import * as Dialog from '#/components/Dialog' -import {Text} from '#/components/Typography' -import {Button, ButtonText} from '#/components/Button' -import {MagnifyingGlass2_Stroke2_Corner0_Rounded as Search} from '#/components/icons/MagnifyingGlass2' -import {Person_Stroke2_Corner0_Rounded as Person} from '#/components/icons/Person' -import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute' -import {Divider} from '#/components/Divider' -import {Link} from '#/components/Link' import {makeSearchLink} from '#/lib/routes/links' import {NavigationProp} from '#/lib/routes/types' +import {isInvalidHandle} from '#/lib/strings/handles' import { usePreferencesQuery, + useRemoveMutedWordsMutation, useUpsertMutedWordsMutation, - useRemoveMutedWordMutation, } from '#/state/queries/preferences' +import {atoms as a, native, useTheme} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import * as Dialog from '#/components/Dialog' +import {Divider} from '#/components/Divider' +import {MagnifyingGlass2_Stroke2_Corner0_Rounded as Search} from '#/components/icons/MagnifyingGlass2' +import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute' +import {Person_Stroke2_Corner0_Rounded as Person} from '#/components/icons/Person' +import {Link} from '#/components/Link' import {Loader} from '#/components/Loader' -import {isInvalidHandle} from '#/lib/strings/handles' +import {Text} from '#/components/Typography' export function useTagMenuControl() { return Dialog.useDialogControl() @@ -52,10 +52,10 @@ export function TagMenu({ reset: resetUpsert, } = useUpsertMutedWordsMutation() const { - mutateAsync: removeMutedWord, + mutateAsync: removeMutedWords, variables: optimisticRemove, reset: resetRemove, - } = useRemoveMutedWordMutation() + } = useRemoveMutedWordsMutation() const displayTag = '#' + tag const isMuted = Boolean( @@ -65,9 +65,20 @@ export function TagMenu({ optimisticUpsert?.find( m => m.value === tag && m.targets.includes('tag'), )) && - !(optimisticRemove?.value === tag), + !optimisticRemove?.find(m => m?.value === tag), ) + /* + * Mute word records that exactly match the tag in question. + */ + const removeableMuteWords = React.useMemo(() => { + return ( + preferences?.moderationPrefs.mutedWords?.filter(word => { + return word.value === tag + }) || [] + ) + }, [tag, preferences?.moderationPrefs?.mutedWords]) + return ( <> {children} @@ -212,13 +223,16 @@ export function TagMenu({ control.close(() => { if (isMuted) { resetUpsert() - removeMutedWord({ - value: tag, - targets: ['tag'], - }) + removeMutedWords(removeableMuteWords) } else { resetRemove() - upsertMutedWord([{value: tag, targets: ['tag']}]) + upsertMutedWord([ + { + value: tag, + targets: ['tag'], + actorTarget: 'all', + }, + ]) } }) }}> diff --git a/src/components/TagMenu/index.web.tsx b/src/components/TagMenu/index.web.tsx index 4336223861..b6c306439a 100644 --- a/src/components/TagMenu/index.web.tsx +++ b/src/components/TagMenu/index.web.tsx @@ -3,16 +3,16 @@ import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' -import {isInvalidHandle} from '#/lib/strings/handles' -import {EventStopper} from '#/view/com/util/EventStopper' -import {NativeDropdown} from '#/view/com/util/forms/NativeDropdown' import {NavigationProp} from '#/lib/routes/types' +import {isInvalidHandle} from '#/lib/strings/handles' +import {enforceLen} from '#/lib/strings/helpers' import { usePreferencesQuery, + useRemoveMutedWordsMutation, useUpsertMutedWordsMutation, - useRemoveMutedWordMutation, } from '#/state/queries/preferences' -import {enforceLen} from '#/lib/strings/helpers' +import {EventStopper} from '#/view/com/util/EventStopper' +import {NativeDropdown} from '#/view/com/util/forms/NativeDropdown' import {web} from '#/alf' import * as Dialog from '#/components/Dialog' @@ -47,8 +47,8 @@ export function TagMenu({ const {data: preferences} = usePreferencesQuery() const {mutateAsync: upsertMutedWord, variables: optimisticUpsert} = useUpsertMutedWordsMutation() - const {mutateAsync: removeMutedWord, variables: optimisticRemove} = - useRemoveMutedWordMutation() + const {mutateAsync: removeMutedWords, variables: optimisticRemove} = + useRemoveMutedWordsMutation() const isMuted = Boolean( (preferences?.moderationPrefs.mutedWords?.find( m => m.value === tag && m.targets.includes('tag'), @@ -56,10 +56,21 @@ export function TagMenu({ optimisticUpsert?.find( m => m.value === tag && m.targets.includes('tag'), )) && - !(optimisticRemove?.value === tag), + !optimisticRemove?.find(m => m?.value === tag), ) const truncatedTag = '#' + enforceLen(tag, 15, true, 'middle') + /* + * Mute word records that exactly match the tag in question. + */ + const removeableMuteWords = React.useMemo(() => { + return ( + preferences?.moderationPrefs.mutedWords?.filter(word => { + return word.value === tag + }) || [] + ) + }, [tag, preferences?.moderationPrefs?.mutedWords]) + const dropdownItems = React.useMemo(() => { return [ { @@ -105,9 +116,11 @@ export function TagMenu({ : _(msg`Mute ${truncatedTag}`), onPress() { if (isMuted) { - removeMutedWord({value: tag, targets: ['tag']}) + removeMutedWords(removeableMuteWords) } else { - upsertMutedWord([{value: tag, targets: ['tag']}]) + upsertMutedWord([ + {value: tag, targets: ['tag'], actorTarget: 'all'}, + ]) } }, testID: 'tagMenuMute', @@ -129,7 +142,8 @@ export function TagMenu({ tag, truncatedTag, upsertMutedWord, - removeMutedWord, + removeMutedWords, + removeableMuteWords, ]) return ( diff --git a/src/components/VideoDownloadScreen.native.tsx b/src/components/VideoDownloadScreen.native.tsx new file mode 100644 index 0000000000..a1f6466fd2 --- /dev/null +++ b/src/components/VideoDownloadScreen.native.tsx @@ -0,0 +1,4 @@ +export function VideoDownloadScreen() { + // @TODO redirect + return null +} diff --git a/src/components/VideoDownloadScreen.tsx b/src/components/VideoDownloadScreen.tsx new file mode 100644 index 0000000000..3169d265d9 --- /dev/null +++ b/src/components/VideoDownloadScreen.tsx @@ -0,0 +1,215 @@ +import React from 'react' +import {parse} from 'hls-parser' +import {MasterPlaylist, MediaPlaylist, Variant} from 'hls-parser/types' + +interface PostMessageData { + action: 'progress' | 'error' + messageStr?: string + messageFloat?: number +} + +function postMessage(data: PostMessageData) { + // @ts-expect-error safari webview only + if (window?.webkit) { + // @ts-expect-error safari webview only + window.webkit.messageHandlers.onMessage.postMessage(JSON.stringify(data)) + // @ts-expect-error android webview only + } else if (AndroidInterface) { + // @ts-expect-error android webview only + AndroidInterface.onMessage(JSON.stringify(data)) + } +} + +function createSegementUrl(originalUrl: string, newFile: string) { + const parts = originalUrl.split('/') + parts[parts.length - 1] = newFile + return parts.join('/') +} + +export function VideoDownloadScreen() { + const ffmpegRef = React.useRef(null) + const fetchFileRef = React.useRef(null) + + const [dataUrl, setDataUrl] = React.useState(null) + + const load = React.useCallback(async () => { + const ffmpegLib = await import('@ffmpeg/ffmpeg') + const ffmpeg = new ffmpegLib.FFmpeg() + ffmpegRef.current = ffmpeg + + const ffmpegUtilLib = await import('@ffmpeg/util') + fetchFileRef.current = ffmpegUtilLib.fetchFile + + const baseURL = 'https://unpkg.com/@ffmpeg/core@0.12.6/dist/esm' + + await ffmpeg.load({ + coreURL: await ffmpegUtilLib.toBlobURL( + `${baseURL}/ffmpeg-core.js`, + 'text/javascript', + ), + wasmURL: await ffmpegUtilLib.toBlobURL( + `${baseURL}/ffmpeg-core.wasm`, + 'application/wasm', + ), + }) + }, []) + + const createMp4 = React.useCallback(async (videoUrl: string) => { + // Get the master playlist and find the best variant + const masterPlaylistRes = await fetch(videoUrl) + const masterPlaylistText = await masterPlaylistRes.text() + const masterPlaylist = parse(masterPlaylistText) as MasterPlaylist + + // If URL given is not a master playlist, we probably cannot handle this. + if (!masterPlaylist.isMasterPlaylist) { + postMessage({ + action: 'error', + messageStr: 'A master playlist was not found in the provided playlist.', + }) + return + } + + // Figure out what the best quality is. These should generally be in order, but we'll check them all just in case + let bestVariant: Variant | undefined + for (const variant of masterPlaylist.variants) { + if (!bestVariant || variant.bandwidth > bestVariant.bandwidth) { + bestVariant = variant + } + } + + // Should only happen if there was no variants at all given to us. Mostly for types. + if (!bestVariant) { + postMessage({ + action: 'error', + messageStr: 'No variants were found in the provided master playlist.', + }) + return + } + + const urlParts = videoUrl.split('/') + urlParts[urlParts.length - 1] = bestVariant?.uri + const bestVariantUrl = urlParts.join('/') + + // Download and parse m3u8 + const hlsFileRes = await fetch(bestVariantUrl) + const hlsPlainText = await hlsFileRes.text() + const playlist = parse(hlsPlainText) as MediaPlaylist + + // This one shouldn't be a master playlist - again just for types really + if (playlist.isMasterPlaylist) { + postMessage({ + action: 'error', + messageStr: 'An unknown error has occurred.', + }) + return + } + + const ffmpeg = ffmpegRef.current + + // Get the correctly ordered file names. We need to remove the tracking info from the end of the file name + const segments = playlist.segments.map(segment => { + return segment.uri.split('?')[0] + }) + + // Download each segment + let error: string | null = null + let completed = 0 + await Promise.all( + playlist.segments.map(async segment => { + const uri = createSegementUrl(bestVariantUrl, segment.uri) + const filename = segment.uri.split('?')[0] + + const res = await fetch(uri) + if (!res.ok) { + error = 'Failed to download playlist segment.' + } + + const blob = await res.blob() + try { + await ffmpeg.writeFile(filename, await fetchFileRef.current(blob)) + } catch (e: unknown) { + error = 'Failed to write file.' + } finally { + completed++ + const progress = completed / playlist.segments.length + postMessage({ + action: 'progress', + messageFloat: progress, + }) + } + }), + ) + + // Do something if there was an error + if (error) { + postMessage({ + action: 'error', + messageStr: error, + }) + return + } + + // Put the segments together + await ffmpeg.exec([ + '-i', + `concat:${segments.join('|')}`, + '-c:v', + 'copy', + 'output.mp4', + ]) + + const fileData = await ffmpeg.readFile('output.mp4') + const blob = new Blob([fileData.buffer], {type: 'video/mp4'}) + const dataUrl = await new Promise(resolve => { + const reader = new FileReader() + reader.onloadend = () => resolve(reader.result as string) + reader.onerror = () => resolve(null) + reader.readAsDataURL(blob) + }) + return dataUrl + }, []) + + const download = React.useCallback( + async (videoUrl: string) => { + await load() + const mp4Res = await createMp4(videoUrl) + + if (!mp4Res) { + postMessage({ + action: 'error', + messageStr: 'An error occurred while creating the MP4.', + }) + return + } + + setDataUrl(mp4Res) + }, + [createMp4, load], + ) + + React.useEffect(() => { + const url = new URL(window.location.href) + const videoUrl = url.searchParams.get('videoUrl') + + if (!videoUrl) { + postMessage({action: 'error', messageStr: 'No video URL provided'}) + } else { + setDataUrl(null) + download(videoUrl) + } + }, [download]) + + if (!dataUrl) return null + + return ( +
+ ) +} diff --git a/src/components/WhoCanReply.tsx b/src/components/WhoCanReply.tsx new file mode 100644 index 0000000000..1ffb4da39d --- /dev/null +++ b/src/components/WhoCanReply.tsx @@ -0,0 +1,339 @@ +import React from 'react' +import {Keyboard, StyleProp, View, ViewStyle} from 'react-native' +import { + AppBskyFeedDefs, + AppBskyFeedGetPostThread, + AppBskyGraphDefs, + AtUri, + BskyAgent, +} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useQueryClient} from '@tanstack/react-query' + +import {createThreadgate} from '#/lib/api' +import {until} from '#/lib/async/until' +import {HITSLOP_10} from '#/lib/constants' +import {makeListLink, makeProfileLink} from '#/lib/routes/links' +import {logger} from '#/logger' +import {isNative} from '#/platform/detection' +import {RQKEY_ROOT as POST_THREAD_RQKEY_ROOT} from '#/state/queries/post-thread' +import { + ThreadgateSetting, + threadgateViewToSettings, +} from '#/state/queries/threadgate' +import {useAgent} from '#/state/session' +import * as Toast from 'view/com/util/Toast' +import {atoms as a, useTheme} from '#/alf' +import {Button} from '#/components/Button' +import * as Dialog from '#/components/Dialog' +import {useDialogControl} from '#/components/Dialog' +import {CircleBanSign_Stroke2_Corner0_Rounded as CircleBanSign} from '#/components/icons/CircleBanSign' +import {Earth_Stroke2_Corner0_Rounded as Earth} from '#/components/icons/Globe' +import {Group3_Stroke2_Corner0_Rounded as Group} from '#/components/icons/Group' +import {Text} from '#/components/Typography' +import {TextLink} from '../view/com/util/Link' +import {ThreadgateEditorDialog} from './dialogs/ThreadgateEditor' +import {PencilLine_Stroke2_Corner0_Rounded as PencilLine} from './icons/Pencil' + +interface WhoCanReplyProps { + post: AppBskyFeedDefs.PostView + isThreadAuthor: boolean + style?: StyleProp +} + +export function WhoCanReply({post, isThreadAuthor, style}: WhoCanReplyProps) { + const {_} = useLingui() + const t = useTheme() + const infoDialogControl = useDialogControl() + const editDialogControl = useDialogControl() + const agent = useAgent() + const queryClient = useQueryClient() + + const settings = React.useMemo( + () => threadgateViewToSettings(post.threadgate), + [post], + ) + const isRootPost = !('reply' in post.record) + + if (!isRootPost) { + return null + } + if (!settings.length && !isThreadAuthor) { + return null + } + + const isEverybody = settings.length === 0 + const isNobody = !!settings.find(gate => gate.type === 'nobody') + const description = isEverybody + ? _(msg`Everybody can reply`) + : isNobody + ? _(msg`Replies disabled`) + : _(msg`Some people can reply`) + + const onPressEdit = () => { + if (isNative && Keyboard.isVisible()) { + Keyboard.dismiss() + } + if (isThreadAuthor) { + editDialogControl.open() + } else { + infoDialogControl.open() + } + } + + const onEditConfirm = async (newSettings: ThreadgateSetting[]) => { + if (JSON.stringify(settings) === JSON.stringify(newSettings)) { + return + } + try { + if (newSettings.length) { + await createThreadgate(agent, post.uri, newSettings) + } else { + await agent.api.com.atproto.repo.deleteRecord({ + repo: agent.session!.did, + collection: 'app.bsky.feed.threadgate', + rkey: new AtUri(post.uri).rkey, + }) + } + await whenAppViewReady(agent, post.uri, res => { + const thread = res.data.thread + if (AppBskyFeedDefs.isThreadViewPost(thread)) { + const fetchedSettings = threadgateViewToSettings( + thread.post.threadgate, + ) + return JSON.stringify(fetchedSettings) === JSON.stringify(newSettings) + } + return false + }) + Toast.show(_(msg`Thread settings updated`)) + queryClient.invalidateQueries({ + queryKey: [POST_THREAD_RQKEY_ROOT], + }) + } catch (err) { + Toast.show( + _( + msg`There was an issue. Please check your internet connection and try again.`, + ), + 'xmark', + ) + logger.error('Failed to edit threadgate', {message: err}) + } + } + + return ( + <> + + + {isThreadAuthor && ( + + )} + + ) +} + +function Icon({ + color, + width, + settings, +}: { + color: string + width?: number + settings: ThreadgateSetting[] +}) { + const isEverybody = settings.length === 0 + const isNobody = !!settings.find(gate => gate.type === 'nobody') + const IconComponent = isEverybody ? Earth : isNobody ? CircleBanSign : Group + return +} + +function WhoCanReplyDialog({ + control, + post, + settings, +}: { + control: Dialog.DialogControlProps + post: AppBskyFeedDefs.PostView + settings: ThreadgateSetting[] +}) { + return ( + + + + + ) +} + +function WhoCanReplyDialogInner({ + post, + settings, +}: { + post: AppBskyFeedDefs.PostView + settings: ThreadgateSetting[] +}) { + const {_} = useLingui() + return ( + + + + Who can reply? + + + + + ) +} + +function Rules({ + post, + settings, +}: { + post: AppBskyFeedDefs.PostView + settings: ThreadgateSetting[] +}) { + const t = useTheme() + return ( + + {!settings.length ? ( + Everybody can reply + ) : settings[0].type === 'nobody' ? ( + Replies to this thread are disabled + ) : ( + + Only{' '} + {settings.map((rule, i) => ( + <> + + + + ))}{' '} + can reply + + )} + + ) +} + +function Rule({ + rule, + post, + lists, +}: { + rule: ThreadgateSetting + post: AppBskyFeedDefs.PostView + lists: AppBskyGraphDefs.ListViewBasic[] | undefined +}) { + const t = useTheme() + if (rule.type === 'mention') { + return mentioned users + } + if (rule.type === 'following') { + return ( + + users followed by{' '} + + + ) + } + if (rule.type === 'list') { + const list = lists?.find(l => l.uri === rule.list) + if (list) { + const listUrip = new AtUri(list.uri) + return ( + + {' '} + members + + ) + } + } +} + +function Separator({i, length}: {i: number; length: number}) { + if (length < 2 || i === length - 1) { + return null + } + if (i === length - 2) { + return ( + <> + {length > 2 ? ',' : ''} and{' '} + + ) + } + return <>, +} + +async function whenAppViewReady( + agent: BskyAgent, + uri: string, + fn: (res: AppBskyFeedGetPostThread.Response) => boolean, +) { + await until( + 5, // 5 tries + 1e3, // 1s delay between tries + fn, + () => + agent.app.bsky.feed.getPostThread({ + uri, + depth: 0, + }), + ) +} diff --git a/src/components/anim/AnimatedCheck.tsx b/src/components/anim/AnimatedCheck.tsx new file mode 100644 index 0000000000..7fdfc14cfa --- /dev/null +++ b/src/components/anim/AnimatedCheck.tsx @@ -0,0 +1,92 @@ +import React from 'react' +import Animated, { + Easing, + useAnimatedProps, + useSharedValue, + withDelay, + withTiming, +} from 'react-native-reanimated' +import Svg, {Circle, Path} from 'react-native-svg' + +import {Props, useCommonSVGProps} from '#/components/icons/common' + +const AnimatedPath = Animated.createAnimatedComponent(Path) +const AnimatedCircle = Animated.createAnimatedComponent(Circle) + +const PATH = 'M14.1 27.2l7.1 7.2 16.7-16.8' + +export interface AnimatedCheckRef { + play(cb?: () => void): void +} + +export interface AnimatedCheckProps extends Props { + playOnMount?: boolean +} + +export const AnimatedCheck = React.forwardRef< + AnimatedCheckRef, + AnimatedCheckProps +>(function AnimatedCheck({playOnMount, ...props}, ref) { + const {fill, size, style, ...rest} = useCommonSVGProps(props) + const circleAnim = useSharedValue(0) + const checkAnim = useSharedValue(0) + + const circleAnimatedProps = useAnimatedProps(() => ({ + strokeDashoffset: 166 - circleAnim.value * 166, + })) + const checkAnimatedProps = useAnimatedProps(() => ({ + strokeDashoffset: 48 - 48 * checkAnim.value, + })) + + const play = React.useCallback( + (cb?: () => void) => { + circleAnim.value = 0 + checkAnim.value = 0 + + circleAnim.value = withTiming(1, {duration: 500, easing: Easing.linear}) + checkAnim.value = withDelay( + 500, + withTiming(1, {duration: 300, easing: Easing.linear}, cb), + ) + }, + [circleAnim, checkAnim], + ) + + React.useImperativeHandle(ref, () => ({ + play, + })) + + React.useEffect(() => { + if (playOnMount) { + play() + } + }, [play, playOnMount]) + + return ( + + + + + ) +}) diff --git a/src/components/dialogs/EmbedConsent.tsx b/src/components/dialogs/EmbedConsent.tsx index c3fefd9f09..f7e6145975 100644 --- a/src/components/dialogs/EmbedConsent.tsx +++ b/src/components/dialogs/EmbedConsent.tsx @@ -113,6 +113,7 @@ export function EmbedConsentDialog({ + ) diff --git a/src/components/dialogs/GifSelect.ios.tsx b/src/components/dialogs/GifSelect.ios.tsx new file mode 100644 index 0000000000..091a23e51c --- /dev/null +++ b/src/components/dialogs/GifSelect.ios.tsx @@ -0,0 +1,255 @@ +import React, { + useCallback, + useImperativeHandle, + useMemo, + useRef, + useState, +} from 'react' +import {Modal, ScrollView, TextInput, View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {cleanError} from '#/lib/strings/errors' +import { + Gif, + useFeaturedGifsQuery, + useGifSearchQuery, +} from '#/state/queries/tenor' +import {ErrorScreen} from '#/view/com/util/error/ErrorScreen' +import {ErrorBoundary} from '#/view/com/util/ErrorBoundary' +import {FlatList_INTERNAL} from '#/view/com/util/Views' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import * as TextField from '#/components/forms/TextField' +import {MagnifyingGlass2_Stroke2_Corner0_Rounded as Search} from '#/components/icons/MagnifyingGlass2' +import {Button, ButtonText} from '../Button' +import {Handle} from '../Dialog' +import {useThrottledValue} from '../hooks/useThrottledValue' +import {ListFooter, ListMaybePlaceholder} from '../Lists' +import {GifPreview} from './GifSelect.shared' + +export function GifSelectDialog({ + controlRef, + onClose, + onSelectGif: onSelectGifProp, +}: { + controlRef: React.RefObject<{open: () => void}> + onClose: () => void + onSelectGif: (gif: Gif) => void +}) { + const t = useTheme() + const [open, setOpen] = useState(false) + + useImperativeHandle(controlRef, () => ({ + open: () => setOpen(true), + })) + + const close = useCallback(() => { + setOpen(false) + onClose() + }, [onClose]) + + const onSelectGif = useCallback( + (gif: Gif) => { + onSelectGifProp(gif) + close() + }, + [onSelectGifProp, close], + ) + + const renderErrorBoundary = useCallback( + (error: any) => , + [close], + ) + + return ( + + + + + + + + + ) +} + +function GifList({ + onSelectGif, +}: { + close: () => void + onSelectGif: (gif: Gif) => void +}) { + const {_} = useLingui() + const t = useTheme() + const {gtMobile} = useBreakpoints() + const textInputRef = useRef(null) + const listRef = useRef(null) + const [undeferredSearch, setSearch] = useState('') + const search = useThrottledValue(undeferredSearch, 500) + + const isSearching = search.length > 0 + + const trendingQuery = useFeaturedGifsQuery() + const searchQuery = useGifSearchQuery(search) + + const { + data, + fetchNextPage, + isFetchingNextPage, + hasNextPage, + error, + isLoading, + isError, + refetch, + } = isSearching ? searchQuery : trendingQuery + + const flattenedData = useMemo(() => { + return data?.pages.flatMap(page => page.results) || [] + }, [data]) + + const renderItem = useCallback( + ({item}: {item: Gif}) => { + return + }, + [onSelectGif], + ) + + const onEndReached = React.useCallback(() => { + if (isFetchingNextPage || !hasNextPage || error) return + fetchNextPage() + }, [isFetchingNextPage, hasNextPage, error, fetchNextPage]) + + const hasData = flattenedData.length > 0 + + const onGoBack = useCallback(() => { + if (isSearching) { + // clear the input and reset the state + textInputRef.current?.clear() + setSearch('') + } else { + close() + } + }, [isSearching]) + + const listHeader = useMemo(() => { + return ( + + {/* cover top corners */} + + + + + { + setSearch(text) + listRef.current?.scrollToOffset({offset: 0, animated: false}) + }} + returnKeyType="search" + clearButtonMode="while-editing" + inputRef={textInputRef} + maxLength={50} + /> + + + ) + }, [t.atoms.bg, _]) + + return ( + + {listHeader} + {!hasData && ( + + )} + + } + stickyHeaderIndices={[0]} + onEndReached={onEndReached} + onEndReachedThreshold={4} + keyExtractor={(item: Gif) => item.id} + keyboardDismissMode="on-drag" + ListFooterComponent={ + hasData ? ( + + ) : null + } + /> + ) +} + +function ModalError({details, close}: {details?: string; close: () => void}) { + const {_} = useLingui() + + return ( + + + + + ) +} diff --git a/src/components/dialogs/GifSelect.shared.tsx b/src/components/dialogs/GifSelect.shared.tsx new file mode 100644 index 0000000000..90b2abaa83 --- /dev/null +++ b/src/components/dialogs/GifSelect.shared.tsx @@ -0,0 +1,53 @@ +import React, {useCallback} from 'react' +import {Image} from 'expo-image' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {logEvent} from '#/lib/statsig/statsig' +import {Gif} from '#/state/queries/tenor' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {Button} from '../Button' + +export function GifPreview({ + gif, + onSelectGif, +}: { + gif: Gif + onSelectGif: (gif: Gif) => void +}) { + const {gtTablet} = useBreakpoints() + const {_} = useLingui() + const t = useTheme() + + const onPress = useCallback(() => { + logEvent('composer:gif:select', {}) + onSelectGif(gif) + }, [onSelectGif, gif]) + + return ( + + ) +} diff --git a/src/components/dialogs/GifSelect.tsx b/src/components/dialogs/GifSelect.tsx index 4a3ce42aa9..4c60c6ebeb 100644 --- a/src/components/dialogs/GifSelect.tsx +++ b/src/components/dialogs/GifSelect.tsx @@ -1,11 +1,15 @@ -import React, {useCallback, useMemo, useRef, useState} from 'react' +import React, { + useCallback, + useImperativeHandle, + useMemo, + useRef, + useState, +} from 'react' import {TextInput, View} from 'react-native' -import {Image} from 'expo-image' import {BottomSheetFlatListMethods} from '@discord/bottom-sheet' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {logEvent} from '#/lib/statsig/statsig' import {cleanError} from '#/lib/strings/errors' import {isWeb} from '#/platform/detection' import { @@ -23,16 +27,23 @@ import {ArrowLeft_Stroke2_Corner0_Rounded as Arrow} from '#/components/icons/Arr import {MagnifyingGlass2_Stroke2_Corner0_Rounded as Search} from '#/components/icons/MagnifyingGlass2' import {Button, ButtonIcon, ButtonText} from '../Button' import {ListFooter, ListMaybePlaceholder} from '../Lists' +import {GifPreview} from './GifSelect.shared' export function GifSelectDialog({ - control, + controlRef, onClose, onSelectGif: onSelectGifProp, }: { - control: Dialog.DialogControlProps + controlRef: React.RefObject<{open: () => void}> onClose: () => void onSelectGif: (gif: Gif) => void }) { + const control = Dialog.useDialogControl() + + useImperativeHandle(controlRef, () => ({ + open: () => control.open(), + })) + const onSelectGif = useCallback( (gif: Gif) => { control.close(() => onSelectGifProp(gif)) @@ -233,56 +244,14 @@ function GifList({ ) } -function GifPreview({ - gif, - onSelectGif, -}: { - gif: Gif - onSelectGif: (gif: Gif) => void -}) { - const {gtTablet} = useBreakpoints() - const {_} = useLingui() - const t = useTheme() - - const onPress = useCallback(() => { - logEvent('composer:gif:select', {}) - onSelectGif(gif) - }, [onSelectGif, gif]) - - return ( - - ) -} - function DialogError({details}: {details?: string}) { const {_} = useLingui() const control = Dialog.useDialogContext() return ( - + { const sanitizedValue = sanitizeMutedWordValue(field) - const targets = ['tag', options.includes('content') && 'content'].filter( + const surfaces = ['tag', targets.includes('content') && 'content'].filter( Boolean, ) as AppBskyActorDefs.MutedWord['targets'] + const actorTarget = excludeFollowing ? 'exclude-following' : 'all' - if (!sanitizedValue || !targets.length) { + const now = Date.now() + const rawDuration = durations.at(0) + // undefined evaluates to 'forever' + let duration: string | undefined + + if (rawDuration === '24_hours') { + duration = new Date(now + ONE_DAY).toISOString() + } else if (rawDuration === '7_days') { + duration = new Date(now + 7 * ONE_DAY).toISOString() + } else if (rawDuration === '30_days') { + duration = new Date(now + 30 * ONE_DAY).toISOString() + } + + if (!sanitizedValue || !surfaces.length) { setField('') setError(_(msg`Please enter a valid word, tag, or phrase to mute`)) return @@ -70,28 +89,37 @@ function MutedWordsInner() { try { // send raw value and rely on SDK as sanitization source of truth - await addMutedWord([{value: field, targets}]) + await addMutedWord([ + { + value: field, + targets: surfaces, + actorTarget, + expiresAt: duration, + }, + ]) setField('') } catch (e: any) { logger.error(`Failed to save muted word`, {message: e.message}) setError(e.message) } - }, [_, field, options, addMutedWord, setField]) + }, [_, field, targets, addMutedWord, setField, durations, excludeFollowing]) return ( - + Add muted words and tags - Posts can be muted based on their text, their tags, or both. + Posts can be muted based on their text, their tags, or both. We + recommend avoiding common words that appear in many posts, since it + can result in no posts being shown. - + + + + values={durations} + onChange={setDurations}> + + Duration: + + + + + + + + + Forever + + + + + + + + + + + 24 hours + + + + + + + + + + + + + 7 days + + + + + + + + + + + 30 days + + + + + + + + + + + Mute in: + + + + style={[a.flex_1]}> - + - - Mute in text & tags + + Text & tags @@ -140,34 +273,64 @@ function MutedWordsInner() { + style={[a.flex_1]}> - + - - Mute in tags only + + Tags only - - + + + Options: + + + + + + + Exclude users you follow + + + + + + + + + + {error && ( )} - - - - We recommend avoiding common words that appear in many posts, - since it can result in no posts being shown. - - @@ -268,6 +417,9 @@ function MutedWordRow({ const {_} = useLingui() const {isPending, mutateAsync: removeMutedWord} = useRemoveMutedWordMutation() const control = Prompt.usePromptControl() + const expiryDate = word.expiresAt ? new Date(word.expiresAt) : undefined + const isExpired = expiryDate && expiryDate < new Date() + const formatDistance = useFormatDistance() const remove = React.useCallback(async () => { control.close() @@ -280,7 +432,7 @@ function MutedWordRow({ control={control} title={_(msg`Are you sure?`)} description={_( - msg`This will delete ${word.value} from your muted words. You can always add it back later.`, + msg`This will delete "${word.value}" from your muted words. You can always add it back later.`, )} onConfirm={remove} confirmButtonCta={_(msg`Remove`)} @@ -289,53 +441,94 @@ function MutedWordRow({ - - {word.value} - + + + + {word.targets.find(t => t === 'content') ? ( + + {word.value}{' '} + + in{' '} + + text & tags + + + + ) : ( + + {word.value}{' '} + + in{' '} + + tags + + + + )} + + - - {word.targets.map(target => ( - + {(expiryDate || word.actorTarget === 'exclude-following') && ( + - {target === 'content' ? _(msg`text`) : _(msg`tag`)} + style={[ + a.flex_1, + a.text_xs, + a.leading_snug, + t.atoms.text_contrast_medium, + ]}> + {expiryDate && ( + <> + {isExpired ? ( + Expired + ) : ( + + Expires{' '} + {formatDistance(expiryDate, new Date(), { + addSuffix: true, + })} + + )} + + )} + {word.actorTarget === 'exclude-following' && ( + <> + {' • '} + Excludes users you follow + + )} - ))} - - + )} + + ) @@ -357,12 +550,11 @@ function TargetToggle({children}: React.PropsWithChildren<{}>) { a.px_sm, gtMobile && a.px_md, a.rounded_sm, - t.atoms.bg_contrast_50, - (ctx.hovered || ctx.focused) && t.atoms.bg_contrast_100, + t.atoms.bg_contrast_25, + (ctx.hovered || ctx.focused) && t.atoms.bg_contrast_50, ctx.selected && [ { - backgroundColor: - t.name === 'light' ? t.palette.primary_50 : t.palette.primary_975, + backgroundColor: t.palette.primary_50, }, ], ctx.disabled && { diff --git a/src/components/dialogs/ThreadgateEditor.tsx b/src/components/dialogs/ThreadgateEditor.tsx new file mode 100644 index 0000000000..90483b3adf --- /dev/null +++ b/src/components/dialogs/ThreadgateEditor.tsx @@ -0,0 +1,217 @@ +import React from 'react' +import {StyleProp, View, ViewStyle} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import isEqual from 'lodash.isequal' + +import {useMyListsQuery} from '#/state/queries/my-lists' +import {ThreadgateSetting} from '#/state/queries/threadgate' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import * as Dialog from '#/components/Dialog' +import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' +import {Text} from '#/components/Typography' + +interface ThreadgateEditorDialogProps { + control: Dialog.DialogControlProps + threadgate: ThreadgateSetting[] + onChange?: (v: ThreadgateSetting[]) => void + onConfirm?: (v: ThreadgateSetting[]) => void +} + +export function ThreadgateEditorDialog({ + control, + threadgate, + onChange, + onConfirm, +}: ThreadgateEditorDialogProps) { + return ( + + + + + ) +} + +function DialogContent({ + seedThreadgate, + onChange, + onConfirm, +}: { + seedThreadgate: ThreadgateSetting[] + onChange?: (v: ThreadgateSetting[]) => void + onConfirm?: (v: ThreadgateSetting[]) => void +}) { + const {_} = useLingui() + const control = Dialog.useDialogContext() + const {data: lists} = useMyListsQuery('curate') + const [draft, setDraft] = React.useState(seedThreadgate) + + const [prevSeedThreadgate, setPrevSeedThreadgate] = + React.useState(seedThreadgate) + if (seedThreadgate !== prevSeedThreadgate) { + // New data flowed from above (e.g. due to update coming through). + setPrevSeedThreadgate(seedThreadgate) + setDraft(seedThreadgate) // Reset draft. + } + + function updateThreadgate(nextThreadgate: ThreadgateSetting[]) { + setDraft(nextThreadgate) + onChange?.(nextThreadgate) + } + + const onPressEverybody = () => { + updateThreadgate([]) + } + + const onPressNobody = () => { + updateThreadgate([{type: 'nobody'}]) + } + + const onPressAudience = (setting: ThreadgateSetting) => { + // remove nobody + let newSelected: ThreadgateSetting[] = draft.filter( + v => v.type !== 'nobody', + ) + // toggle + const i = newSelected.findIndex(v => isEqual(v, setting)) + if (i === -1) { + newSelected.push(setting) + } else { + newSelected.splice(i, 1) + } + updateThreadgate(newSelected) + } + + const doneLabel = onConfirm ? _(msg`Save`) : _(msg`Done`) + return ( + + + + Choose who can reply + + + Either choose "Everybody" or "Nobody" + + + + v.type === 'nobody')} + onPress={onPressNobody} + style={{flex: 1}} + /> + + + Or combine these options: + + + v.type === 'mention')} + onPress={() => onPressAudience({type: 'mention'})} + /> + v.type === 'following')} + onPress={() => onPressAudience({type: 'following'})} + /> + {lists && lists.length > 0 + ? lists.map(list => ( + v.type === 'list' && v.list === list.uri) + } + onPress={() => + onPressAudience({type: 'list', list: list.uri}) + } + /> + )) + : // No loading states to avoid jumps for the common case (no lists) + null} + + + + + + ) +} + +function Selectable({ + label, + isSelected, + onPress, + style, +}: { + label: string + isSelected: boolean + onPress: () => void + style?: StyleProp +}) { + const t = useTheme() + return ( + + ) +} diff --git a/src/components/dms/ActionsWrapper.tsx b/src/components/dms/ActionsWrapper.tsx index 3b9a56bdcb..1bb57ff90b 100644 --- a/src/components/dms/ActionsWrapper.tsx +++ b/src/components/dms/ActionsWrapper.tsx @@ -1,5 +1,6 @@ import React from 'react' -import {Keyboard, Pressable, View} from 'react-native' +import {Keyboard} from 'react-native' +import {Gesture, GestureDetector} from 'react-native-gesture-handler' import Animated, { cancelAnimation, runOnJS, @@ -8,6 +9,8 @@ import Animated, { withTiming, } from 'react-native-reanimated' import {ChatBskyConvoDefs} from '@atproto/api' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {HITSLOP_10} from 'lib/constants' import {useHaptics} from 'lib/haptics' @@ -15,8 +18,6 @@ import {atoms as a} from '#/alf' import {MessageMenu} from '#/components/dms/MessageMenu' import {useMenuControl} from '#/components/Menu' -const AnimatedPressable = Animated.createAnimatedComponent(Pressable) - export function ActionsWrapper({ message, isFromSelf, @@ -26,60 +27,69 @@ export function ActionsWrapper({ isFromSelf: boolean children: React.ReactNode }) { + const {_} = useLingui() const playHaptic = useHaptics() const menuControl = useMenuControl() const scale = useSharedValue(1) - const animationDidComplete = useSharedValue(false) const animatedStyle = useAnimatedStyle(() => ({ transform: [{scale: scale.value}], })) - // Reanimated's `runOnJS` doesn't like refs, so we can't use `runOnJS(menuControl.open)()`. Instead, we'll use this - // function const open = React.useCallback(() => { + playHaptic() Keyboard.dismiss() menuControl.open() - }, [menuControl]) + }, [menuControl, playHaptic]) const shrink = React.useCallback(() => { 'worklet' cancelAnimation(scale) - scale.value = withTiming(1, {duration: 200}, () => { - animationDidComplete.value = false - }) - }, [animationDidComplete, scale]) + scale.value = withTiming(1, {duration: 200}) + }, [scale]) - const grow = React.useCallback(() => { - 'worklet' - scale.value = withTiming(1.05, {duration: 450}, finished => { - if (!finished) return - animationDidComplete.value = true - runOnJS(playHaptic)() - runOnJS(open)() + const doubleTapGesture = Gesture.Tap() + .numberOfTaps(2) + .hitSlop(HITSLOP_10) + .onEnd(open) - shrink() + const pressAndHoldGesture = Gesture.LongPress() + .onStart(() => { + scale.value = withTiming(1.05, {duration: 200}, finished => { + if (!finished) return + runOnJS(open)() + shrink() + }) }) - }, [scale, animationDidComplete, playHaptic, shrink, open]) + .onTouchesUp(shrink) + .onTouchesMove(shrink) + .cancelsTouchesInView(false) + .runOnJS(true) + + const composedGestures = Gesture.Exclusive( + doubleTapGesture, + pressAndHoldGesture, + ) return ( - - + + {children} - - - + + + ) } diff --git a/src/components/dms/BlockedByListDialog.tsx b/src/components/dms/BlockedByListDialog.tsx new file mode 100644 index 0000000000..b786e36815 --- /dev/null +++ b/src/components/dms/BlockedByListDialog.tsx @@ -0,0 +1,63 @@ +import React from 'react' +import {View} from 'react-native' +import {ModerationCause} from '@atproto/api' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {listUriToHref} from 'lib/strings/url-helpers' +import {atoms as a, useTheme} from '#/alf' +import * as Dialog from '#/components/Dialog' +import {DialogControlProps} from '#/components/Dialog' +import {InlineLinkText} from '#/components/Link' +import * as Prompt from '#/components/Prompt' +import {Text} from '#/components/Typography' + +export function BlockedByListDialog({ + control, + listBlocks, +}: { + control: DialogControlProps + listBlocks: ModerationCause[] +}) { + const {_} = useLingui() + const t = useTheme() + + return ( + + {_(msg`User blocked by list`)} + + + + {_( + msg`This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user.`, + )}{' '} + + + + {_(msg`Lists blocking this user:`)}{' '} + {listBlocks.map((block, i) => + block.source.type === 'list' ? ( + + {i === 0 ? null : ', '} + + {block.source.list.name} + + + ) : null, + )} + + + + + {}} /> + + + + + ) +} diff --git a/src/components/dms/ChatEmptyPill.tsx b/src/components/dms/ChatEmptyPill.tsx new file mode 100644 index 0000000000..4633832fc3 --- /dev/null +++ b/src/components/dms/ChatEmptyPill.tsx @@ -0,0 +1,98 @@ +import React from 'react' +import {Pressable, View} from 'react-native' +import Animated, { + runOnJS, + useAnimatedStyle, + useSharedValue, + withTiming, +} from 'react-native-reanimated' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {ScaleAndFadeIn} from 'lib/custom-animations/ScaleAndFade' +import {ShrinkAndPop} from 'lib/custom-animations/ShrinkAndPop' +import {useHaptics} from 'lib/haptics' +import {isWeb} from 'platform/detection' +import {atoms as a, useTheme} from '#/alf' +import {Text} from '#/components/Typography' + +const AnimatedPressable = Animated.createAnimatedComponent(Pressable) + +let lastIndex = 0 + +export function ChatEmptyPill() { + const t = useTheme() + const {_} = useLingui() + const playHaptic = useHaptics() + const [promptIndex, setPromptIndex] = React.useState(lastIndex) + + const scale = useSharedValue(1) + + const prompts = React.useMemo(() => { + return [ + _(msg`Say hello!`), + _(msg`Share your favorite feed!`), + _(msg`Tell a joke!`), + _(msg`Share a fun fact!`), + _(msg`Share a cool story!`), + _(msg`Send a neat website!`), + _(msg`Clip 🐴 clop 🐴`), + ] + }, [_]) + + const onPressIn = React.useCallback(() => { + if (isWeb) return + scale.value = withTiming(1.075, {duration: 100}) + }, [scale]) + + const onPressOut = React.useCallback(() => { + if (isWeb) return + scale.value = withTiming(1, {duration: 100}) + }, [scale]) + + const onPress = React.useCallback(() => { + runOnJS(playHaptic)() + let randomPromptIndex = Math.floor(Math.random() * prompts.length) + while (randomPromptIndex === lastIndex) { + randomPromptIndex = Math.floor(Math.random() * prompts.length) + } + setPromptIndex(randomPromptIndex) + lastIndex = randomPromptIndex + }, [playHaptic, prompts.length]) + + const animatedStyle = useAnimatedStyle(() => ({ + transform: [{scale: scale.value}], + })) + + return ( + + + + {prompts[promptIndex]} + + + + ) +} diff --git a/src/components/dms/ConvoMenu.tsx b/src/components/dms/ConvoMenu.tsx index 16e8d98c6c..a4fa625fae 100644 --- a/src/components/dms/ConvoMenu.tsx +++ b/src/components/dms/ConvoMenu.tsx @@ -3,37 +3,37 @@ import {Keyboard, Pressable, View} from 'react-native' import { AppBskyActorDefs, ChatBskyConvoDefs, - ModerationDecision, + ModerationCause, } from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' import {NavigationProp} from '#/lib/routes/types' -import {listUriToHref} from '#/lib/strings/url-helpers' import {Shadow} from '#/state/cache/types' import { useConvoQuery, useMarkAsReadMutation, } from '#/state/queries/messages/conversation' -import {useLeaveConvo} from '#/state/queries/messages/leave-conversation' import {useMuteConvo} from '#/state/queries/messages/mute-conversation' import {useProfileBlockMutationQueue} from '#/state/queries/profile' import * as Toast from '#/view/com/util/Toast' -import {atoms as a, useTheme} from '#/alf' -import * as Dialog from '#/components/Dialog' +import {atoms as a, useTheme, ViewStyleProp} from '#/alf' +import {BlockedByListDialog} from '#/components/dms/BlockedByListDialog' +import {LeaveConvoPrompt} from '#/components/dms/LeaveConvoPrompt' +import {ReportConversationPrompt} from '#/components/dms/ReportConversationPrompt' import {ArrowBoxLeft_Stroke2_Corner0_Rounded as ArrowBoxLeft} from '#/components/icons/ArrowBoxLeft' import {DotGrid_Stroke2_Corner0_Rounded as DotsHorizontal} from '#/components/icons/DotGrid' import {Flag_Stroke2_Corner0_Rounded as Flag} from '#/components/icons/Flag' import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute' -import {Person_Stroke2_Corner0_Rounded as Person} from '#/components/icons/Person' -import {PersonCheck_Stroke2_Corner0_Rounded as PersonCheck} from '#/components/icons/PersonCheck' -import {PersonX_Stroke2_Corner0_Rounded as PersonX} from '#/components/icons/PersonX' +import { + Person_Stroke2_Corner0_Rounded as Person, + PersonCheck_Stroke2_Corner0_Rounded as PersonCheck, + PersonX_Stroke2_Corner0_Rounded as PersonX, +} from '#/components/icons/Person' import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/icons/Speaker' -import {InlineLinkText} from '#/components/Link' import * as Menu from '#/components/Menu' import * as Prompt from '#/components/Prompt' -import {Text} from '#/components/Typography' import {Bubble_Stroke2_Corner2_Rounded as Bubble} from '../icons/Bubble' let ConvoMenu = ({ @@ -43,8 +43,8 @@ let ConvoMenu = ({ currentScreen, showMarkAsRead, hideTrigger, - triggerOpacity, - moderation, + blockInfo, + style, }: { convo: ChatBskyConvoDefs.ConvoView profile: Shadow @@ -52,8 +52,11 @@ let ConvoMenu = ({ currentScreen: 'list' | 'conversation' showMarkAsRead?: boolean hideTrigger?: boolean - triggerOpacity?: number - moderation: ModerationDecision + blockInfo: { + listBlocks: ModerationCause[] + userBlock?: ModerationCause + } + style?: ViewStyleProp['style'] }): React.ReactNode => { const navigation = useNavigation() const {_} = useLingui() @@ -62,17 +65,10 @@ let ConvoMenu = ({ const reportControl = Prompt.usePromptControl() const blockedByListControl = Prompt.usePromptControl() const {mutate: markAsRead} = useMarkAsReadMutation() - const modui = moderation.ui('profileView') - const {listBlocks, userBlock} = React.useMemo(() => { - const blocks = modui.alerts.filter(alert => alert.type === 'blocking') - const listBlocks = blocks.filter(alert => alert.source.type === 'list') - const userBlock = blocks.find(alert => alert.source.type === 'user') - return { - listBlocks, - userBlock, - } - }, [modui]) - const isBlocking = !!userBlock || !!listBlocks.length + + const {listBlocks, userBlock} = blockInfo + const isBlocking = userBlock || !!listBlocks.length + const isDeletedAccount = profile.handle === 'missing.invalid' const {data: convo} = useConvoQuery(initialConvo) @@ -89,7 +85,7 @@ let ConvoMenu = ({ } }, onError: () => { - Toast.show(_(msg`Could not mute chat`)) + Toast.show(_(msg`Could not mute chat`), 'xmark') }, }) @@ -108,22 +104,11 @@ let ConvoMenu = ({ } }, [userBlock, listBlocks, blockedByListControl, queueBlock, queueUnblock]) - const {mutate: leaveConvo} = useLeaveConvo(convo?.id, { - onSuccess: () => { - if (currentScreen === 'conversation') { - navigation.replace('Messages') - } - }, - onError: () => { - Toast.show(_(msg`Could not leave chat`)) - }, - }) - return ( <> {!hideTrigger && ( - + {({props, state}) => ( )} - - - {showMarkAsRead && ( - - markAsRead({ - convoId: convo?.id, - }) - }> - - Mark as read - - - - )} - - - Go to profile - - - - muteConvo({mute: !convo?.muted})}> - - {convo?.muted ? ( - Unmute notifications - ) : ( - Mute notifications - )} - - - - - - - - - {isBlocking ? _(msg`Unblock account`) : _(msg`Block account`)} - - - - - - Report conversation - - - - - - + + {isDeletedAccount ? ( + @@ -214,71 +142,94 @@ let ConvoMenu = ({ - - + + ) : ( + + + {showMarkAsRead && ( + + markAsRead({ + convoId: convo?.id, + }) + }> + + Mark as read + + + + )} + + + Go to profile + + + + muteConvo({mute: !convo?.muted})}> + + {convo?.muted ? ( + Unmute conversation + ) : ( + Mute conversation + )} + + + + + + + + + {isBlocking ? _(msg`Unblock account`) : _(msg`Block account`)} + + + + + + Report conversation + + + + + + + + + Leave conversation + + + + + + )} - leaveConvo()} + convoId={convo.id} + currentScreen={currentScreen} /> - - + - - - {_(msg`User blocked by list`)} - - - - {_( - msg`This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user.`, - )}{' '} - - - - {_(msg`Lists blocking this user:`)}{' '} - {listBlocks.map((block, i) => - block.source.type === 'list' ? ( - - {i === 0 ? null : ', '} - - {block.source.list.name} - - - ) : null, - )} - - - - - - - - - ) } ConvoMenu = React.memo(ConvoMenu) export {ConvoMenu} - -function noop() {} diff --git a/src/components/dms/LeaveConvoPrompt.tsx b/src/components/dms/LeaveConvoPrompt.tsx new file mode 100644 index 0000000000..b0dd83b294 --- /dev/null +++ b/src/components/dms/LeaveConvoPrompt.tsx @@ -0,0 +1,55 @@ +import React from 'react' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' + +import {NavigationProp} from 'lib/routes/types' +import {isNative} from 'platform/detection' +import {useLeaveConvo} from 'state/queries/messages/leave-conversation' +import * as Toast from 'view/com/util/Toast' +import {DialogOuterProps} from '#/components/Dialog' +import * as Prompt from '#/components/Prompt' + +export function LeaveConvoPrompt({ + control, + convoId, + currentScreen, +}: { + control: DialogOuterProps['control'] + convoId: string + currentScreen: 'list' | 'conversation' +}) { + const {_} = useLingui() + const navigation = useNavigation() + + const {mutate: leaveConvo} = useLeaveConvo(convoId, { + onSuccess: () => { + if (currentScreen === 'conversation') { + navigation.replace( + 'Messages', + isNative + ? { + animation: 'pop', + } + : {}, + ) + } + }, + onError: () => { + Toast.show(_(msg`Could not leave chat`), 'xmark') + }, + }) + + return ( + leaveConvo()} + /> + ) +} diff --git a/src/components/dms/MessageItem.tsx b/src/components/dms/MessageItem.tsx index cafd7ca5a5..573c24f77d 100644 --- a/src/components/dms/MessageItem.tsx +++ b/src/components/dms/MessageItem.tsx @@ -6,7 +6,11 @@ import { TextStyle, View, } from 'react-native' -import {ChatBskyConvoDefs, RichText as RichTextAPI} from '@atproto/api' +import { + AppBskyEmbedRecord, + ChatBskyConvoDefs, + RichText as RichTextAPI, +} from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -17,7 +21,8 @@ import {atoms as a, useTheme} from '#/alf' import {ActionsWrapper} from '#/components/dms/ActionsWrapper' import {InlineLinkText} from '#/components/Link' import {Text} from '#/components/Typography' -import {RichText} from '../RichText' +import {isOnlyEmoji, RichText} from '../RichText' +import {MessageItemEmbed} from './MessageItemEmbed' let MessageItem = ({ item, @@ -67,47 +72,50 @@ let MessageItem = ({ lastInGroupRef.current = isLastInGroup } - const pendingColor = - t.name === 'light' ? t.palette.primary_200 : t.palette.primary_800 + const pendingColor = t.palette.primary_200 const rt = useMemo(() => { return new RichTextAPI({text: message.text, facets: message.facets}) }, [message.text, message.facets]) return ( - + - - - + {AppBskyEmbedRecord.isView(message.embed) && ( + + )} + {rt.text.length > 0 && ( + + + + )} {isLastInGroup && ( @@ -202,7 +210,7 @@ let MessageItemMetadata = ({ )} - {item.type === 'pending-message' && item.retry && ( + {item.type === 'pending-message' && item.failed && ( <> {' '} ·{' '} @@ -214,15 +222,20 @@ let MessageItemMetadata = ({ }, ]}> {_(msg`Failed to send`)} - {' '} - ·{' '} - - {_(msg`Retry`)} - + + {item.retry && ( + <> + {' '} + ·{' '} + + {_(msg`Retry`)} + + + )} )} diff --git a/src/components/dms/MessageItemEmbed.tsx b/src/components/dms/MessageItemEmbed.tsx new file mode 100644 index 0000000000..aefd62b9ac --- /dev/null +++ b/src/components/dms/MessageItemEmbed.tsx @@ -0,0 +1,22 @@ +import React from 'react' +import {View} from 'react-native' +import {AppBskyEmbedRecord} from '@atproto/api' + +import {PostEmbeds} from '#/view/com/util/post-embeds' +import {atoms as a, native, useTheme} from '#/alf' + +let MessageItemEmbed = ({ + embed, +}: { + embed: AppBskyEmbedRecord.View +}): React.ReactNode => { + const t = useTheme() + + return ( + + + + ) +} +MessageItemEmbed = React.memo(MessageItemEmbed) +export {MessageItemEmbed} diff --git a/src/components/dms/MessageMenu.tsx b/src/components/dms/MessageMenu.tsx index f4645f286b..2978d2b220 100644 --- a/src/components/dms/MessageMenu.tsx +++ b/src/components/dms/MessageMenu.tsx @@ -6,11 +6,16 @@ import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {richTextToString} from '#/lib/strings/rich-text-helpers' +import {getTranslatorLink} from '#/locale/helpers' +import {useLanguagePrefs} from '#/state/preferences' +import {useOpenLink} from '#/state/preferences/in-app-browser' import {isWeb} from 'platform/detection' import {useConvoActive} from 'state/messages/convo' import {useSession} from 'state/session' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' +import {ReportDialog} from '#/components/dms/ReportDialog' +import {BubbleQuestion_Stroke2_Corner0_Rounded as Translate} from '#/components/icons/Bubble' import {DotGrid_Stroke2_Corner0_Rounded as DotsHorizontal} from '#/components/icons/DotGrid' import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' @@ -18,7 +23,6 @@ import * as Menu from '#/components/Menu' import * as Prompt from '#/components/Prompt' import {usePromptControl} from '#/components/Prompt' import {Clipboard_Stroke2_Corner2_Rounded as ClipboardIcon} from '../icons/Clipboard' -import {MessageReportDialog} from './MessageReportDialog' export let MessageMenu = ({ message, @@ -34,12 +38,13 @@ export let MessageMenu = ({ const {currentAccount} = useSession() const convo = useConvoActive() const deleteControl = usePromptControl() - const retryDeleteControl = usePromptControl() const reportControl = usePromptControl() + const langPrefs = useLanguagePrefs() + const openLink = useOpenLink() const isFromSelf = message.sender?.did === currentAccount?.did - const onCopyPostText = React.useCallback(() => { + const onCopyMessage = React.useCallback(() => { const str = richTextToString( new RichText({ text: message.text, @@ -49,16 +54,24 @@ export let MessageMenu = ({ ) Clipboard.setStringAsync(str) - Toast.show(_(msg`Copied to clipboard`)) + Toast.show(_(msg`Copied to clipboard`), 'clipboard-check') }, [_, message.text, message.facets]) + const onPressTranslateMessage = React.useCallback(() => { + const translatorUrl = getTranslatorLink( + message.text, + langPrefs.primaryLanguage, + ) + openLink(translatorUrl) + }, [langPrefs.primaryLanguage, message.text, openLink]) + const onDelete = React.useCallback(() => { LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) convo .deleteMessage(message.id) .then(() => Toast.show(_(msg`Message deleted`))) - .catch(() => retryDeleteControl.open()) - }, [_, convo, message.id, retryDeleteControl]) + .catch(() => Toast.show(_(msg`Failed to delete message`))) + }, [_, convo, message.id]) return ( <> @@ -82,16 +95,27 @@ export let MessageMenu = ({ )} - - - {_(msg`Copy message text`)} - - - - + {message.text.length > 0 && ( + <> + + + {_(msg`Translate`)} + + + + {_(msg`Copy message text`)} + + + + + + )} - + - - ) } diff --git a/src/components/dms/MessageProfileButton.tsx b/src/components/dms/MessageProfileButton.tsx new file mode 100644 index 0000000000..7f440d621f --- /dev/null +++ b/src/components/dms/MessageProfileButton.tsx @@ -0,0 +1,80 @@ +import React from 'react' +import {View} from 'react-native' +import {AppBskyActorDefs} from '@atproto/api' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {useMaybeConvoForUser} from '#/state/queries/messages/get-convo-for-members' +import {logEvent} from 'lib/statsig/statsig' +import {atoms as a, useTheme} from '#/alf' +import {Message_Stroke2_Corner0_Rounded as Message} from '../icons/Message' +import {Link} from '../Link' +import {canBeMessaged} from './util' + +export function MessageProfileButton({ + profile, +}: { + profile: AppBskyActorDefs.ProfileView +}) { + const {_} = useLingui() + const t = useTheme() + + const {data: convo, isPending} = useMaybeConvoForUser(profile.did) + + const onPress = React.useCallback(() => { + if (convo && !convo.lastMessage) { + logEvent('chat:create', {logContext: 'ProfileHeader'}) + } + logEvent('chat:open', {logContext: 'ProfileHeader'}) + }, [convo]) + + if (isPending) { + // show pending state based on declaration + if (canBeMessaged(profile)) { + return ( + + + + ) + } else { + return null + } + } + + if (convo) { + return ( + + + + ) + } else { + return null + } +} diff --git a/src/components/dms/MessagesListBlockedFooter.tsx b/src/components/dms/MessagesListBlockedFooter.tsx new file mode 100644 index 0000000000..a018b8623a --- /dev/null +++ b/src/components/dms/MessagesListBlockedFooter.tsx @@ -0,0 +1,131 @@ +import React from 'react' +import {View} from 'react-native' +import {AppBskyActorDefs, ModerationCause} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {useProfileShadow} from 'state/cache/profile-shadow' +import {useProfileBlockMutationQueue} from 'state/queries/profile' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import {useDialogControl} from '#/components/Dialog' +import {Divider} from '#/components/Divider' +import {BlockedByListDialog} from '#/components/dms/BlockedByListDialog' +import {LeaveConvoPrompt} from '#/components/dms/LeaveConvoPrompt' +import {ReportConversationPrompt} from '#/components/dms/ReportConversationPrompt' +import {Text} from '#/components/Typography' + +export function MessagesListBlockedFooter({ + recipient: initialRecipient, + convoId, + hasMessages, + blockInfo, +}: { + recipient: AppBskyActorDefs.ProfileViewBasic + convoId: string + hasMessages: boolean + blockInfo: { + listBlocks: ModerationCause[] + userBlock: ModerationCause | undefined + } +}) { + const t = useTheme() + const {gtMobile} = useBreakpoints() + const {_} = useLingui() + const recipient = useProfileShadow(initialRecipient) + const [__, queueUnblock] = useProfileBlockMutationQueue(recipient) + + const leaveConvoControl = useDialogControl() + const reportControl = useDialogControl() + const blockedByListControl = useDialogControl() + + const {listBlocks, userBlock} = blockInfo + const isBlocking = !!userBlock || !!listBlocks.length + + const onUnblockPress = React.useCallback(() => { + if (listBlocks.length) { + blockedByListControl.open() + } else { + queueUnblock() + } + }, [blockedByListControl, listBlocks, queueUnblock]) + + return ( + + + + {isBlocking ? ( + You have blocked this user + ) : ( + This user has blocked you + )} + + + + + + {isBlocking && gtMobile && ( + + )} + + {isBlocking && !gtMobile && ( + + + + )} + + + + + + + + ) +} diff --git a/src/components/dms/MessagesListHeader.tsx b/src/components/dms/MessagesListHeader.tsx new file mode 100644 index 0000000000..1a6bbbe601 --- /dev/null +++ b/src/components/dms/MessagesListHeader.tsx @@ -0,0 +1,230 @@ +import React, {useCallback} from 'react' +import {TouchableOpacity, View} from 'react-native' +import { + AppBskyActorDefs, + ModerationCause, + ModerationDecision, +} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' + +import {BACK_HITSLOP} from 'lib/constants' +import {makeProfileLink} from 'lib/routes/links' +import {NavigationProp} from 'lib/routes/types' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {isWeb} from 'platform/detection' +import {useProfileShadow} from 'state/cache/profile-shadow' +import {isConvoActive, useConvo} from 'state/messages/convo' +import {PreviewableUserAvatar} from 'view/com/util/UserAvatar' +import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' +import {ConvoMenu} from '#/components/dms/ConvoMenu' +import {Bell2Off_Filled_Corner0_Rounded as BellStroke} from '#/components/icons/Bell2' +import {Link} from '#/components/Link' +import {PostAlerts} from '#/components/moderation/PostAlerts' +import {Text} from '#/components/Typography' + +const PFP_SIZE = isWeb ? 40 : 34 + +export let MessagesListHeader = ({ + profile, + moderation, + blockInfo, +}: { + profile?: AppBskyActorDefs.ProfileViewBasic + moderation?: ModerationDecision + blockInfo?: { + listBlocks: ModerationCause[] + userBlock?: ModerationCause + } +}): React.ReactNode => { + const t = useTheme() + const {_} = useLingui() + const {gtTablet} = useBreakpoints() + const navigation = useNavigation() + + const onPressBack = useCallback(() => { + if (isWeb) { + navigation.replace('Messages', {}) + } else { + navigation.goBack() + } + }, [navigation]) + + return ( + + {!gtTablet && ( + + + + )} + + {profile && moderation && blockInfo ? ( + + ) : ( + <> + + + + + + + + + + + )} + + ) +} +MessagesListHeader = React.memo(MessagesListHeader) + +function HeaderReady({ + profile: profileUnshadowed, + moderation, + blockInfo, +}: { + profile: AppBskyActorDefs.ProfileViewBasic + moderation: ModerationDecision + blockInfo: { + listBlocks: ModerationCause[] + userBlock?: ModerationCause + } +}) { + const {_} = useLingui() + const t = useTheme() + const convoState = useConvo() + const profile = useProfileShadow(profileUnshadowed) + + const isDeletedAccount = profile?.handle === 'missing.invalid' + const displayName = isDeletedAccount + ? 'Deleted Account' + : sanitizeDisplayName( + profile.displayName || profile.handle, + moderation.ui('displayName'), + ) + + return ( + + + + + + + + + {displayName} + + {!isDeletedAccount && ( + + @{profile.handle} + {convoState.convo?.muted && ( + <> + {' '} + ·{' '} + + + )} + + )} + + + + {isConvoActive(convoState) && ( + + )} + + + + + + + ) +} diff --git a/src/components/dms/MessagesNUX.tsx b/src/components/dms/MessagesNUX.tsx new file mode 100644 index 0000000000..9a3425243b --- /dev/null +++ b/src/components/dms/MessagesNUX.tsx @@ -0,0 +1,175 @@ +import React, {useCallback, useEffect} from 'react' +import {View} from 'react-native' +import {ChatBskyActorDeclaration} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {useUpdateActorDeclaration} from '#/state/queries/messages/actor-declaration' +import {useProfileQuery} from '#/state/queries/profile' +import {useSession} from '#/state/session' +import * as Toast from '#/view/com/util/Toast' +import {atoms as a, useTheme, web} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import * as Dialog from '#/components/Dialog' +import * as Toggle from '#/components/forms/Toggle' +import {Message_Stroke2_Corner0_Rounded} from '#/components/icons/Message' +import {Text} from '#/components/Typography' + +export function MessagesNUX() { + const control = Dialog.useDialogControl() + + const {currentAccount} = useSession() + const {data: profile} = useProfileQuery({ + did: currentAccount!.did, + }) + + useEffect(() => { + if (profile && typeof profile.associated?.chat === 'undefined') { + const timeout = setTimeout(() => { + control.open() + }, 1000) + + return () => { + clearTimeout(timeout) + } + } + }, [profile, control]) + + if (!profile) return null + + return ( + + + + + ) +} + +function DialogInner({ + chatDeclation, +}: { + chatDeclation?: ChatBskyActorDeclaration.Record +}) { + const control = Dialog.useDialogContext() + const {_} = useLingui() + const t = useTheme() + + const [initialized, setInitialzed] = React.useState(false) + const {mutate: updateDeclaration} = useUpdateActorDeclaration({ + onError: () => { + Toast.show(_(msg`Failed to update settings`), 'xmark') + }, + }) + + const onSelectItem = useCallback( + (keys: string[]) => { + const key = keys[0] + if (!key) return + updateDeclaration(key as 'all' | 'none' | 'following') + }, + [updateDeclaration], + ) + + useEffect(() => { + if (!chatDeclation && !initialized) { + updateDeclaration('following') + setInitialzed(true) + } + }, [chatDeclation, updateDeclaration, initialized]) + + return ( + + + + + + Direct messages are here! + + + Privately chat with other users. + + + + + + Who can message you? + + + You can change this at any time. + + + + + + + + Everyone + + + + + + Users I follow + + + + + + No one + + + + + + + + + + + + ) +} diff --git a/src/components/dms/NewChat.tsx b/src/components/dms/NewChat.tsx deleted file mode 100644 index 3975c0c5d5..0000000000 --- a/src/components/dms/NewChat.tsx +++ /dev/null @@ -1,278 +0,0 @@ -import React, {useCallback, useMemo, useRef, useState} from 'react' -import {Keyboard, View} from 'react-native' -import {AppBskyActorDefs, moderateProfile} from '@atproto/api' -import {BottomSheetFlatListMethods} from '@discord/bottom-sheet' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {sanitizeDisplayName} from '#/lib/strings/display-names' -import {sanitizeHandle} from '#/lib/strings/handles' -import {isWeb} from '#/platform/detection' -import {useModerationOpts} from '#/state/preferences/moderation-opts' -import {useGetConvoForMembers} from '#/state/queries/messages/get-convo-for-members' -import {useSession} from '#/state/session' -import {useActorAutocompleteQuery} from 'state/queries/actor-autocomplete' -import {FAB} from '#/view/com/util/fab/FAB' -import * as Toast from '#/view/com/util/Toast' -import {UserAvatar} from '#/view/com/util/UserAvatar' -import {atoms as a, useTheme, web} from '#/alf' -import * as Dialog from '#/components/Dialog' -import * as TextField from '#/components/forms/TextField' -import {MagnifyingGlass2_Stroke2_Corner0_Rounded as Search} from '#/components/icons/MagnifyingGlass2' -import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' -import {Button} from '../Button' -import {Envelope_Stroke2_Corner0_Rounded as Envelope} from '../icons/Envelope' -import {ListMaybePlaceholder} from '../Lists' -import {Text} from '../Typography' -import {canBeMessaged} from './util' - -export function NewChat({ - control, - onNewChat, -}: { - control: Dialog.DialogControlProps - onNewChat: (chatId: string) => void -}) { - const t = useTheme() - const {_} = useLingui() - - const {mutate: createChat} = useGetConvoForMembers({ - onSuccess: data => { - onNewChat(data.convo.id) - }, - onError: error => { - Toast.show(error.message) - }, - }) - - const onCreateChat = useCallback( - (did: string) => { - control.close(() => createChat([did])) - }, - [control, createChat], - ) - - return ( - <> - } - accessibilityRole="button" - accessibilityLabel={_(msg`New chat`)} - accessibilityHint="" - /> - - - - - - - ) -} - -function SearchablePeopleList({ - onCreateChat, -}: { - onCreateChat: (did: string) => void -}) { - const t = useTheme() - const {_} = useLingui() - const moderationOpts = useModerationOpts() - const control = Dialog.useDialogContext() - const listRef = useRef(null) - const {currentAccount} = useSession() - - const [searchText, setSearchText] = useState('') - - const { - data: actorAutocompleteData, - isFetching, - isError, - refetch, - } = useActorAutocompleteQuery(searchText, true) - - const renderItem = useCallback( - ({item: profile}: {item: AppBskyActorDefs.ProfileView}) => { - if (!moderationOpts) return null - - const moderation = moderateProfile(profile, moderationOpts) - - const disabled = !canBeMessaged(profile) - const handle = sanitizeHandle(profile.handle, '@') - - return ( - - ) - }, - [ - moderationOpts, - onCreateChat, - t.atoms.bg_contrast_25, - t.atoms.bg_contrast_50, - t.atoms.bg, - t.atoms.text, - t.atoms.text_contrast_high, - ], - ) - - const listHeader = useMemo(() => { - return ( - - {/* cover top corners */} - - - Start a new chat - - - - { - setSearchText(text) - listRef.current?.scrollToOffset({offset: 0, animated: false}) - }} - returnKeyType="search" - clearButtonMode="while-editing" - maxLength={50} - onKeyPress={({nativeEvent}) => { - if (nativeEvent.key === 'Escape') { - control.close() - } - }} - autoCorrect={false} - autoComplete="off" - autoCapitalize="none" - autoFocus - /> - - - - ) - }, [t.atoms.bg, _, control, searchText]) - - const dataWithoutSelf = useMemo(() => { - return ( - actorAutocompleteData?.filter( - profile => profile.did !== currentAccount?.did, - ) ?? [] - ) - }, [actorAutocompleteData, currentAccount?.did]) - - return ( - - {listHeader} - {searchText.length === 0 ? ( - - - - Search for someone to start a conversation with. - - - ) : ( - !actorAutocompleteData?.length && ( - - ) - )} - - } - stickyHeaderIndices={[0]} - keyExtractor={(item: AppBskyActorDefs.ProfileView) => item.did} - // @ts-expect-error web only - style={isWeb && {minHeight: '100vh'}} - onScrollBeginDrag={() => Keyboard.dismiss()} - /> - ) -} diff --git a/src/components/dms/NewMessagesPill.tsx b/src/components/dms/NewMessagesPill.tsx new file mode 100644 index 0000000000..924f7c4558 --- /dev/null +++ b/src/components/dms/NewMessagesPill.tsx @@ -0,0 +1,97 @@ +import React from 'react' +import {Pressable, View} from 'react-native' +import Animated, { + runOnJS, + useAnimatedStyle, + useSharedValue, + withTiming, +} from 'react-native-reanimated' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {Trans} from '@lingui/macro' + +import { + ScaleAndFadeIn, + ScaleAndFadeOut, +} from 'lib/custom-animations/ScaleAndFade' +import {useHaptics} from 'lib/haptics' +import {isAndroid, isIOS, isWeb} from 'platform/detection' +import {atoms as a, useTheme} from '#/alf' +import {Text} from '#/components/Typography' + +const AnimatedPressable = Animated.createAnimatedComponent(Pressable) + +export function NewMessagesPill({ + onPress: onPressInner, +}: { + onPress: () => void +}) { + const t = useTheme() + const playHaptic = useHaptics() + const {bottom: bottomInset} = useSafeAreaInsets() + const bottomBarHeight = isIOS ? 42 : isAndroid ? 60 : 0 + const bottomOffset = isWeb ? 0 : bottomInset + bottomBarHeight + + const scale = useSharedValue(1) + + const onPressIn = React.useCallback(() => { + if (isWeb) return + scale.value = withTiming(1.075, {duration: 100}) + }, [scale]) + + const onPressOut = React.useCallback(() => { + if (isWeb) return + scale.value = withTiming(1, {duration: 100}) + }, [scale]) + + const onPress = React.useCallback(() => { + runOnJS(playHaptic)() + onPressInner?.() + }, [onPressInner, playHaptic]) + + const animatedStyle = useAnimatedStyle(() => ({ + transform: [{scale: scale.value}], + })) + + return ( + + + + New messages + + + + ) +} diff --git a/src/components/dms/ReportConversationPrompt.tsx b/src/components/dms/ReportConversationPrompt.tsx new file mode 100644 index 0000000000..610cfbcf96 --- /dev/null +++ b/src/components/dms/ReportConversationPrompt.tsx @@ -0,0 +1,27 @@ +import React from 'react' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {DialogControlProps} from '#/components/Dialog' +import * as Prompt from '#/components/Prompt' + +export function ReportConversationPrompt({ + control, +}: { + control: DialogControlProps +}) { + const {_} = useLingui() + + return ( + {}} + showCancel={false} + /> + ) +} diff --git a/src/components/dms/MessageReportDialog.tsx b/src/components/dms/ReportDialog.tsx similarity index 77% rename from src/components/dms/MessageReportDialog.tsx rename to src/components/dms/ReportDialog.tsx index cc25732afb..5493a1c87f 100644 --- a/src/components/dms/MessageReportDialog.tsx +++ b/src/components/dms/ReportDialog.tsx @@ -16,6 +16,7 @@ import {CharProgress} from '#/view/com/composer/char-progress/CharProgress' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useBreakpoints, useTheme} from '#/alf' import * as Dialog from '#/components/Dialog' +import {KeyboardControllerPadding} from '#/components/KeyboardControllerPadding' import {Button, ButtonIcon, ButtonText} from '../Button' import {Divider} from '../Divider' import {ChevronLeft_Stroke2_Corner0_Rounded as Chevron} from '../icons/Chevron' @@ -25,12 +26,18 @@ import {RichText} from '../RichText' import {Text} from '../Typography' import {MessageItemMetadata} from './MessageItem' -let MessageReportDialog = ({ +type ReportDialogParams = { + type: 'convoMessage' + convoId: string + message: ChatBskyConvoDefs.MessageView +} + +let ReportDialog = ({ control, - message, + params, }: { control: Dialog.DialogControlProps - message: ChatBskyConvoDefs.MessageView + params: ReportDialogParams }): React.ReactNode => { const {_} = useLingui() return ( @@ -39,26 +46,27 @@ let MessageReportDialog = ({ nativeOptions={isAndroid ? {sheet: {snapPoints: ['100%']}} : {}}> - + + ) } -MessageReportDialog = memo(MessageReportDialog) -export {MessageReportDialog} +ReportDialog = memo(ReportDialog) +export {ReportDialog} -function DialogInner({message}: {message: ChatBskyConvoDefs.MessageView}) { +function DialogInner({params}: {params: ReportDialogParams}) { const [reportOption, setReportOption] = useState(null) return reportOption ? ( setReportOption(null)} /> ) : ( - + ) } @@ -66,6 +74,7 @@ function ReasonStep({ setReportOption, }: { setReportOption: (reportOption: ReportOption) => void + params: ReportDialogParams }) { const control = Dialog.useDialogContext() @@ -73,18 +82,20 @@ function ReasonStep({ ) } function SubmitStep({ - message, + params, reportOption, goBack, }: { - message: ChatBskyConvoDefs.MessageView + params: ReportDialogParams reportOption: ReportOption goBack: () => void }) { @@ -93,7 +104,7 @@ function SubmitStep({ const t = useTheme() const [details, setDetails] = useState('') const control = Dialog.useDialogContext() - const {getAgent} = useAgent() + const agent = useAgent() const { mutate: submit, @@ -101,17 +112,22 @@ function SubmitStep({ isPending: submitting, } = useMutation({ mutationFn: async () => { - const report = { - reasonType: reportOption.reason, - subject: { - $type: 'chat.bsky.convo.defs#messageRef', - messageId: message.id, - did: message.sender!.did, - } satisfies ChatBskyConvoDefs.MessageRef, - reason: details, - } satisfies ComAtprotoModerationCreateReport.InputSchema + if (params.type === 'convoMessage') { + const {convoId, message} = params - await getAgent().createModerationReport(report) + const report = { + reasonType: reportOption.reason, + subject: { + $type: 'chat.bsky.convo.defs#messageRef', + messageId: message.id, + convoId, + did: message.sender.did, + } satisfies ChatBskyConvoDefs.MessageRef, + reason: details, + } satisfies ComAtprotoModerationCreateReport.InputSchema + + await agent.createModerationReport(report) + } }, onSuccess: () => { control.close(() => { @@ -120,6 +136,14 @@ function SubmitStep({ }, }) + const copy = useMemo(() => { + return { + convoMessage: { + title: _(msg`Report this message`), + }, + }[params.type] + }, [_, params]) + return ( + + {title} + + + + + { + setSearchText(text) + listRef.current?.scrollToOffset({offset: 0, animated: false}) + }} + onEscape={control.close} + /> + + + ) + }, [ + t.atoms.border_contrast_low, + t.atoms.bg, + t.atoms.text_contrast_high, + t.palette.contrast_500, + _, + title, + searchText, + control, + ]) + + return ( + item.key} + style={[ + web([a.py_0, {height: '100vh', maxHeight: 600}, a.px_0]), + native({ + height: '100%', + paddingHorizontal: 0, + marginTop: 0, + paddingTop: 0, + borderTopLeftRadius: 40, + borderTopRightRadius: 40, + }), + ]} + webInnerStyle={[a.py_0, {maxWidth: 500, minWidth: 200}]} + keyboardDismissMode="on-drag" + /> + ) +} + +function ProfileCard({ + enabled, + profile, + moderationOpts, + onPress, +}: { + enabled: boolean + profile: AppBskyActorDefs.ProfileView + moderationOpts: ModerationOpts + onPress: (did: string) => void +}) { + const t = useTheme() + const {_} = useLingui() + const moderation = moderateProfile(profile, moderationOpts) + const handle = sanitizeHandle(profile.handle, '@') + const displayName = sanitizeDisplayName( + profile.displayName || sanitizeHandle(profile.handle), + moderation.ui('displayName'), + ) + + const handleOnPress = useCallback(() => { + onPress(profile.did) + }, [onPress, profile.did]) + + return ( + + ) +} + +function ProfileCardSkeleton() { + const t = useTheme() + + return ( + + + + + + + + + ) +} + +function Empty({message}: {message: string}) { + const t = useTheme() + return ( + + + {message} + + + (╯°□°)╯︵ ┻━┻ + + ) +} + +function SearchInput({ + value, + onChangeText, + onEscape, + inputRef, +}: { + value: string + onChangeText: (text: string) => void + onEscape: () => void + inputRef: React.RefObject +}) { + const t = useTheme() + const {_} = useLingui() + const { + state: hovered, + onIn: onMouseEnter, + onOut: onMouseLeave, + } = useInteractionState() + const {state: focused, onIn: onFocus, onOut: onBlur} = useInteractionState() + const interacted = hovered || focused + + return ( + + + + { + if (nativeEvent.key === 'Escape') { + onEscape() + } + }} + autoCorrect={false} + autoComplete="off" + autoCapitalize="none" + autoFocus + accessibilityLabel={_(msg`Search profiles`)} + accessibilityHint={_(msg`Search profiles`)} + /> + + ) +} diff --git a/src/components/dms/dialogs/ShareViaChatDialog.tsx b/src/components/dms/dialogs/ShareViaChatDialog.tsx new file mode 100644 index 0000000000..01906a430c --- /dev/null +++ b/src/components/dms/dialogs/ShareViaChatDialog.tsx @@ -0,0 +1,69 @@ +import React, {useCallback} from 'react' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {logger} from '#/logger' +import {useGetConvoForMembers} from '#/state/queries/messages/get-convo-for-members' +import {logEvent} from 'lib/statsig/statsig' +import * as Toast from '#/view/com/util/Toast' +import * as Dialog from '#/components/Dialog' +import {SearchablePeopleList} from './SearchablePeopleList' + +export function SendViaChatDialog({ + control, + onSelectChat, +}: { + control: Dialog.DialogControlProps + onSelectChat: (chatId: string) => void +}) { + return ( + + + + ) +} + +function SendViaChatDialogInner({ + control, + onSelectChat, +}: { + control: Dialog.DialogControlProps + onSelectChat: (chatId: string) => void +}) { + const {_} = useLingui() + const {mutate: createChat} = useGetConvoForMembers({ + onSuccess: data => { + onSelectChat(data.convo.id) + + if (!data.convo.lastMessage) { + logEvent('chat:create', {logContext: 'SendViaChatDialog'}) + } + logEvent('chat:open', {logContext: 'SendViaChatDialog'}) + }, + onError: error => { + logger.error('Failed to share post to chat', {message: error}) + Toast.show( + _(msg`An issue occurred while trying to open the chat`), + 'xmark', + ) + }, + }) + + const onCreateChat = useCallback( + (did: string) => { + control.close(() => createChat([did])) + }, + [control, createChat], + ) + + return ( + + ) +} diff --git a/src/components/dms/dialogs/TextInput.tsx b/src/components/dms/dialogs/TextInput.tsx new file mode 100644 index 0000000000..b4e77e3e07 --- /dev/null +++ b/src/components/dms/dialogs/TextInput.tsx @@ -0,0 +1 @@ +export {BottomSheetTextInput as TextInput} from '@discord/bottom-sheet/src' diff --git a/src/components/dms/dialogs/TextInput.web.tsx b/src/components/dms/dialogs/TextInput.web.tsx new file mode 100644 index 0000000000..5371a534f1 --- /dev/null +++ b/src/components/dms/dialogs/TextInput.web.tsx @@ -0,0 +1 @@ +export {TextInput} from 'react-native' diff --git a/src/components/forms/DateField/index.tsx b/src/components/forms/DateField/index.tsx index e231ac5baf..c916f4efce 100644 --- a/src/components/forms/DateField/index.tsx +++ b/src/components/forms/DateField/index.tsx @@ -1,5 +1,5 @@ import React from 'react' -import {View} from 'react-native' +import {Keyboard, View} from 'react-native' import DatePicker from 'react-native-date-picker' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -49,7 +49,10 @@ export function DateField({ { + Keyboard.dismiss() + control.open() + }} isInvalid={isInvalid} accessibilityHint={accessibilityHint} /> diff --git a/src/components/forms/TextField.tsx b/src/components/forms/TextField.tsx index 73a660ea6c..23229c8f44 100644 --- a/src/components/forms/TextField.tsx +++ b/src/components/forms/TextField.tsx @@ -101,16 +101,13 @@ export function useSharedInputStyles() { ] const error: ViewStyle[] = [ { - backgroundColor: - t.name === 'light' ? t.palette.negative_25 : t.palette.negative_900, - borderColor: - t.name === 'light' ? t.palette.negative_300 : t.palette.negative_800, + backgroundColor: t.palette.negative_25, + borderColor: t.palette.negative_300, }, ] const errorHover: ViewStyle[] = [ { - backgroundColor: - t.name === 'light' ? t.palette.negative_25 : t.palette.negative_900, + backgroundColor: t.palette.negative_25, borderColor: t.palette.negative_500, }, ] @@ -140,6 +137,7 @@ export function createInput(Component: typeof TextInput) { onChangeText, isInvalid, inputRef, + style, ...rest }: InputProps) { const t = useTheme() @@ -195,10 +193,19 @@ export function createInput(Component: typeof TextInput) { lineHeight: a.text_md.fontSize * 1.1875, textAlignVertical: rest.multiline ? 'top' : undefined, minHeight: rest.multiline ? 80 : undefined, + minWidth: 0, }, + // fix for autofill styles covering border + web({ + paddingTop: 12, + paddingBottom: 12, + marginTop: 2, + marginBottom: 2, + }), android({ paddingBottom: 16, }), + style, ]} /> diff --git a/src/components/forms/Toggle.tsx b/src/components/forms/Toggle.tsx index 7285e5faca..391b1c8b70 100644 --- a/src/components/forms/Toggle.tsx +++ b/src/components/forms/Toggle.tsx @@ -1,6 +1,8 @@ import React from 'react' import {Pressable, View, ViewStyle} from 'react-native' +import Animated, {LinearTransition} from 'react-native-reanimated' +import {isNative} from '#/platform/detection' import {HITSLOP_10} from 'lib/constants' import { atoms as a, @@ -244,6 +246,7 @@ export function LabelText({ @@ -281,24 +284,20 @@ export function createSharedToggleStyles({ if (selected) { base.push({ - backgroundColor: - t.name === 'light' ? t.palette.primary_25 : t.palette.primary_900, + backgroundColor: t.palette.primary_25, borderColor: t.palette.primary_500, }) if (hovered) { baseHover.push({ - backgroundColor: - t.name === 'light' ? t.palette.primary_100 : t.palette.primary_800, - borderColor: - t.name === 'light' ? t.palette.primary_600 : t.palette.primary_400, + backgroundColor: t.palette.primary_100, + borderColor: t.palette.primary_600, }) } } else { if (hovered) { baseHover.push({ - backgroundColor: - t.name === 'light' ? t.palette.contrast_50 : t.palette.contrast_100, + backgroundColor: t.palette.contrast_50, borderColor: t.palette.contrast_500, }) } @@ -306,16 +305,13 @@ export function createSharedToggleStyles({ if (isInvalid) { base.push({ - backgroundColor: - t.name === 'light' ? t.palette.negative_25 : t.palette.negative_975, - borderColor: - t.name === 'light' ? t.palette.negative_300 : t.palette.negative_800, + backgroundColor: t.palette.negative_25, + borderColor: t.palette.negative_300, }) if (hovered) { baseHover.push({ - backgroundColor: - t.name === 'light' ? t.palette.negative_25 : t.palette.negative_900, + backgroundColor: t.palette.negative_25, borderColor: t.palette.negative_600, }) } @@ -351,10 +347,10 @@ export function Checkbox() { style={[ a.justify_center, a.align_center, - a.border, a.rounded_xs, t.atoms.border_contrast_high, { + borderWidth: 1, height: 20, width: 20, }, @@ -382,34 +378,35 @@ export function Switch() { - @@ -435,10 +432,10 @@ export function Radio() { style={[ a.justify_center, a.align_center, - a.border, a.rounded_full, t.atoms.border_contrast_high, { + borderWidth: 1, height: 20, width: 20, }, @@ -463,3 +460,5 @@ export function Radio() { ) } + +export const Platform = isNative ? Switch : Checkbox diff --git a/src/components/forms/ToggleButton.tsx b/src/components/forms/ToggleButton.tsx index 7528426380..f47a272b18 100644 --- a/src/components/forms/ToggleButton.tsx +++ b/src/components/forms/ToggleButton.tsx @@ -23,10 +23,10 @@ export function Group({children, multiple, ...props}: GroupProps) { style={[ a.w_full, a.flex_row, - a.border, a.rounded_sm, a.overflow_hidden, t.atoms.border_contrast_low, + {borderWidth: 1}, ]}> {children} diff --git a/src/components/hooks/dates.ts b/src/components/hooks/dates.ts new file mode 100644 index 0000000000..b0f94133b7 --- /dev/null +++ b/src/components/hooks/dates.ts @@ -0,0 +1,69 @@ +/** + * Hooks for date-fns localized formatters. + * + * Our app supports some languages that are not included in date-fns by + * default, in which case it will fall back to English. + * + * {@link https://github.com/date-fns/date-fns/blob/main/docs/i18n.md} + */ + +import React from 'react' +import {formatDistance, Locale} from 'date-fns' +import { + ca, + de, + es, + fi, + fr, + hi, + id, + it, + ja, + ko, + ptBR, + tr, + uk, + zhCN, + zhTW, +} from 'date-fns/locale' + +import {AppLanguage} from '#/locale/languages' +import {useLanguagePrefs} from '#/state/preferences' + +/** + * {@link AppLanguage} + */ +const locales: Record = { + en: undefined, + ca, + de, + es, + fi, + fr, + ga: undefined, + hi, + id, + it, + ja, + ko, + ['pt-BR']: ptBR, + tr, + uk, + ['zh-CN']: zhCN, + ['zh-TW']: zhTW, +} + +/** + * Returns a localized `formatDistance` function. + * {@link formatDistance} + */ +export function useFormatDistance() { + const {appLanguage} = useLanguagePrefs() + return React.useCallback( + (date, baseDate, options) => { + const locale = locales[appLanguage as AppLanguage] + return formatDistance(date, baseDate, {...options, locale: locale}) + }, + [appLanguage], + ) +} diff --git a/src/components/hooks/useFollowMethods.ts b/src/components/hooks/useFollowMethods.ts index 1e91a1f38a..d67c3690f9 100644 --- a/src/components/hooks/useFollowMethods.ts +++ b/src/components/hooks/useFollowMethods.ts @@ -32,7 +32,7 @@ export function useFollowMethods({ } catch (e: any) { logger.error(`useFollowMethods: failed to follow`, {message: String(e)}) if (e?.name !== 'AbortError') { - Toast.show(_(msg`An issue occurred, please try again.`)) + Toast.show(_(msg`An issue occurred, please try again.`), 'xmark') } } }) @@ -47,7 +47,7 @@ export function useFollowMethods({ message: String(e), }) if (e?.name !== 'AbortError') { - Toast.show(_(msg`An issue occurred, please try again.`)) + Toast.show(_(msg`An issue occurred, please try again.`), 'xmark') } } }) diff --git a/src/components/hooks/useRichText.ts b/src/components/hooks/useRichText.ts index 4329638ea6..caf6febc04 100644 --- a/src/components/hooks/useRichText.ts +++ b/src/components/hooks/useRichText.ts @@ -7,7 +7,7 @@ export function useRichText(text: string): [RichTextAPI, boolean] { const [prevText, setPrevText] = React.useState(text) const [rawRT, setRawRT] = React.useState(() => new RichTextAPI({text})) const [resolvedRT, setResolvedRT] = React.useState(null) - const {getAgent} = useAgent() + const agent = useAgent() if (text !== prevText) { setPrevText(text) setRawRT(new RichTextAPI({text})) @@ -19,7 +19,7 @@ export function useRichText(text: string): [RichTextAPI, boolean] { async function resolveRTFacets() { // new each time const resolvedRT = new RichTextAPI({text}) - await resolvedRT.detectFacets(getAgent()) + await resolvedRT.detectFacets(agent) if (!ignore) { setResolvedRT(resolvedRT) } @@ -28,7 +28,7 @@ export function useRichText(text: string): [RichTextAPI, boolean] { return () => { ignore = true } - }, [text, getAgent]) + }, [text, agent]) const isResolving = resolvedRT === null return [resolvedRT ?? rawRT, isResolving] } diff --git a/src/components/hooks/useStarterPackEntry.native.ts b/src/components/hooks/useStarterPackEntry.native.ts new file mode 100644 index 0000000000..212ecae71d --- /dev/null +++ b/src/components/hooks/useStarterPackEntry.native.ts @@ -0,0 +1,64 @@ +import React from 'react' + +import { + createStarterPackLinkFromAndroidReferrer, + httpStarterPackUriToAtUri, +} from 'lib/strings/starter-pack' +import {isAndroid} from 'platform/detection' +import {useHasCheckedForStarterPack} from 'state/preferences/used-starter-packs' +import {useSetActiveStarterPack} from 'state/shell/starter-pack' +import {Referrer, SharedPrefs} from '../../../modules/expo-bluesky-swiss-army' + +export function useStarterPackEntry() { + const [ready, setReady] = React.useState(false) + const setActiveStarterPack = useSetActiveStarterPack() + const hasCheckedForStarterPack = useHasCheckedForStarterPack() + + React.useEffect(() => { + if (ready) return + + // On Android, we cannot clear the referral link. It gets stored for 90 days and all we can do is query for it. So, + // let's just ensure we never check again after the first time. + if (hasCheckedForStarterPack) { + setReady(true) + return + } + + // Safety for Android. Very unlike this could happen, but just in case. The response should be nearly immediate + const timeout = setTimeout(() => { + setReady(true) + }, 500) + + ;(async () => { + let uri: string | null | undefined + + if (isAndroid) { + const res = await Referrer.getGooglePlayReferrerInfoAsync() + + if (res && res.installReferrer) { + uri = createStarterPackLinkFromAndroidReferrer(res.installReferrer) + } + } else { + const starterPackUri = SharedPrefs.getString('starterPackUri') + if (starterPackUri) { + uri = httpStarterPackUriToAtUri(starterPackUri) + SharedPrefs.setValue('starterPackUri', null) + } + } + + if (uri) { + setActiveStarterPack({ + uri, + }) + } + + setReady(true) + })() + + return () => { + clearTimeout(timeout) + } + }, [ready, setActiveStarterPack, hasCheckedForStarterPack]) + + return ready +} diff --git a/src/components/hooks/useStarterPackEntry.ts b/src/components/hooks/useStarterPackEntry.ts new file mode 100644 index 0000000000..dba801e093 --- /dev/null +++ b/src/components/hooks/useStarterPackEntry.ts @@ -0,0 +1,29 @@ +import React from 'react' + +import {httpStarterPackUriToAtUri} from 'lib/strings/starter-pack' +import {useSetActiveStarterPack} from 'state/shell/starter-pack' + +export function useStarterPackEntry() { + const [ready, setReady] = React.useState(false) + + const setActiveStarterPack = useSetActiveStarterPack() + + React.useEffect(() => { + const href = window.location.href + const atUri = httpStarterPackUriToAtUri(href) + + if (atUri) { + const url = new URL(href) + // Determines if an App Clip is loading this landing page + const isClip = url.searchParams.get('clip') === 'true' + setActiveStarterPack({ + uri: atUri, + isClip, + }) + } + + setReady(true) + }, [setActiveStarterPack]) + + return ready +} diff --git a/src/components/icons/Arrow.tsx b/src/components/icons/Arrow.tsx index eb753e5493..0d4bc9479e 100644 --- a/src/components/icons/Arrow.tsx +++ b/src/components/icons/Arrow.tsx @@ -7,3 +7,11 @@ export const ArrowTopRight_Stroke2_Corner0_Rounded = createSinglePathSVG({ export const ArrowLeft_Stroke2_Corner0_Rounded = createSinglePathSVG({ path: 'M3 12a1 1 0 0 1 .293-.707l6-6a1 1 0 0 1 1.414 1.414L6.414 11H20a1 1 0 1 1 0 2H6.414l4.293 4.293a1 1 0 0 1-1.414 1.414l-6-6A1 1 0 0 1 3 12Z', }) + +export const ArrowRight_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M21 12a1 1 0 0 1-.293.707l-6 6a1 1 0 0 1-1.414-1.414L17.586 13H4a1 1 0 1 1 0-2h13.586l-4.293-4.293a1 1 0 0 1 1.414-1.414l6 6A1 1 0 0 1 21 12Z', +}) + +export const ArrowBottom_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M12 21a1 1 0 0 1-.707-.293l-6-6a1 1 0 1 1 1.414-1.414L11 17.586V4a1 1 0 1 1 2 0v13.586l4.293-4.293a1 1 0 0 1 1.414 1.414l-6 6A1 1 0 0 1 12 21Z', +}) diff --git a/src/components/icons/ArrowsDiagonal.tsx b/src/components/icons/ArrowsDiagonal.tsx new file mode 100644 index 0000000000..3f9ae40e0f --- /dev/null +++ b/src/components/icons/ArrowsDiagonal.tsx @@ -0,0 +1,17 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const ArrowsDiagonalOut_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M14 5a1 1 0 1 1 0-2h6a1 1 0 0 1 1 1v6a1 1 0 1 1-2 0V6.414l-4.293 4.293a1 1 0 0 1-1.414-1.414L17.586 5H14ZM4 13a1 1 0 0 1 1 1v3.586l4.293-4.293a1 1 0 0 1 1.414 1.414L6.414 19H10a1 1 0 1 1 0 2H4a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1Z', +}) + +export const ArrowsDiagonalIn_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M20.957 3.043a1 1 0 0 1 0 1.414L16.414 9H20a1 1 0 1 1 0 2h-6a1 1 0 0 1-1-1V4a1 1 0 1 1 2 0v3.586l4.543-4.543a1 1 0 0 1 1.414 0ZM3 14a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v6a1 1 0 1 1-2 0v-3.586l-4.543 4.543a1 1 0 0 1-1.414-1.414L7.586 15H4a1 1 0 0 1-1-1Z', +}) + +export const ArrowsDiagonalOut_Stroke2_Corner2_Rounded = createSinglePathSVG({ + path: 'M13 4a1 1 0 0 1 1-1h5a2 2 0 0 1 2 2v5a1 1 0 1 1-2 0V6.414l-4.293 4.293a1 1 0 0 1-1.414-1.414L17.586 5H14a1 1 0 0 1-1-1Zm-9 9a1 1 0 0 1 1 1v3.586l4.293-4.293a1 1 0 0 1 1.414 1.414L6.414 19H10a1 1 0 1 1 0 2H5a2 2 0 0 1-2-2v-5a1 1 0 0 1 1-1Z', +}) + +export const ArrowsDiagonalIn_Stroke2_Corner2_Rounded = createSinglePathSVG({ + path: 'M20.957 3.043a1 1 0 0 1 0 1.414L16.414 9H20a1 1 0 1 1 0 2h-5a2 2 0 0 1-2-2V4a1 1 0 1 1 2 0v3.586l4.543-4.543a1 1 0 0 1 1.414 0ZM3 14a1 1 0 0 1 1-1h5a2 2 0 0 1 2 2v5a1 1 0 1 1-2 0v-3.586l-4.543 4.543a1 1 0 0 1-1.414-1.414L7.586 15H4a1 1 0 0 1-1-1Z', +}) diff --git a/src/components/icons/CC.tsx b/src/components/icons/CC.tsx new file mode 100644 index 0000000000..da2e7c5dba --- /dev/null +++ b/src/components/icons/CC.tsx @@ -0,0 +1,9 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const CC_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M3 4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4Zm2 1v14h14V5H5Zm10.957 6.293a1 1 0 1 0 0 1.414 1 1 0 0 1 1.414 1.414 3 3 0 1 1 0-4.242 1 1 0 0 1-1.414 1.414Zm-6.331-.22a1 1 0 1 0 .331 1.634 1 1 0 0 1 1.414 1.414 3 3 0 1 1 0-4.242 1 1 0 0 1-1.414 1.414.994.994 0 0 0-.331-.22Z', +}) + +export const CC_Filled_Corner0_Rounded = createSinglePathSVG({ + path: 'M3 4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4Zm11.543 7.293a1 1 0 0 1 1.414 0 1 1 0 0 0 1.414-1.414 3 3 0 1 0 0 4.242 1 1 0 0 0-1.414-1.414 1 1 0 0 1-1.414-1.414Zm-6 0a1 1 0 0 1 1.414 0 1 1 0 0 0 1.414-1.414 3 3 0 1 0 0 4.243 1 1 0 0 0-1.414-1.415 1 1 0 0 1-1.414-1.414Z', +}) diff --git a/src/components/icons/Gear.tsx b/src/components/icons/Gear.tsx deleted file mode 100644 index 980b7413bd..0000000000 --- a/src/components/icons/Gear.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import {createSinglePathSVG} from './TEMPLATE' - -export const SettingsGear2_Stroke2_Corner0_Rounded = createSinglePathSVG({ - path: 'M11.1 2a1 1 0 0 0-.832.445L8.851 4.57 6.6 4.05a1 1 0 0 0-.932.268l-1.35 1.35a1 1 0 0 0-.267.932l.52 2.251-2.126 1.417A1 1 0 0 0 2 11.1v1.8a1 1 0 0 0 .445.832l2.125 1.417-.52 2.251a1 1 0 0 0 .268.932l1.35 1.35a1 1 0 0 0 .932.267l2.251-.52 1.417 2.126A1 1 0 0 0 11.1 22h1.8a1 1 0 0 0 .832-.445l1.417-2.125 2.251.52a1 1 0 0 0 .932-.268l1.35-1.35a1 1 0 0 0 .267-.932l-.52-2.251 2.126-1.417A1 1 0 0 0 22 12.9v-1.8a1 1 0 0 0-.445-.832L19.43 8.851l.52-2.251a1 1 0 0 0-.268-.932l-1.35-1.35a1 1 0 0 0-.932-.267l-2.251.52-1.417-2.126A1 1 0 0 0 12.9 2h-1.8Zm-.968 4.255L11.635 4h.73l1.503 2.255a1 1 0 0 0 1.057.42l2.385-.551.566.566-.55 2.385a1 1 0 0 0 .42 1.057L20 11.635v.73l-2.255 1.503a1 1 0 0 0-.42 1.057l.551 2.385-.566.566-2.385-.55a1 1 0 0 0-1.057.42L12.365 20h-.73l-1.503-2.255a1 1 0 0 0-1.057-.42l-2.385.551-.566-.566.55-2.385a1 1 0 0 0-.42-1.057L4 12.365v-.73l2.255-1.503a1 1 0 0 0 .42-1.057L6.123 6.69l.566-.566 2.385.55a1 1 0 0 0 1.057-.42ZM8 12a4 4 0 1 1 8 0 4 4 0 0 1-8 0Zm4-2a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z', -}) diff --git a/src/components/icons/Globe.tsx b/src/components/icons/Globe.tsx index f81b3ff7a0..53ef84eec8 100644 --- a/src/components/icons/Globe.tsx +++ b/src/components/icons/Globe.tsx @@ -3,3 +3,7 @@ import {createSinglePathSVG} from './TEMPLATE' export const Globe_Stroke2_Corner0_Rounded = createSinglePathSVG({ path: 'M4.062 11h2.961c.103-2.204.545-4.218 1.235-5.77.06-.136.123-.269.188-.399A8.007 8.007 0 0 0 4.062 11ZM12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2Zm0 2c-.227 0-.518.1-.868.432-.354.337-.719.872-1.047 1.61-.561 1.263-.958 2.991-1.06 4.958h5.95c-.102-1.967-.499-3.695-1.06-4.958-.328-.738-.693-1.273-1.047-1.61C12.518 4.099 12.227 4 12 4Zm4.977 7c-.103-2.204-.545-4.218-1.235-5.77a9.78 9.78 0 0 0-.188-.399A8.006 8.006 0 0 1 19.938 11h-2.961Zm-2.003 2H9.026c.101 1.966.498 3.695 1.06 4.958.327.738.692 1.273 1.046 1.61.35.333.641.432.868.432.227 0 .518-.1.868-.432.354-.337.719-.872 1.047-1.61.561-1.263.958-2.991 1.06-4.958Zm.58 6.169c.065-.13.128-.263.188-.399.69-1.552 1.132-3.566 1.235-5.77h2.961a8.006 8.006 0 0 1-4.384 6.169Zm-7.108 0a9.877 9.877 0 0 1-.188-.399c-.69-1.552-1.132-3.566-1.235-5.77H4.062a8.006 8.006 0 0 0 4.384 6.169Z', }) + +export const Earth_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M4.4 9.493C4.14 10.28 4 11.124 4 12a8 8 0 1 0 10.899-7.459l-.953 3.81a1 1 0 0 1-.726.727l-3.444.866-.772 1.533a1 1 0 0 1-1.493.35L4.4 9.493Zm.883-1.84L7.756 9.51l.44-.874a1 1 0 0 1 .649-.52l3.306-.832.807-3.227a7.993 7.993 0 0 0-7.676 3.597ZM2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm8.43.162a1 1 0 0 1 .77-.29l1.89.121a1 1 0 0 1 .494.168l2.869 1.928a1 1 0 0 1 .336 1.277l-.973 1.946a1 1 0 0 1-.894.553h-2.92a1 1 0 0 1-.831-.445L9.225 14.5a1 1 0 0 1 .126-1.262l1.08-1.076Zm.915 1.913.177-.177 1.171.074 1.914 1.286-.303.607h-1.766l-1.194-1.79Z', +}) diff --git a/src/components/icons/Image.tsx b/src/components/icons/Image.tsx index 03702a0f46..eac296ad42 100644 --- a/src/components/icons/Image.tsx +++ b/src/components/icons/Image.tsx @@ -1,5 +1,5 @@ import {createSinglePathSVG} from './TEMPLATE' export const Image_Stroke2_Corner0_Rounded = createSinglePathSVG({ - path: 'M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5Zm16 0H5v7.213l1.246-.932.044-.03a3 3 0 0 1 3.863.454c1.468 1.58 2.941 2.749 4.847 2.749 1.703 0 2.855-.555 4-1.618V5Zm0 10.357c-1.112.697-2.386 1.097-4 1.097-2.81 0-4.796-1.755-6.313-3.388a1 1 0 0 0-1.269-.164L5 14.712V19h14v-3.643ZM15 8a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm-3 1a3 3 0 1 1 6 0 3 3 0 0 1-6 0Z', + path: 'M3 4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4Zm2 1v7.213l1.246-.932.044-.03a3 3 0 0 1 3.863.454c1.468 1.58 2.941 2.749 4.847 2.749 1.703 0 2.855-.555 4-1.618V5H5Zm14 10.357c-1.112.697-2.386 1.097-4 1.097-2.81 0-4.796-1.755-6.313-3.388a1 1 0 0 0-1.269-.164L5 14.712V19h14v-3.643ZM15 8a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm-3 1a3 3 0 1 1 6 0 3 3 0 0 1-6 0Z', }) diff --git a/src/components/icons/ListPlus.tsx b/src/components/icons/ListPlus.tsx new file mode 100644 index 0000000000..fd14ac9c79 --- /dev/null +++ b/src/components/icons/ListPlus.tsx @@ -0,0 +1,9 @@ +import {createSinglePathSVG} from './TEMPLATE' + +/* + * This icon is off-menu, not part of the icon set + */ + +export const ListPlus_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M4 5a1 1 0 0 0 0 2h16a1 1 0 1 0 0-2H4Zm0 12a1 1 0 1 0 0 2h3a1 1 0 1 0 0-2H4Zm-1-5a1 1 0 0 1 1-1h5a1 1 0 1 1 0 2H4a1 1 0 0 1-1-1Zm14-3c.552 0 1 .41 1 .917V13.5h3.583c.507 0 .917.448.917 1s-.41 1-.917 1H18v3.583c0 .507-.448.917-1 .917s-1-.41-1-.917V15.5h-3.583c-.507 0-.917-.448-.917-1s.41-1 .917-1H16V9.917C16 9.41 16.448 9 17 9Z', +}) diff --git a/src/components/icons/Menu.tsx b/src/components/icons/Menu.tsx new file mode 100644 index 0000000000..fb183c2224 --- /dev/null +++ b/src/components/icons/Menu.tsx @@ -0,0 +1,5 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Menu_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M2 6a1 1 0 0 1 1-1h18a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Zm0 6a1 1 0 0 1 1-1h18a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Zm0 6a1 1 0 0 1 1-1h18a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Z', +}) diff --git a/src/components/icons/Moon.tsx b/src/components/icons/Moon.tsx new file mode 100644 index 0000000000..4994370b9e --- /dev/null +++ b/src/components/icons/Moon.tsx @@ -0,0 +1,5 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Moon_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M12.097 2.53a1 1 0 0 1-.041 1.07 6 6 0 0 0 8.345 8.344 1 1 0 0 1 1.563.908c-.434 5.122-4.728 9.144-9.962 9.144-5.522 0-9.998-4.476-9.998-9.998 0-5.234 4.021-9.528 9.144-9.962a1 1 0 0 1 .949.494ZM9.424 4.424a7.998 7.998 0 1 0 10.152 10.152A8 8 0 0 1 9.424 4.424Z', +}) diff --git a/src/components/icons/Newskie.tsx b/src/components/icons/Newskie.tsx new file mode 100644 index 0000000000..ddbb33201e --- /dev/null +++ b/src/components/icons/Newskie.tsx @@ -0,0 +1,5 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Newskie = createSinglePathSVG({ + path: 'M11.183 8.561c0 .544.348.984.892.984.545 0 .893-.44.893-.985V6.985c0-.544-.348-.985-.893-.985-.543 0-.892.44-.892.985v1.576Zm5.94 7.481c0 .539-.438.942-.976.942H8.004c-.538 0-.975-.411-.975-.95 0-2.782 2.264-5.021 5.046-5.021 2.783 0 5.047 2.247 5.047 5.03Zm-.43-4.584a.983.983 0 0 1 0-1.393l1.114-1.114a.985.985 0 0 1 1.393 1.393l-1.114 1.114a.985.985 0 0 1-1.393 0Zm2.897 3.741h1.575c.544 0 .985.349.985.892 0 .544-.44.892-.985.892h-1.67a.872.872 0 0 1-.89-.887c0-.543.44-.897.985-.897Zm-14.045.893c0-.544-.44-.892-.985-.892H2.985c-.544 0-.985.349-.985.892 0 .544.44.892.985.892H4.56c.545 0 .985-.349.985-.892Zm1.913-6.027a.985.985 0 0 1-1.393 1.393L4.95 10.344A.985.985 0 0 1 6.344 8.95l1.114 1.114Z', +}) diff --git a/src/components/icons/Pause.tsx b/src/components/icons/Pause.tsx new file mode 100644 index 0000000000..927f285a00 --- /dev/null +++ b/src/components/icons/Pause.tsx @@ -0,0 +1,17 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Pause_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M4 4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V4Zm2 1v14h2V5H6Zm8-1a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1V4Zm2 1v14h2V5h-2Z', +}) + +export const Pause_Filled_Corner0_Rounded = createSinglePathSVG({ + path: 'M4 4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V4ZM14 4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1V4Z', +}) + +export const Pause_Stroke2_Corner2_Rounded = createSinglePathSVG({ + path: 'M4 6a3 3 0 0 1 6 0v12a3 3 0 1 1-6 0V6Zm3-1a1 1 0 0 0-1 1v12a1 1 0 1 0 2 0V6a1 1 0 0 0-1-1Zm7 1a3 3 0 1 1 6 0v12a3 3 0 1 1-6 0V6Zm3-1a1 1 0 0 0-1 1v12a1 1 0 1 0 2 0V6a1 1 0 0 0-1-1Z', +}) + +export const Pause_Filled_Corner2_Rounded = createSinglePathSVG({ + path: 'M4 6a3 3 0 0 1 6 0v12a3 3 0 1 1-6 0V6ZM14 6a3 3 0 1 1 6 0v12a3 3 0 1 1-6 0V6Z', +}) diff --git a/src/components/icons/Person.tsx b/src/components/icons/Person.tsx index 6d09148c9d..399f7c0619 100644 --- a/src/components/icons/Person.tsx +++ b/src/components/icons/Person.tsx @@ -3,3 +3,19 @@ import {createSinglePathSVG} from './TEMPLATE' export const Person_Stroke2_Corner0_Rounded = createSinglePathSVG({ path: 'M12 4a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5ZM7.5 6.5a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM5.678 19h12.644c-.71-2.909-3.092-5-6.322-5s-5.613 2.091-6.322 5Zm-2.174.906C3.917 15.521 7.242 12 12 12c4.758 0 8.083 3.521 8.496 7.906A1 1 0 0 1 19.5 21h-15a1 1 0 0 1-.996-1.094Z', }) + +export const PersonCheck_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M12 4a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5ZM7.5 6.5a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM5.679 19c.709-2.902 3.079-5 6.321-5a6.69 6.69 0 0 1 2.612.51 1 1 0 0 0 .776-1.844A8.687 8.687 0 0 0 12 12c-4.3 0-7.447 2.884-8.304 6.696-.29 1.29.767 2.304 1.902 2.304H11a1 1 0 1 0 0-2H5.679Zm14.835-4.857a1 1 0 0 1 .344 1.371l-3 5a1 1 0 0 1-1.458.286l-2-1.5a1 1 0 0 1 1.2-1.6l1.113.835 2.43-4.05a1 1 0 0 1 1.372-.342Z', +}) + +export const PersonX_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M12 4a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5ZM7.5 6.5a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM5.679 19c.709-2.902 3.079-5 6.321-5 .302 0 .595.018.878.053a1 1 0 0 0 .243-1.985A9.235 9.235 0 0 0 12 12c-4.3 0-7.447 2.884-8.304 6.696-.29 1.29.767 2.304 1.902 2.304H12a1 1 0 1 0 0-2H5.679Zm9.614-3.707a1 1 0 0 1 1.414 0L18 16.586l1.293-1.293a1 1 0 0 1 1.414 1.414L19.414 18l1.293 1.293a1 1 0 0 1-1.414 1.414L18 19.414l-1.293 1.293a1 1 0 0 1-1.414-1.414L16.586 18l-1.293-1.293a1 1 0 0 1 0-1.414Z', +}) + +export const PersonPlus_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M12 4a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5ZM7.5 6.5a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM5.678 19c.71-2.909 3.092-5 6.322-5 .621 0 1.206.077 1.748.218a1 1 0 1 0 .504-1.936A8.931 8.931 0 0 0 12 12c-4.758 0-8.083 3.521-8.496 7.906A1 1 0 0 0 4.5 21H11a1 1 0 1 0 0-2H5.678ZM18 14a1 1 0 0 1 1 1v2h2a1 1 0 1 1 0 2h-2v2a1 1 0 1 1-2 0v-2h-2a1 1 0 1 1 0-2h2v-2a1 1 0 0 1 1-1Z', +}) + +export const PersonPlus_Filled_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M7.5 6.5a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM12 12c-4.758 0-8.083 3.521-8.496 7.906A1 1 0 0 0 4.5 21H15a3 3 0 1 1 0-6c0-.824.332-1.571.87-2.113C14.739 12.32 13.435 12 12 12Zm6 2a1 1 0 0 1 1 1v2h2a1 1 0 1 1 0 2h-2v2a1 1 0 1 1-2 0v-2h-2a1 1 0 1 1 0-2h2v-2a1 1 0 0 1 1-1Z', +}) diff --git a/src/components/icons/PersonCheck.tsx b/src/components/icons/PersonCheck.tsx deleted file mode 100644 index 097271d89a..0000000000 --- a/src/components/icons/PersonCheck.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import {createSinglePathSVG} from './TEMPLATE' - -export const PersonCheck_Stroke2_Corner0_Rounded = createSinglePathSVG({ - path: 'M12 4a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5ZM7.5 6.5a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM5.679 19c.709-2.902 3.079-5 6.321-5a6.69 6.69 0 0 1 2.612.51 1 1 0 0 0 .776-1.844A8.687 8.687 0 0 0 12 12c-4.3 0-7.447 2.884-8.304 6.696-.29 1.29.767 2.304 1.902 2.304H11a1 1 0 1 0 0-2H5.679Zm14.835-4.857a1 1 0 0 1 .344 1.371l-3 5a1 1 0 0 1-1.458.286l-2-1.5a1 1 0 0 1 1.2-1.6l1.113.835 2.43-4.05a1 1 0 0 1 1.372-.342Z', -}) diff --git a/src/components/icons/PersonX.tsx b/src/components/icons/PersonX.tsx deleted file mode 100644 index a015e13765..0000000000 --- a/src/components/icons/PersonX.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import {createSinglePathSVG} from './TEMPLATE' - -export const PersonX_Stroke2_Corner0_Rounded = createSinglePathSVG({ - path: 'M12 4a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5ZM7.5 6.5a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM5.679 19c.709-2.902 3.079-5 6.321-5 .302 0 .595.018.878.053a1 1 0 0 0 .243-1.985A9.235 9.235 0 0 0 12 12c-4.3 0-7.447 2.884-8.304 6.696-.29 1.29.767 2.304 1.902 2.304H12a1 1 0 1 0 0-2H5.679Zm9.614-3.707a1 1 0 0 1 1.414 0L18 16.586l1.293-1.293a1 1 0 0 1 1.414 1.414L19.414 18l1.293 1.293a1 1 0 0 1-1.414 1.414L18 19.414l-1.293 1.293a1 1 0 0 1-1.414-1.414L16.586 18l-1.293-1.293a1 1 0 0 1 0-1.414Z', -}) diff --git a/src/components/icons/Phone.tsx b/src/components/icons/Phone.tsx new file mode 100644 index 0000000000..62000a1e5d --- /dev/null +++ b/src/components/icons/Phone.tsx @@ -0,0 +1,5 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Phone_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M5 4a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3V4Zm3-1a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H8Zm2 2a1 1 0 0 1 1-1h2a1 1 0 1 1 0 2h-2a1 1 0 0 1-1-1Z', +}) diff --git a/src/components/icons/Pin.tsx b/src/components/icons/Pin.tsx new file mode 100644 index 0000000000..03dbbac90e --- /dev/null +++ b/src/components/icons/Pin.tsx @@ -0,0 +1,5 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Pin_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M6.5 3a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v3.997a6.25 6.25 0 0 0 1.83 4.42l.377.376A1 1 0 0 1 20 12.5V15a1 1 0 0 1-1 1h-6v5a1 1 0 1 1-2 0v-5H5a1 1 0 0 1-1-1v-2.5a1 1 0 0 1 .293-.707l.376-.377A6.25 6.25 0 0 0 6.5 6.996V3.001Zm2 1v2.997a8.25 8.25 0 0 1-2.416 5.834L6 12.914V14h12v-1.086l-.084-.083A8.25 8.25 0 0 1 15.5 6.997V4h-7Z', +}) diff --git a/src/components/icons/Play.tsx b/src/components/icons/Play.tsx new file mode 100644 index 0000000000..176b24f281 --- /dev/null +++ b/src/components/icons/Play.tsx @@ -0,0 +1,17 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Play_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M5.507 2.13a1 1 0 0 1 1.008.013l15 9a1 1 0 0 1 0 1.714l-15 9A1 1 0 0 1 5 21V3a1 1 0 0 1 .507-.87ZM7 4.766v14.468L19.056 12 7 4.766Z', +}) + +export const Play_Filled_Corner0_Rounded = createSinglePathSVG({ + path: 'M6.514 2.143A1 1 0 0 0 5 3v18a1 1 0 0 0 1.514.858l15-9a1 1 0 0 0 0-1.716l-15-9Z', +}) + +export const Play_Stroke2_Corner2_Rounded = createSinglePathSVG({ + path: 'M5 5.086C5 2.736 7.578 1.3 9.576 2.534L20.77 9.448c1.899 1.172 1.899 3.932 0 5.104L9.576 21.466C7.578 22.701 5 21.263 5 18.914V5.086Zm3.525-.85A1 1 0 0 0 7 5.085v13.828a1 1 0 0 0 1.525.85l11.194-6.913a1 1 0 0 0 0-1.702L8.525 4.235Z', +}) + +export const Play_Filled_Corner2_Rounded = createSinglePathSVG({ + path: 'M9.576 2.534C7.578 1.299 5 2.737 5 5.086v13.828c0 2.35 2.578 3.787 4.576 2.552l11.194-6.914c1.899-1.172 1.899-3.932 0-5.104L9.576 2.534Z', +}) diff --git a/src/components/icons/QrCode.tsx b/src/components/icons/QrCode.tsx new file mode 100644 index 0000000000..e841071f70 --- /dev/null +++ b/src/components/icons/QrCode.tsx @@ -0,0 +1,5 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const QrCode_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M3 5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5Zm6 0H5v4h4V5ZM3 15a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4Zm6 0H5v4h4v-4ZM13 5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2V5Zm6 0h-4v4h4V5ZM14 13a1 1 0 0 1 1 1v1h1a1 1 0 1 1 0 2h-2a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1Zm3 1a1 1 0 0 1 1-1h2a1 1 0 1 1 0 2h-2a1 1 0 0 1-1-1Zm0 4a1 1 0 0 1 1-1h2a1 1 0 1 1 0 2h-1v1a1 1 0 1 1-2 0v-2Z', +}) diff --git a/src/components/icons/Quote.tsx b/src/components/icons/Quote.tsx new file mode 100644 index 0000000000..ec53cfc460 --- /dev/null +++ b/src/components/icons/Quote.tsx @@ -0,0 +1,21 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const OpenQuote_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M7.574 4.178a1 1 0 0 1 .43.822v5h2a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1v-8c0-2.585 1.162-4.335 2.316-5.417a8.163 8.163 0 0 1 1.569-1.15 7.029 7.029 0 0 1 .738-.36l.016-.005.005-.003h.003v-.001c.001 0 .002 0 .353.936l-.351-.936a1 1 0 0 1 .92.114Zm-1.57 2.588a5.99 5.99 0 0 0-.316.276C4.842 7.835 4.004 9.085 4.004 11v7h5v-6h-2a1 1 0 0 1-1-1V6.766Zm12.57-2.588a1 1 0 0 1 .43.822v5h2a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1v-8c0-2.585 1.162-4.335 2.316-5.417a8.166 8.166 0 0 1 1.569-1.15 7.038 7.038 0 0 1 .738-.36l.016-.005.005-.003h.003v-.001c.001 0 .002 0 .353.936l-.351-.936a1 1 0 0 1 .92.114Zm-1.57 2.588c-.105.085-.21.177-.316.276-.846.793-1.684 2.043-1.684 3.958v7h5v-6h-2a1 1 0 0 1-1-1V6.766Z', +}) + +export const OpenQuote_Filled_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M8.004 5a1 1 0 0 0-.43-.822c-.57-.395-1.176-.031-1.685.255-.428.24-.998.614-1.569 1.15C3.166 6.665 2.004 8.415 2.004 11v8a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1v-8a1 1 0 0 0-1-1h-2V5ZM19.004 5a1 1 0 0 0-.43-.822c-.57-.395-1.176-.031-1.685.255-.428.24-.998.614-1.569 1.15-1.154 1.082-2.316 2.832-2.316 5.417v8a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1v-8a1 1 0 0 0-1-1h-2V5Z', +}) + +export const CloseQuote_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M2.004 5a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1v8c0 2.585-1.162 4.335-2.316 5.417-.571.536-1.14.91-1.569 1.15a7.01 7.01 0 0 1-.738.36l-.016.006-.006.002h-.002l-.001.001L6.004 19l.351.936A1 1 0 0 1 5.004 19v-5h-2a1 1 0 0 1-1-1V5Zm5 12.234c.104-.085.21-.177.316-.276.846-.793 1.684-2.043 1.684-3.958V6h-5v6h2a1 1 0 0 1 1 1v4.234Zm6-12.234a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1v8c0 2.585-1.162 4.335-2.316 5.417-.571.536-1.14.91-1.569 1.15a7.018 7.018 0 0 1-.738.36l-.016.006-.006.002h-.002l-.001.001-.352-.936.351.936A1 1 0 0 1 16.004 19v-5h-2a1 1 0 0 1-1-1V5Zm5 12.234V13a1 1 0 0 0-1-1h-2V6h5v7c0 1.915-.838 3.165-1.684 3.958-.106.1-.212.191-.316.276Z', +}) + +export const CloseQuote_Stroke2_Corner1_Rounded = createSinglePathSVG({ + path: 'M2.003 5.999a2 2 0 0 1 2-1.999h5c1.104 0 2 .893 2 1.999V13c0 2.585-1.16 4.335-2.315 5.417-.571.536-1.14.91-1.569 1.15a7.01 7.01 0 0 1-.738.36l-.016.006-.006.002h-.002l-.001.001L6.004 19l.351.936a1 1 0 0 1-1.351-.935L5 14H4a2 2 0 0 1-2-2.001l.002-6Zm5 11.236L7 12.999A1 1 0 0 0 6 12H4l.003-6h5v7c0 1.915-.837 3.165-1.683 3.958-.106.1-.213.192-.317.277Zm6-11.235a2 2 0 0 1 2-2h5c1.104 0 2 .893 2 1.999V13c0 2.585-1.16 4.335-2.315 5.417-.571.536-1.14.91-1.569 1.15a7.018 7.018 0 0 1-.738.36l-.016.006-.006.002h-.002l-.001.001-.352-.936.351.936A1 1 0 0 1 16.004 19v-5h-1a2 2 0 0 1-2-2V6Zm7 0h-5v6h2a1 1 0 0 1 1 1v4.234c.105-.085.211-.177.317-.276.846-.793 1.684-2.043 1.684-3.958V6Z', +}) + +export const CloseQuote_Filled_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M3.004 4a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h2v5a1 1 0 0 0 .43.822c.57.395 1.176.031 1.685-.255.428-.24.998-.614 1.569-1.15 1.154-1.082 2.316-2.832 2.316-5.417V5a1 1 0 0 0-1-1h-7ZM14.004 4a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h2v5a1 1 0 0 0 .43.822c.57.395 1.176.031 1.685-.255.428-.24.998-.614 1.569-1.15 1.154-1.082 2.316-2.832 2.316-5.417V5a1 1 0 0 0-1-1h-7Z', +}) diff --git a/src/components/icons/Repost.tsx b/src/components/icons/Repost.tsx new file mode 100644 index 0000000000..01214bca71 --- /dev/null +++ b/src/components/icons/Repost.tsx @@ -0,0 +1,13 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Repost_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M16.293 2.293a1 1 0 0 1 1.414 0l3 3a1 1 0 0 1 0 1.414l-3 3a1 1 0 0 1-1.414-1.414L17.586 7H5v4a1 1 0 1 1-2 0V6a1 1 0 0 1 1-1h13.586l-1.293-1.293a1 1 0 0 1 0-1.414ZM21 13v5a1 1 0 0 1-1 1H6.414l1.293 1.293a1 1 0 1 1-1.414 1.414l-3-3a1 1 0 0 1 0-1.414l3-3a1 1 0 0 1 1.414 1.414L6.414 17H19v-4a1 1 0 1 1 2 0Z', +}) + +export const Repost_Stroke2_Corner2_Rounded = createSinglePathSVG({ + path: 'M17.957 2.293a1 1 0 1 0-1.414 1.414L17.836 5H6a3 3 0 0 0-3 3v3a1 1 0 1 0 2 0V8a1 1 0 0 1 1-1h11.836l-1.293 1.293a1 1 0 0 0 1.414 1.414l2.47-2.47a1.75 1.75 0 0 0 0-2.474l-2.47-2.47ZM20 12a1 1 0 0 1 1 1v3a3 3 0 0 1-3 3H6.164l1.293 1.293a1 1 0 1 1-1.414 1.414l-2.47-2.47a1.75 1.75 0 0 1 0-2.474l2.47-2.47a1 1 0 0 1 1.414 1.414L6.164 17H18a1 1 0 0 0 1-1v-3a1 1 0 0 1 1-1Z', +}) + +export const Repost_Stroke2_Corner3_Rounded = createSinglePathSVG({ + path: 'M16.793 2.293a1 1 0 0 1 1.414 0L20.5 4.586a2 2 0 0 1 0 2.828l-2.293 2.293a1 1 0 0 1-1.414-1.414L18.086 7H7a2 2 0 0 0-2 2v2a1 1 0 1 1-2 0V9a4 4 0 0 1 4-4h11.086l-1.293-1.293a1 1 0 0 1 0-1.414ZM20 12a1 1 0 0 1 1 1v2a4 4 0 0 1-4 4H5.914l1.293 1.293a1 1 0 1 1-1.414 1.414L3.5 19.414a2 2 0 0 1 0-2.828l2.293-2.293a1 1 0 0 1 1.414 1.414L5.914 17H17a2 2 0 0 0 2-2v-2a1 1 0 0 1 1-1Z', +}) diff --git a/src/components/icons/Shapes.tsx b/src/components/icons/Shapes.tsx new file mode 100644 index 0000000000..79f90018ab --- /dev/null +++ b/src/components/icons/Shapes.tsx @@ -0,0 +1,5 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Shapes_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M7 3a1 1 0 0 1 1 1v2h2a1 1 0 1 1 0 2H8v2a1 1 0 1 1-2 0V8H4a1 1 0 0 1 0-2h2V4a1 1 0 0 1 1-1Zm6 4a4 4 0 1 1 8 0 4 4 0 0 1-8 0Zm4-2a2 2 0 1 0 0 4 2 2 0 0 0 0-4ZM3 14a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-6Zm2 1v4h4v-4H5Zm9.171-.829a1 1 0 0 1 1.415 0L17 15.585l1.414-1.414a1 1 0 1 1 1.414 1.414L18.414 17l1.414 1.414a1 1 0 0 1-1.414 1.414L17 18.414l-1.415 1.414a1 1 0 0 1-1.414-1.414l1.415-1.415-1.415-1.414a1 1 0 0 1 0-1.414Z', +}) diff --git a/src/components/icons/Star.tsx b/src/components/icons/Star.tsx new file mode 100644 index 0000000000..e6ac8011f9 --- /dev/null +++ b/src/components/icons/Star.tsx @@ -0,0 +1,9 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Star_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M12 1a1 1 0 0 1 .902.568l2.643 5.517 6.085.799a1 1 0 0 1 .557 1.718l-4.45 4.207 1.118 6.008a1 1 0 0 1-1.46 1.063L12 17.962 6.604 20.88a1 1 0 0 1-1.459-1.063l1.117-6.008-4.45-4.207a1 1 0 0 1 .558-1.718l6.085-.8 2.643-5.516A1 1 0 0 1 12 1Zm0 3.315-1.975 4.123a1 1 0 0 1-.772.56l-4.538.595 3.317 3.137a1 1 0 0 1 .296.91l-.834 4.485 4.03-2.179a1 1 0 0 1 .952 0l4.03 2.179-.834-4.485a1 1 0 0 1 .296-.91l3.317-3.137-4.538-.596a1 1 0 0 1-.772-.56L12 4.316Z', +}) + +export const Star_Filled_Corner0_Rounded = createSinglePathSVG({ + path: 'M12.902 1.568a1 1 0 0 0-1.804 0L8.455 7.085l-6.085.799a1 1 0 0 0-.557 1.718l4.45 4.207-1.117 6.008a1 1 0 0 0 1.458 1.063L12 17.962l5.396 2.918a1 1 0 0 0 1.459-1.063l-1.117-6.008 4.45-4.207a1 1 0 0 0-.558-1.718l-6.085-.8-2.643-5.516Z', +}) diff --git a/src/components/icons/StarterPack.tsx b/src/components/icons/StarterPack.tsx new file mode 100644 index 0000000000..8c678bca47 --- /dev/null +++ b/src/components/icons/StarterPack.tsx @@ -0,0 +1,8 @@ +import {createMultiPathSVG} from './TEMPLATE' + +export const StarterPack = createMultiPathSVG({ + paths: [ + 'M11.26 5.227 5.02 6.899c-.734.197-1.17.95-.973 1.685l1.672 6.24c.197.734.951 1.17 1.685.973l6.24-1.672c.734-.197 1.17-.951.973-1.685L12.945 6.2a1.375 1.375 0 0 0-1.685-.973Zm-6.566.459a2.632 2.632 0 0 0-1.86 3.223l1.672 6.24a2.632 2.632 0 0 0 3.223 1.861l6.24-1.672a2.631 2.631 0 0 0 1.861-3.223l-1.672-6.24a2.632 2.632 0 0 0-3.223-1.861l-6.24 1.672Z', + 'M15.138 18.411a4.606 4.606 0 1 0 0-9.211 4.606 4.606 0 0 0 0 9.211Zm0 1.257a5.862 5.862 0 1 0 0-11.724 5.862 5.862 0 0 0 0 11.724Z', + ], +}) diff --git a/src/components/icons/TEMPLATE.tsx b/src/components/icons/TEMPLATE.tsx index f49c4280bb..47a5c36b2a 100644 --- a/src/components/icons/TEMPLATE.tsx +++ b/src/components/icons/TEMPLATE.tsx @@ -30,7 +30,7 @@ export const IconTemplate_Stroke2_Corner0_Rounded = React.forwardRef( export function createSinglePathSVG({path}: {path: string}) { return React.forwardRef(function LogoImpl(props, ref) { - const {fill, size, style, ...rest} = useCommonSVGProps(props) + const {fill, size, style, gradient, ...rest} = useCommonSVGProps(props) return ( + {gradient} ) }) } + +export function createMultiPathSVG({paths}: {paths: string[]}) { + return React.forwardRef(function LogoImpl(props, ref) { + const {fill, size, style, gradient, ...rest} = useCommonSVGProps(props) + + return ( + + {gradient} + {paths.map((path, i) => ( + + ))} + + ) + }) +} diff --git a/src/components/icons/VideoClip.tsx b/src/components/icons/VideoClip.tsx new file mode 100644 index 0000000000..c2c13c4913 --- /dev/null +++ b/src/components/icons/VideoClip.tsx @@ -0,0 +1,5 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const VideoClip_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M3 4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4Zm2 1v2h2V5H5Zm4 0v6h6V5H9Zm8 0v2h2V5h-2Zm2 4h-2v2h2V9Zm0 4h-2v2.444h2V13Zm0 4.444h-2V19h2v-1.556ZM15 19v-6H9v6h6Zm-8 0v-2H5v2h2Zm-2-4h2v-2H5v2Zm0-4h2V9H5v2Z', +}) diff --git a/src/components/icons/common.ts b/src/components/icons/common.ts deleted file mode 100644 index 9e9f15c4dd..0000000000 --- a/src/components/icons/common.ts +++ /dev/null @@ -1,32 +0,0 @@ -import {StyleSheet, TextProps} from 'react-native' -import type {SvgProps, PathProps} from 'react-native-svg' - -import {tokens} from '#/alf' - -export type Props = { - fill?: PathProps['fill'] - style?: TextProps['style'] - size?: keyof typeof sizes -} & Omit - -export const sizes = { - xs: 12, - sm: 16, - md: 20, - lg: 24, - xl: 28, -} - -export function useCommonSVGProps(props: Props) { - const {fill, size, ...rest} = props - const style = StyleSheet.flatten(rest.style) - const _fill = fill || style?.color || tokens.color.blue_500 - const _size = Number(size ? sizes[size] : rest.width || sizes.md) - - return { - fill: _fill, - size: _size, - style, - ...rest, - } -} diff --git a/src/components/icons/common.tsx b/src/components/icons/common.tsx new file mode 100644 index 0000000000..387115d3aa --- /dev/null +++ b/src/components/icons/common.tsx @@ -0,0 +1,60 @@ +import React from 'react' +import {StyleSheet, TextProps} from 'react-native' +import type {PathProps, SvgProps} from 'react-native-svg' +import {Defs, LinearGradient, Stop} from 'react-native-svg' +import {nanoid} from 'nanoid/non-secure' + +import {tokens, useTheme} from '#/alf' + +export type Props = { + fill?: PathProps['fill'] + style?: TextProps['style'] + size?: keyof typeof sizes + gradient?: keyof typeof tokens.gradients +} & Omit + +export const sizes = { + xs: 12, + sm: 16, + md: 20, + lg: 24, + xl: 28, +} + +export function useCommonSVGProps(props: Props) { + const t = useTheme() + const {fill, size, gradient, ...rest} = props + const style = StyleSheet.flatten(rest.style) + const _size = Number(size ? sizes[size] : rest.width || sizes.md) + let _fill = fill || style?.color || t.palette.primary_500 + let gradientDef = null + + if (gradient && tokens.gradients[gradient]) { + const id = gradient + '_' + nanoid() + const config = tokens.gradients[gradient] + _fill = `url(#${id})` + gradientDef = ( + + + {config.values.map(([stop, fill]) => ( + + ))} + + + ) + } + + return { + fill: _fill, + size: _size, + style, + gradient: gradientDef, + ...rest, + } +} diff --git a/src/components/moderation/ContentHider.tsx b/src/components/moderation/ContentHider.tsx index 1e8f36d310..f2d13f6424 100644 --- a/src/components/moderation/ContentHider.tsx +++ b/src/components/moderation/ContentHider.tsx @@ -1,20 +1,19 @@ import React from 'react' -import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' +import {StyleProp, View, ViewStyle} from 'react-native' import {ModerationUI} from '@atproto/api' -import {useLingui} from '@lingui/react' import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' -import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription' import {isJustAMute} from '#/lib/moderation' +import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription' import {sanitizeDisplayName} from '#/lib/strings/display-names' - -import {atoms as a, useTheme, useBreakpoints, web} from '#/alf' +import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' import {Button} from '#/components/Button' -import {Text} from '#/components/Typography' import { ModerationDetailsDialog, useModerationDetailsDialogControl, } from '#/components/moderation/ModerationDetailsDialog' +import {Text} from '#/components/Typography' export function ContentHider({ testID, @@ -41,7 +40,7 @@ export function ContentHider({ if (!blur || (ignoreMute && isJustAMute(modui))) { return ( - + {children} ) @@ -52,7 +51,9 @@ export function ContentHider({ diff --git a/src/components/moderation/ModerationDetailsDialog.tsx b/src/components/moderation/ModerationDetailsDialog.tsx index edf8287555..ebfe452325 100644 --- a/src/components/moderation/ModerationDetailsDialog.tsx +++ b/src/components/moderation/ModerationDetailsDialog.tsx @@ -54,7 +54,10 @@ function ModerationDetailsDialogInner({ description = ( This user is included in the{' '} - + {list.name} {' '} list which you have blocked. @@ -83,7 +86,10 @@ function ModerationDetailsDialogInner({ description = ( This user is included in the{' '} - + {list.name} {' '} list which you have muted. @@ -127,10 +133,11 @@ function ModerationDetailsDialogInner({ This label was applied by{' '} control.close()} style={a.text_md}> - {desc.source} + {desc.source || _(msg`an unknown labeler`)} . diff --git a/src/components/moderation/PostAlerts.tsx b/src/components/moderation/PostAlerts.tsx index 0bfe696788..efbf182193 100644 --- a/src/components/moderation/PostAlerts.tsx +++ b/src/components/moderation/PostAlerts.tsx @@ -1,22 +1,17 @@ import React from 'react' -import {StyleProp, View, ViewStyle} from 'react-native' -import {ModerationUI, ModerationCause} from '@atproto/api' +import {StyleProp, ViewStyle} from 'react-native' +import {ModerationUI} from '@atproto/api' -import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription' import {getModerationCauseKey} from '#/lib/moderation' - -import {atoms as a} from '#/alf' -import {Button, ButtonText, ButtonIcon} from '#/components/Button' -import { - ModerationDetailsDialog, - useModerationDetailsDialogControl, -} from '#/components/moderation/ModerationDetailsDialog' +import * as Pills from '#/components/Pills' export function PostAlerts({ modui, + size = 'sm', style, }: { modui: ModerationUI + size?: Pills.CommonProps['size'] includeMute?: boolean style?: StyleProp }) { @@ -25,42 +20,23 @@ export function PostAlerts({ } return ( - - - {modui.alerts.map(cause => ( - - ))} - {modui.informs.map(cause => ( - - ))} - - - ) -} - -function PostLabel({cause}: {cause: ModerationCause}) { - const control = useModerationDetailsDialogControl() - const desc = useModerationCauseDescription(cause) - - return ( - <> - - - - + + {modui.alerts.map(cause => ( + + ))} + {modui.informs.map(cause => ( + + ))} + ) } diff --git a/src/components/moderation/PostHider.tsx b/src/components/moderation/PostHider.tsx index 05cb8464eb..b6fb174528 100644 --- a/src/components/moderation/PostHider.tsx +++ b/src/components/moderation/PostHider.tsx @@ -1,6 +1,6 @@ import React, {ComponentProps} from 'react' import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' -import {AppBskyActorDefs, ModerationUI} from '@atproto/api' +import {AppBskyActorDefs, ModerationCause, ModerationUI} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' @@ -18,21 +18,25 @@ import { import {Text} from '#/components/Typography' interface Props extends ComponentProps { + disabled: boolean iconSize: number iconStyles: StyleProp modui: ModerationUI profile: AppBskyActorDefs.ProfileViewBasic + interpretFilterAsBlur?: boolean } export function PostHider({ testID, href, + disabled, modui, style, children, iconSize, iconStyles, profile, + interpretFilterAsBlur, ...props }: Props) { const queryClient = useQueryClient() @@ -40,14 +44,16 @@ export function PostHider({ const {_} = useLingui() const [override, setOverride] = React.useState(false) const control = useModerationDetailsDialogControl() - const blur = modui.blurs[0] + const blur = + modui.blurs[0] || + (interpretFilterAsBlur ? getBlurrableFilter(modui) : undefined) const desc = useModerationCauseDescription(blur) const onBeforePress = React.useCallback(() => { precacheProfile(queryClient, profile) }, [queryClient, profile]) - if (!blur) { + if (!blur || (disabled && !modui.noOverride)) { return ( !filter.downgraded) +} + const styles = StyleSheet.create({ child: { borderWidth: 0, diff --git a/src/components/moderation/ProfileHeaderAlerts.tsx b/src/components/moderation/ProfileHeaderAlerts.tsx index dfc2aa5571..94779697fb 100644 --- a/src/components/moderation/ProfileHeaderAlerts.tsx +++ b/src/components/moderation/ProfileHeaderAlerts.tsx @@ -1,20 +1,12 @@ import React from 'react' -import {StyleProp, View, ViewStyle} from 'react-native' -import {ModerationCause, ModerationDecision} from '@atproto/api' +import {StyleProp, ViewStyle} from 'react-native' +import {ModerationDecision} from '@atproto/api' import {getModerationCauseKey} from 'lib/moderation' -import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription' - -import {atoms as a} from '#/alf' -import {Button, ButtonText, ButtonIcon} from '#/components/Button' -import { - ModerationDetailsDialog, - useModerationDetailsDialogControl, -} from '#/components/moderation/ModerationDetailsDialog' +import * as Pills from '#/components/Pills' export function ProfileHeaderAlerts({ moderation, - style, }: { moderation: ModerationDecision style?: StyleProp @@ -25,42 +17,21 @@ export function ProfileHeaderAlerts({ } return ( - - - {modui.alerts.map(cause => ( - - ))} - {modui.informs.map(cause => ( - - ))} - - - ) -} - -function ProfileLabel({cause}: {cause: ModerationCause}) { - const control = useModerationDetailsDialogControl() - const desc = useModerationCauseDescription(cause) - - return ( - <> - - - - + + {modui.alerts.map(cause => ( + + ))} + {modui.informs.map(cause => ( + + ))} + ) } diff --git a/src/components/moderation/ScreenHider.tsx b/src/components/moderation/ScreenHider.tsx index 0d316bc885..f855d63331 100644 --- a/src/components/moderation/ScreenHider.tsx +++ b/src/components/moderation/ScreenHider.tsx @@ -14,7 +14,7 @@ import {useModerationCauseDescription} from '#/lib/moderation/useModerationCause import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {NavigationProp} from 'lib/routes/types' import {CenteredView} from '#/view/com/util/Views' -import {atoms as a, useTheme} from '#/alf' +import {atoms as a, useTheme, web} from '#/alf' import {Button, ButtonText} from '#/components/Button' import { ModerationDetailsDialog, @@ -105,6 +105,7 @@ export function ScreenHider({ a.mb_md, a.px_lg, a.text_center, + a.leading_snug, t.atoms.text_contrast_medium, ]}> {isNoPwi ? ( @@ -113,8 +114,15 @@ export function ScreenHider({ ) : ( <> - This {screenDescription} has been flagged: - + This {screenDescription} has been flagged:{' '} + {desc.name}.{' '} Learn More - )}{' '} diff --git a/src/lib/ThemeContext.tsx b/src/lib/ThemeContext.tsx index 63e2beeb11..e4cebfcb2b 100644 --- a/src/lib/ThemeContext.tsx +++ b/src/lib/ThemeContext.tsx @@ -1,7 +1,8 @@ -import React, {ReactNode, createContext, useContext} from 'react' +import React, {createContext, ReactNode, useContext} from 'react' import {TextStyle, ViewStyle} from 'react-native' + +import {ThemeName} from '#/alf/types' import {darkTheme, defaultTheme, dimTheme} from './themes' -import {ThemeName} from '#/alf/themes' export type ColorScheme = 'light' | 'dark' diff --git a/src/lib/analytics/types.ts b/src/lib/analytics/types.ts index cdf535dec2..720495ea1d 100644 --- a/src/lib/analytics/types.ts +++ b/src/lib/analytics/types.ts @@ -32,6 +32,8 @@ export type TrackPropertiesMap = { 'Post:ThreadMute': {} // CAN BE SERVER 'Post:ThreadUnmute': {} // CAN BE SERVER 'Post:Reply': {} // CAN BE SERVER + 'Post:EditThreadgateOpened': {} + 'Post:ThreadgateEdited': {} // PROFILE events 'Profile:Follow': { username: string diff --git a/src/lib/api/api-polyfill.ts b/src/lib/api/api-polyfill.ts deleted file mode 100644 index e3aec76316..0000000000 --- a/src/lib/api/api-polyfill.ts +++ /dev/null @@ -1,85 +0,0 @@ -import RNFS from 'react-native-fs' -import {BskyAgent, jsonToLex, stringifyLex} from '@atproto/api' - -const GET_TIMEOUT = 15e3 // 15s -const POST_TIMEOUT = 60e3 // 60s - -export function doPolyfill() { - BskyAgent.configure({fetch: fetchHandler}) -} - -interface FetchHandlerResponse { - status: number - headers: Record - body: any -} - -async function fetchHandler( - reqUri: string, - reqMethod: string, - reqHeaders: Record, - reqBody: any, -): Promise { - const reqMimeType = reqHeaders['Content-Type'] || reqHeaders['content-type'] - if (reqMimeType && reqMimeType.startsWith('application/json')) { - reqBody = stringifyLex(reqBody) - } else if ( - typeof reqBody === 'string' && - (reqBody.startsWith('/') || reqBody.startsWith('file:')) - ) { - if (reqBody.endsWith('.jpeg') || reqBody.endsWith('.jpg')) { - // HACK - // React native has a bug that inflates the size of jpegs on upload - // we get around that by renaming the file ext to .bin - // see https://github.com/facebook/react-native/issues/27099 - // -prf - const newPath = reqBody.replace(/\.jpe?g$/, '.bin') - await RNFS.moveFile(reqBody, newPath) - reqBody = newPath - } - // NOTE - // React native treats bodies with {uri: string} as file uploads to pull from cache - // -prf - reqBody = {uri: reqBody} - } - - const controller = new AbortController() - const to = setTimeout( - () => controller.abort(), - reqMethod === 'post' ? POST_TIMEOUT : GET_TIMEOUT, - ) - - const res = await fetch(reqUri, { - method: reqMethod, - headers: reqHeaders, - body: reqBody, - signal: controller.signal, - }) - - const resStatus = res.status - const resHeaders: Record = {} - res.headers.forEach((value: string, key: string) => { - resHeaders[key] = value - }) - const resMimeType = resHeaders['Content-Type'] || resHeaders['content-type'] - let resBody - if (resMimeType) { - if (resMimeType.startsWith('application/json')) { - resBody = jsonToLex(await res.json()) - } else if (resMimeType.startsWith('text/')) { - resBody = await res.text() - } else if (resMimeType === 'application/vnd.ipld.car') { - resBody = await res.arrayBuffer() - } else { - throw new Error('Non-supported mime type') - } - } - - clearTimeout(to) - - return { - status: resStatus, - headers: resHeaders, - body: resBody, - } -} diff --git a/src/lib/api/api-polyfill.web.ts b/src/lib/api/api-polyfill.web.ts deleted file mode 100644 index 1ad22b3d02..0000000000 --- a/src/lib/api/api-polyfill.web.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function doPolyfill() { - // no polyfill is needed on web -} diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts index 3902a56599..61de795a14 100644 --- a/src/lib/api/feed-manip.ts +++ b/src/lib/api/feed-manip.ts @@ -1,4 +1,5 @@ import { + AppBskyActorDefs, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, AppBskyFeedDefs, @@ -6,328 +7,351 @@ import { } from '@atproto/api' import {isPostInLanguage} from '../../locale/helpers' +import {FALLBACK_MARKER_POST} from './feed/home' import {ReasonFeedSource} from './feed/types' + type FeedViewPost = AppBskyFeedDefs.FeedViewPost export type FeedTunerFn = ( tuner: FeedTuner, slices: FeedViewPostsSlice[], + dryRun: boolean, ) => FeedViewPostsSlice[] +type FeedSliceItem = { + post: AppBskyFeedDefs.PostView + record: AppBskyFeedPost.Record + parentAuthor: AppBskyActorDefs.ProfileViewBasic | undefined + isParentBlocked: boolean +} + +type AuthorContext = { + author: AppBskyActorDefs.ProfileViewBasic + parentAuthor: AppBskyActorDefs.ProfileViewBasic | undefined + grandparentAuthor: AppBskyActorDefs.ProfileViewBasic | undefined + rootAuthor: AppBskyActorDefs.ProfileViewBasic | undefined +} + export class FeedViewPostsSlice { _reactKey: string - isFlattenedReply = false + _feedPost: FeedViewPost + items: FeedSliceItem[] + isIncompleteThread: boolean + isFallbackMarker: boolean + isOrphan: boolean + rootUri: string - constructor(public items: FeedViewPost[]) { - const item = items[0] - this._reactKey = `slice-${item.post.uri}-${ - item.reason?.indexedAt || item.post.indexedAt + constructor(feedPost: FeedViewPost) { + const {post, reply, reason} = feedPost + this.items = [] + this.isIncompleteThread = false + this.isFallbackMarker = false + this.isOrphan = false + if (AppBskyFeedDefs.isPostView(reply?.root)) { + this.rootUri = reply.root.uri + } else { + this.rootUri = post.uri + } + this._feedPost = feedPost + this._reactKey = `slice-${post.uri}-${ + feedPost.reason?.indexedAt || post.indexedAt }` - } - - get uri() { - if (this.isFlattenedReply) { - return this.items[1].post.uri + if (feedPost.post.uri === FALLBACK_MARKER_POST.post.uri) { + this.isFallbackMarker = true + return } - return this.items[0].post.uri - } - - get ts() { - if (this.items[0].reason?.indexedAt) { - return this.items[0].reason.indexedAt as string + if ( + !AppBskyFeedPost.isRecord(post.record) || + !AppBskyFeedPost.validateRecord(post.record).success + ) { + return } - return this.items[0].post.indexedAt - } - - get isThread() { - return ( - this.items.length > 1 && - this.items.every( - item => item.post.author.did === this.items[0].post.author.did, - ) + const parent = reply?.parent + const isParentBlocked = AppBskyFeedDefs.isBlockedPost(parent) + let parentAuthor: AppBskyActorDefs.ProfileViewBasic | undefined + if (AppBskyFeedDefs.isPostView(parent)) { + parentAuthor = parent.author + } + this.items.push({ + post, + record: post.record, + parentAuthor, + isParentBlocked, + }) + if (!reply || reason) { + return + } + if ( + !AppBskyFeedDefs.isPostView(parent) || + !AppBskyFeedPost.isRecord(parent.record) || + !AppBskyFeedPost.validateRecord(parent.record).success + ) { + this.isOrphan = true + return + } + const grandparentAuthor = reply.grandparentAuthor + const isGrandparentBlocked = Boolean( + grandparentAuthor?.viewer?.blockedBy || + grandparentAuthor?.viewer?.blocking || + grandparentAuthor?.viewer?.blockingByList, ) - } - - get isFullThread() { - return this.isThread && !this.items[0].reply - } - - get rootItem() { - if (this.isFlattenedReply) { - return this.items[1] + this.items.unshift({ + post: parent, + record: parent.record, + parentAuthor: grandparentAuthor, + isParentBlocked: isGrandparentBlocked, + }) + if (isGrandparentBlocked) { + this.isOrphan = true + // Keep going, it might still have a root. } - return this.items[0] + const root = reply.root + if ( + !AppBskyFeedDefs.isPostView(root) || + !AppBskyFeedPost.isRecord(root.record) || + !AppBskyFeedPost.validateRecord(root.record).success + ) { + this.isOrphan = true + return + } + if (root.uri === parent.uri) { + return + } + this.items.unshift({ + post: root, + record: root.record, + isParentBlocked: false, + parentAuthor: undefined, + }) + if (parent.record.reply?.parent.uri !== root.uri) { + this.isIncompleteThread = true + } + } + + get isQuotePost() { + const embed = this._feedPost.post.embed + return ( + AppBskyEmbedRecord.isView(embed) || + AppBskyEmbedRecordWithMedia.isView(embed) + ) } get isReply() { return ( - AppBskyFeedPost.isRecord(this.rootItem.post.record) && - !!this.rootItem.post.record.reply + AppBskyFeedPost.isRecord(this._feedPost.post.record) && + !!this._feedPost.post.record.reply ) } - get source(): ReasonFeedSource | undefined { - return this.items.find(item => '__source' in item && !!item.__source) - ?.__source as ReasonFeedSource + get reason() { + return '__source' in this._feedPost + ? (this._feedPost.__source as ReasonFeedSource) + : this._feedPost.reason } get feedContext() { - return this.items.find(item => item.feedContext)?.feedContext + return this._feedPost.feedContext + } + + get isRepost() { + const reason = this._feedPost.reason + return AppBskyFeedDefs.isReasonRepost(reason) + } + + get likeCount() { + return this._feedPost.post.likeCount ?? 0 } containsUri(uri: string) { return !!this.items.find(item => item.post.uri === uri) } - isNextInThread(uri: string) { - return this.items[this.items.length - 1].post.uri === uri - } - - insert(item: FeedViewPost) { - const selfReplyUri = getSelfReplyUri(item) - const i = this.items.findIndex(item2 => item2.post.uri === selfReplyUri) - if (i !== -1) { - this.items.splice(i + 1, 0, item) - } else { - this.items.push(item) - } - } - - flattenReplyParent() { - if (this.items[0].reply) { - const reply = this.items[0].reply - if (AppBskyFeedDefs.isPostView(reply.parent)) { - this.isFlattenedReply = true - this.items.splice(0, 0, {post: reply.parent}) + getAuthors(): AuthorContext { + const feedPost = this._feedPost + let author: AppBskyActorDefs.ProfileViewBasic = feedPost.post.author + let parentAuthor: AppBskyActorDefs.ProfileViewBasic | undefined + let grandparentAuthor: AppBskyActorDefs.ProfileViewBasic | undefined + let rootAuthor: AppBskyActorDefs.ProfileViewBasic | undefined + if (feedPost.reply) { + if (AppBskyFeedDefs.isPostView(feedPost.reply.parent)) { + parentAuthor = feedPost.reply.parent.author + } + if (feedPost.reply.grandparentAuthor) { + grandparentAuthor = feedPost.reply.grandparentAuthor + } + if (AppBskyFeedDefs.isPostView(feedPost.reply.root)) { + rootAuthor = feedPost.reply.root.author } } - } - - isFollowingAllAuthors(userDid: string) { - const item = this.rootItem - if (item.post.author.did === userDid) { - return true + return { + author, + parentAuthor, + grandparentAuthor, + rootAuthor, } - if (AppBskyFeedDefs.isPostView(item.reply?.parent)) { - const parent = item.reply?.parent - if (parent?.author.did === userDid) { - return true - } - return ( - parent?.author.viewer?.following && item.post.author.viewer?.following - ) - } - return false - } -} - -export class NoopFeedTuner { - reset() {} - tune( - feed: FeedViewPost[], - _opts?: {dryRun: boolean; maintainOrder: boolean}, - ): FeedViewPostsSlice[] { - return feed.map(item => new FeedViewPostsSlice([item])) } } export class FeedTuner { seenKeys: Set = new Set() seenUris: Set = new Set() + seenRootUris: Set = new Set() constructor(public tunerFns: FeedTunerFn[]) {} - reset() { - this.seenKeys.clear() - this.seenUris.clear() - } - tune( feed: FeedViewPost[], - {dryRun, maintainOrder}: {dryRun: boolean; maintainOrder: boolean} = { + {dryRun}: {dryRun: boolean} = { dryRun: false, - maintainOrder: false, }, ): FeedViewPostsSlice[] { - let slices: FeedViewPostsSlice[] = [] + let slices: FeedViewPostsSlice[] = feed + .map(item => new FeedViewPostsSlice(item)) + .filter(s => s.items.length > 0 || s.isFallbackMarker) - // remove posts that are replies, but which don't have the parent - // hydrated. this means the parent was either deleted or blocked - feed = feed.filter(item => { - if ( - AppBskyFeedPost.isRecord(item.post.record) && - item.post.record.reply && - !item.reply - ) { + // run the custom tuners + for (const tunerFn of this.tunerFns) { + slices = tunerFn(this, slices.slice(), dryRun) + } + + slices = slices.filter(slice => { + if (this.seenKeys.has(slice._reactKey)) { return false } + // Some feeds, like Following, dedupe by thread, so you only see the most recent reply. + // However, we don't want per-thread dedupe for author feeds (where we need to show every post) + // or for feedgens (where we want to let the feed serve multiple replies if it chooses to). + // To avoid showing the same context (root and/or parent) more than once, we do last resort + // per-post deduplication. It hides already seen posts as long as this doesn't break the thread. + for (let i = 0; i < slice.items.length; i++) { + const item = slice.items[i] + if (this.seenUris.has(item.post.uri)) { + if (i === 0) { + // Omit contiguous seen leading items. + // For example, [A -> B -> C], [A -> D -> E], [A -> D -> F] + // would turn into [A -> B -> C], [D -> E], [F]. + slice.items.splice(0, 1) + i-- + } + if (i === slice.items.length - 1) { + // If the last item in the slice was already seen, omit the whole slice. + // This means we'd miss its parents, but the user can "show more" to see them. + // For example, [A ... E -> F], [A ... D -> E], [A ... C -> D], [A -> B -> C] + // would get collapsed into [A ... E -> F], with B/C/D considered seen. + return false + } + } else { + if (!dryRun) { + this.seenUris.add(item.post.uri) + } + } + } + if (!dryRun) { + this.seenKeys.add(slice._reactKey) + } return true }) - if (maintainOrder) { - slices = feed.map(item => new FeedViewPostsSlice([item])) - } else { - // arrange the posts into thread slices - for (let i = feed.length - 1; i >= 0; i--) { - const item = feed[i] - - const selfReplyUri = getSelfReplyUri(item) - if (selfReplyUri) { - const index = slices.findIndex(slice => - slice.isNextInThread(selfReplyUri), - ) - - if (index !== -1) { - const parent = slices[index] - - parent.insert(item) - - // If our slice isn't currently on the top, reinsert it to the top. - if (index !== 0) { - slices.splice(index, 1) - slices.unshift(parent) - } - - continue - } - } - - slices.unshift(new FeedViewPostsSlice([item])) - } - } - - // run the custom tuners - for (const tunerFn of this.tunerFns) { - slices = tunerFn(this, slices.slice()) - } - - // remove any items already "seen" - const soonToBeSeenUris: Set = new Set() - for (let i = slices.length - 1; i >= 0; i--) { - if (!slices[i].isThread && this.seenUris.has(slices[i].uri)) { - slices.splice(i, 1) - } else { - for (const item of slices[i].items) { - soonToBeSeenUris.add(item.post.uri) - } - } - } - - // turn non-threads with reply parents into threads - for (const slice of slices) { - if (!slice.isThread && !slice.items[0].reason && slice.items[0].reply) { - const reply = slice.items[0].reply - if ( - AppBskyFeedDefs.isPostView(reply.parent) && - !this.seenUris.has(reply.parent.uri) && - !soonToBeSeenUris.has(reply.parent.uri) - ) { - const uri = reply.parent.uri - slice.flattenReplyParent() - soonToBeSeenUris.add(uri) - } - } - } - - if (!dryRun) { - slices = slices.filter(slice => { - if (this.seenKeys.has(slice._reactKey)) { - return false - } - for (const item of slice.items) { - this.seenUris.add(item.post.uri) - } - this.seenKeys.add(slice._reactKey) - return true - }) - } - return slices } - static removeReplies(tuner: FeedTuner, slices: FeedViewPostsSlice[]) { - for (let i = slices.length - 1; i >= 0; i--) { - if (slices[i].isReply) { - slices.splice(i, 1) - } - } - return slices - } - - static removeReposts(tuner: FeedTuner, slices: FeedViewPostsSlice[]) { - for (let i = slices.length - 1; i >= 0; i--) { - const reason = slices[i].rootItem.reason - if (AppBskyFeedDefs.isReasonRepost(reason)) { - slices.splice(i, 1) - } - } - return slices - } - - static removeQuotePosts(tuner: FeedTuner, slices: FeedViewPostsSlice[]) { - for (let i = slices.length - 1; i >= 0; i--) { - const embed = slices[i].rootItem.post.embed - if ( - AppBskyEmbedRecord.isView(embed) || - AppBskyEmbedRecordWithMedia.isView(embed) - ) { - slices.splice(i, 1) - } - } - return slices - } - - static dedupReposts( + static removeReplies( tuner: FeedTuner, slices: FeedViewPostsSlice[], - ): FeedViewPostsSlice[] { - // remove duplicates caused by reposts + _dryRun: boolean, + ) { for (let i = 0; i < slices.length; i++) { - const item1 = slices[i] - for (let j = i + 1; j < slices.length; j++) { - const item2 = slices[j] - if (item2.isThread) { - // dont dedup items that are rendering in a thread as this can cause rendering errors - continue - } - if (item1.containsUri(item2.items[0].post.uri)) { - slices.splice(j, 1) - j-- + const slice = slices[i] + if ( + slice.isReply && + !slice.isRepost && + // This is not perfect but it's close as we can get to + // detecting threads without having to peek ahead. + !areSameAuthor(slice.getAuthors()) + ) { + slices.splice(i, 1) + i-- + } + } + return slices + } + + static removeReposts( + tuner: FeedTuner, + slices: FeedViewPostsSlice[], + _dryRun: boolean, + ) { + for (let i = 0; i < slices.length; i++) { + if (slices[i].isRepost) { + slices.splice(i, 1) + i-- + } + } + return slices + } + + static removeQuotePosts( + tuner: FeedTuner, + slices: FeedViewPostsSlice[], + _dryRun: boolean, + ) { + for (let i = 0; i < slices.length; i++) { + if (slices[i].isQuotePost) { + slices.splice(i, 1) + i-- + } + } + return slices + } + + static removeOrphans( + tuner: FeedTuner, + slices: FeedViewPostsSlice[], + _dryRun: boolean, + ) { + for (let i = 0; i < slices.length; i++) { + if (slices[i].isOrphan) { + slices.splice(i, 1) + i-- + } + } + return slices + } + + static dedupThreads( + tuner: FeedTuner, + slices: FeedViewPostsSlice[], + dryRun: boolean, + ): FeedViewPostsSlice[] { + for (let i = 0; i < slices.length; i++) { + const rootUri = slices[i].rootUri + if (!slices[i].isRepost && tuner.seenRootUris.has(rootUri)) { + slices.splice(i, 1) + i-- + } else { + if (!dryRun) { + tuner.seenRootUris.add(rootUri) } } } return slices } - static thresholdRepliesOnly({ - userDid, - minLikes, - followedOnly, - }: { - userDid: string - minLikes: number - followedOnly: boolean - }) { + static followedRepliesOnly({userDid}: {userDid: string}) { return ( tuner: FeedTuner, slices: FeedViewPostsSlice[], + _dryRun: boolean, ): FeedViewPostsSlice[] => { - // remove any replies without at least minLikes likes - for (let i = slices.length - 1; i >= 0; i--) { + for (let i = 0; i < slices.length; i++) { const slice = slices[i] - if (slice.isFullThread || !slice.isReply) { - continue - } - - const item = slice.rootItem - const isRepost = Boolean(item.reason) - if (isRepost) { - continue - } - if ((item.post.likeCount || 0) < minLikes) { - slices.splice(i, 1) - } else if (followedOnly && !slice.isFollowingAllAuthors(userDid)) { + if ( + slice.isReply && + !slice.isRepost && + !shouldDisplayReplyInFollowing(slice.getAuthors(), userDid) + ) { slices.splice(i, 1) + i-- } } return slices @@ -345,6 +369,7 @@ export class FeedTuner { return ( tuner: FeedTuner, slices: FeedViewPostsSlice[], + _dryRun: boolean, ): FeedViewPostsSlice[] => { const candidateSlices = slices.slice() @@ -353,7 +378,7 @@ export class FeedTuner { return slices } - for (let i = slices.length - 1; i >= 0; i--) { + for (let i = 0; i < slices.length; i++) { let hasPreferredLang = false for (const item of slices[i].items) { if (isPostInLanguage(item.post, preferredLangsCode2)) { @@ -379,16 +404,66 @@ export class FeedTuner { } } -function getSelfReplyUri(item: FeedViewPost): string | undefined { - if (item.reply) { - if ( - AppBskyFeedDefs.isPostView(item.reply.parent) && - !AppBskyFeedDefs.isReasonRepost(item.reason) // don't thread reposted self-replies - ) { - return item.reply.parent.author.did === item.post.author.did - ? item.reply.parent.uri - : undefined - } +function areSameAuthor(authors: AuthorContext): boolean { + const {author, parentAuthor, grandparentAuthor, rootAuthor} = authors + const authorDid = author.did + if (parentAuthor && parentAuthor.did !== authorDid) { + return false } - return undefined + if (grandparentAuthor && grandparentAuthor.did !== authorDid) { + return false + } + if (rootAuthor && rootAuthor.did !== authorDid) { + return false + } + return true +} + +function shouldDisplayReplyInFollowing( + authors: AuthorContext, + userDid: string, +): boolean { + const {author, parentAuthor, grandparentAuthor, rootAuthor} = authors + if (!isSelfOrFollowing(author, userDid)) { + // Only show replies from self or people you follow. + return false + } + if ( + (!parentAuthor || parentAuthor.did === author.did) && + (!rootAuthor || rootAuthor.did === author.did) && + (!grandparentAuthor || grandparentAuthor.did === author.did) + ) { + // Always show self-threads. + return true + } + // From this point on we need at least one more reason to show it. + if ( + parentAuthor && + parentAuthor.did !== author.did && + isSelfOrFollowing(parentAuthor, userDid) + ) { + return true + } + if ( + grandparentAuthor && + grandparentAuthor.did !== author.did && + isSelfOrFollowing(grandparentAuthor, userDid) + ) { + return true + } + if ( + rootAuthor && + rootAuthor.did !== author.did && + isSelfOrFollowing(rootAuthor, userDid) + ) { + return true + } + return false +} + +function isSelfOrFollowing( + profile: AppBskyActorDefs.ProfileViewBasic, + userDid: string, +) { + return Boolean(profile.did === userDid || profile.viewer?.following) } diff --git a/src/lib/api/feed/author.ts b/src/lib/api/feed/author.ts index 85601d0683..56eff18816 100644 --- a/src/lib/api/feed/author.ts +++ b/src/lib/api/feed/author.ts @@ -7,22 +7,22 @@ import { import {FeedAPI, FeedAPIResponse} from './types' export class AuthorFeedAPI implements FeedAPI { - getAgent: () => BskyAgent + agent: BskyAgent params: GetAuthorFeed.QueryParams constructor({ - getAgent, + agent, feedParams, }: { - getAgent: () => BskyAgent + agent: BskyAgent feedParams: GetAuthorFeed.QueryParams }) { - this.getAgent = getAgent + this.agent = agent this.params = feedParams } async peekLatest(): Promise { - const res = await this.getAgent().getAuthorFeed({ + const res = await this.agent.getAuthorFeed({ ...this.params, limit: 1, }) @@ -36,7 +36,7 @@ export class AuthorFeedAPI implements FeedAPI { cursor: string | undefined limit: number }): Promise { - const res = await this.getAgent().getAuthorFeed({ + const res = await this.agent.getAuthorFeed({ ...this.params, cursor, limit, diff --git a/src/lib/api/feed/custom.ts b/src/lib/api/feed/custom.ts index 87e45cebab..6db96a8d63 100644 --- a/src/lib/api/feed/custom.ts +++ b/src/lib/api/feed/custom.ts @@ -1,7 +1,6 @@ import { AppBskyFeedDefs, AppBskyFeedGetFeed as GetCustomFeed, - AtpAgent, BskyAgent, } from '@atproto/api' @@ -10,27 +9,27 @@ import {FeedAPI, FeedAPIResponse} from './types' import {createBskyTopicsHeader, isBlueskyOwnedFeed} from './utils' export class CustomFeedAPI implements FeedAPI { - getAgent: () => BskyAgent + agent: BskyAgent params: GetCustomFeed.QueryParams userInterests?: string constructor({ - getAgent, + agent, feedParams, userInterests, }: { - getAgent: () => BskyAgent + agent: BskyAgent feedParams: GetCustomFeed.QueryParams userInterests?: string }) { - this.getAgent = getAgent + this.agent = agent this.params = feedParams this.userInterests = userInterests } async peekLatest(): Promise { const contentLangs = getContentLanguages().join(',') - const res = await this.getAgent().app.bsky.feed.getFeed( + const res = await this.agent.app.bsky.feed.getFeed( { ...this.params, limit: 1, @@ -48,11 +47,11 @@ export class CustomFeedAPI implements FeedAPI { limit: number }): Promise { const contentLangs = getContentLanguages().join(',') - const agent = this.getAgent() + const agent = this.agent const isBlueskyOwned = isBlueskyOwnedFeed(this.params.feed) - const res = agent.session - ? await this.getAgent().app.bsky.feed.getFeed( + const res = agent.did + ? await this.agent.app.bsky.feed.getFeed( { ...this.params, cursor, @@ -106,34 +105,32 @@ async function loggedOutFetch({ let contentLangs = getContentLanguages().join(',') // manually construct fetch call so we can add the `lang` cache-busting param - let res = await AtpAgent.fetch!( + let res = await fetch( `https://api.bsky.app/xrpc/app.bsky.feed.getFeed?feed=${feed}${ cursor ? `&cursor=${cursor}` : '' }&limit=${limit}&lang=${contentLangs}`, - 'GET', - {'Accept-Language': contentLangs}, - undefined, + {method: 'GET', headers: {'Accept-Language': contentLangs}}, ) - if (res.body?.feed?.length) { + let data = res.ok ? await res.json() : null + if (data?.feed?.length) { return { success: true, - data: res.body, + data, } } // no data, try again with language headers removed - res = await AtpAgent.fetch!( + res = await fetch( `https://api.bsky.app/xrpc/app.bsky.feed.getFeed?feed=${feed}${ cursor ? `&cursor=${cursor}` : '' }&limit=${limit}`, - 'GET', - {'Accept-Language': ''}, - undefined, + {method: 'GET', headers: {'Accept-Language': ''}}, ) - if (res.body?.feed?.length) { + data = res.ok ? await res.json() : null + if (data?.feed?.length) { return { success: true, - data: res.body, + data, } } diff --git a/src/lib/api/feed/following.ts b/src/lib/api/feed/following.ts index 36c376554a..1004ccfb87 100644 --- a/src/lib/api/feed/following.ts +++ b/src/lib/api/feed/following.ts @@ -3,14 +3,14 @@ import {AppBskyFeedDefs, BskyAgent} from '@atproto/api' import {FeedAPI, FeedAPIResponse} from './types' export class FollowingFeedAPI implements FeedAPI { - getAgent: () => BskyAgent + agent: BskyAgent - constructor({getAgent}: {getAgent: () => BskyAgent}) { - this.getAgent = getAgent + constructor({agent}: {agent: BskyAgent}) { + this.agent = agent } async peekLatest(): Promise { - const res = await this.getAgent().getTimeline({ + const res = await this.agent.getTimeline({ limit: 1, }) return res.data.feed[0] @@ -23,7 +23,7 @@ export class FollowingFeedAPI implements FeedAPI { cursor: string | undefined limit: number }): Promise { - const res = await this.getAgent().getTimeline({ + const res = await this.agent.getTimeline({ cursor, limit, }) diff --git a/src/lib/api/feed/home.ts b/src/lib/api/feed/home.ts index 270f3aacb2..e6bc45bea0 100644 --- a/src/lib/api/feed/home.ts +++ b/src/lib/api/feed/home.ts @@ -27,7 +27,7 @@ export const FALLBACK_MARKER_POST: AppBskyFeedDefs.FeedViewPost = { } export class HomeFeedAPI implements FeedAPI { - getAgent: () => BskyAgent + agent: BskyAgent following: FollowingFeedAPI discover: CustomFeedAPI usingDiscover = false @@ -36,24 +36,24 @@ export class HomeFeedAPI implements FeedAPI { constructor({ userInterests, - getAgent, + agent, }: { userInterests?: string - getAgent: () => BskyAgent + agent: BskyAgent }) { - this.getAgent = getAgent - this.following = new FollowingFeedAPI({getAgent}) + this.agent = agent + this.following = new FollowingFeedAPI({agent}) this.discover = new CustomFeedAPI({ - getAgent, + agent, feedParams: {feed: PROD_DEFAULT_FEED('whats-hot')}, }) this.userInterests = userInterests } reset() { - this.following = new FollowingFeedAPI({getAgent: this.getAgent}) + this.following = new FollowingFeedAPI({agent: this.agent}) this.discover = new CustomFeedAPI({ - getAgent: this.getAgent, + agent: this.agent, feedParams: {feed: PROD_DEFAULT_FEED('whats-hot')}, userInterests: this.userInterests, }) diff --git a/src/lib/api/feed/likes.ts b/src/lib/api/feed/likes.ts index 1729ee05cf..a4e84d8f1f 100644 --- a/src/lib/api/feed/likes.ts +++ b/src/lib/api/feed/likes.ts @@ -7,22 +7,22 @@ import { import {FeedAPI, FeedAPIResponse} from './types' export class LikesFeedAPI implements FeedAPI { - getAgent: () => BskyAgent + agent: BskyAgent params: GetActorLikes.QueryParams constructor({ - getAgent, + agent, feedParams, }: { - getAgent: () => BskyAgent + agent: BskyAgent feedParams: GetActorLikes.QueryParams }) { - this.getAgent = getAgent + this.agent = agent this.params = feedParams } async peekLatest(): Promise { - const res = await this.getAgent().getActorLikes({ + const res = await this.agent.getActorLikes({ ...this.params, limit: 1, }) @@ -36,7 +36,7 @@ export class LikesFeedAPI implements FeedAPI { cursor: string | undefined limit: number }): Promise { - const res = await this.getAgent().getActorLikes({ + const res = await this.agent.getActorLikes({ ...this.params, cursor, limit, diff --git a/src/lib/api/feed/list.ts b/src/lib/api/feed/list.ts index 004685b998..9744e3d4ce 100644 --- a/src/lib/api/feed/list.ts +++ b/src/lib/api/feed/list.ts @@ -7,22 +7,22 @@ import { import {FeedAPI, FeedAPIResponse} from './types' export class ListFeedAPI implements FeedAPI { - getAgent: () => BskyAgent + agent: BskyAgent params: GetListFeed.QueryParams constructor({ - getAgent, + agent, feedParams, }: { - getAgent: () => BskyAgent + agent: BskyAgent feedParams: GetListFeed.QueryParams }) { - this.getAgent = getAgent + this.agent = agent this.params = feedParams } async peekLatest(): Promise { - const res = await this.getAgent().app.bsky.feed.getListFeed({ + const res = await this.agent.app.bsky.feed.getListFeed({ ...this.params, limit: 1, }) @@ -36,7 +36,7 @@ export class ListFeedAPI implements FeedAPI { cursor: string | undefined limit: number }): Promise { - const res = await this.getAgent().app.bsky.feed.getListFeed({ + const res = await this.agent.app.bsky.feed.getListFeed({ ...this.params, cursor, limit, diff --git a/src/lib/api/feed/merge.ts b/src/lib/api/feed/merge.ts index b7ac8bce1c..b41e82fb06 100644 --- a/src/lib/api/feed/merge.ts +++ b/src/lib/api/feed/merge.ts @@ -16,7 +16,7 @@ const POST_AGE_CUTOFF = 60e3 * 60 * 24 // 24hours export class MergeFeedAPI implements FeedAPI { userInterests?: string - getAgent: () => BskyAgent + agent: BskyAgent params: FeedParams feedTuners: FeedTunerFn[] following: MergeFeedSource_Following @@ -26,29 +26,29 @@ export class MergeFeedAPI implements FeedAPI { sampleCursor = 0 constructor({ - getAgent, + agent, feedParams, feedTuners, userInterests, }: { - getAgent: () => BskyAgent + agent: BskyAgent feedParams: FeedParams feedTuners: FeedTunerFn[] userInterests?: string }) { - this.getAgent = getAgent + this.agent = agent this.params = feedParams this.feedTuners = feedTuners this.userInterests = userInterests this.following = new MergeFeedSource_Following({ - getAgent: this.getAgent, + agent: this.agent, feedTuners: this.feedTuners, }) } reset() { this.following = new MergeFeedSource_Following({ - getAgent: this.getAgent, + agent: this.agent, feedTuners: this.feedTuners, }) this.customFeeds = [] @@ -60,7 +60,7 @@ export class MergeFeedAPI implements FeedAPI { this.params.mergeFeedSources.map( feedUri => new MergeFeedSource_Custom({ - getAgent: this.getAgent, + agent: this.agent, feedUri, feedTuners: this.feedTuners, userInterests: this.userInterests, @@ -73,7 +73,7 @@ export class MergeFeedAPI implements FeedAPI { } async peekLatest(): Promise { - const res = await this.getAgent().getTimeline({ + const res = await this.agent.getTimeline({ limit: 1, }) return res.data.feed[0] @@ -167,7 +167,7 @@ export class MergeFeedAPI implements FeedAPI { } class MergeFeedSource { - getAgent: () => BskyAgent + agent: BskyAgent feedTuners: FeedTunerFn[] sourceInfo: ReasonFeedSource | undefined cursor: string | undefined = undefined @@ -175,13 +175,13 @@ class MergeFeedSource { hasMore = true constructor({ - getAgent, + agent, feedTuners, }: { - getAgent: () => BskyAgent + agent: BskyAgent feedTuners: FeedTunerFn[] }) { - this.getAgent = getAgent + this.agent = agent this.feedTuners = feedTuners } @@ -193,12 +193,6 @@ class MergeFeedSource { return this.hasMore && this.queue.length === 0 } - reset() { - this.cursor = undefined - this.queue = [] - this.hasMore = true - } - take(n: number): AppBskyFeedDefs.FeedViewPost[] { return this.queue.splice(0, n) } @@ -232,11 +226,6 @@ class MergeFeedSource { class MergeFeedSource_Following extends MergeFeedSource { tuner = new FeedTuner(this.feedTuners) - reset() { - super.reset() - this.tuner.reset() - } - async fetchNext(n: number) { return this._fetchNextInner(n) } @@ -245,39 +234,38 @@ class MergeFeedSource_Following extends MergeFeedSource { cursor: string | undefined, limit: number, ): Promise { - const res = await this.getAgent().getTimeline({cursor, limit}) + const res = await this.agent.getTimeline({cursor, limit}) // run the tuner pre-emptively to ensure better mixing const slices = this.tuner.tune(res.data.feed, { dryRun: false, - maintainOrder: true, }) - res.data.feed = slices.map(slice => slice.rootItem) + res.data.feed = slices.map(slice => slice._feedPost) return res } } class MergeFeedSource_Custom extends MergeFeedSource { - getAgent: () => BskyAgent + agent: BskyAgent minDate: Date feedUri: string userInterests?: string constructor({ - getAgent, + agent, feedUri, feedTuners, userInterests, }: { - getAgent: () => BskyAgent + agent: BskyAgent feedUri: string feedTuners: FeedTunerFn[] userInterests?: string }) { super({ - getAgent, + agent, feedTuners, }) - this.getAgent = getAgent + this.agent = agent this.feedUri = feedUri this.userInterests = userInterests this.sourceInfo = { @@ -295,7 +283,7 @@ class MergeFeedSource_Custom extends MergeFeedSource { try { const contentLangs = getContentLanguages().join(',') const isBlueskyOwned = isBlueskyOwnedFeed(this.feedUri) - const res = await this.getAgent().app.bsky.feed.getFeed( + const res = await this.agent.app.bsky.feed.getFeed( { cursor, limit, diff --git a/src/lib/api/index.ts b/src/lib/api/index.ts index bc50f9cb3c..658ed78de4 100644 --- a/src/lib/api/index.ts +++ b/src/lib/api/index.ts @@ -4,10 +4,8 @@ import { AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, AppBskyFeedThreadgate, - AppBskyRichtextFacet, BskyAgent, ComAtprotoLabelDefs, - ComAtprotoRepoUploadBlob, RichText, } from '@atproto/api' import {AtUri} from '@atproto/api' @@ -15,11 +13,14 @@ import {AtUri} from '@atproto/api' import {logger} from '#/logger' import {ThreadgateSetting} from '#/state/queries/threadgate' import {isNetworkError} from 'lib/strings/errors' -import {shortenLinks} from 'lib/strings/rich-text-manip' -import {isNative, isWeb} from 'platform/detection' +import {shortenLinks, stripInvalidMentions} from 'lib/strings/rich-text-manip' +import {isNative} from 'platform/detection' import {ImageModel} from 'state/models/media/image' import {LinkMeta} from '../link-meta/link-meta' import {safeDeleteAsync} from '../media/manip' +import {uploadBlob} from './upload-blob' + +export {uploadBlob} export interface ExternalEmbedDraft { uri: string @@ -29,25 +30,6 @@ export interface ExternalEmbedDraft { localThumb?: ImageModel } -export async function uploadBlob( - agent: BskyAgent, - blob: string, - encoding: string, -): Promise { - if (isWeb) { - // `blob` should be a data uri - return agent.uploadBlob(convertDataURIToUint8Array(blob), { - encoding, - }) - } else { - // `blob` should be a path to a file in the local FS - return agent.uploadBlob( - blob, // this will be special-cased by the fetch monkeypatch in /src/state/lib/api.ts - {encoding}, - ) - } -} - interface PostOpts { rawText: string replyTo?: string @@ -55,6 +37,10 @@ interface PostOpts { uri: string cid: string } + video?: { + uri: string + cid: string + } extLink?: ExternalEmbedDraft images?: ImageModel[] labels?: string[] @@ -81,17 +67,7 @@ export async function post(agent: BskyAgent, opts: PostOpts) { opts.onStateChange?.('Processing...') await rt.detectFacets(agent) rt = shortenLinks(rt) - - // filter out any mention facets that didn't map to a user - rt.facets = rt.facets?.filter(facet => { - const mention = facet.features.find(feature => - AppBskyRichtextFacet.isMention(feature), - ) - if (mention && !mention.did) { - return false - } - return true - }) + rt = stripInvalidMentions(rt) // add quote embed if present if (opts.quote) { @@ -281,7 +257,7 @@ export async function post(agent: BskyAgent, opts: PostOpts) { return res } -async function createThreadgate( +export async function createThreadgate( agent: BskyAgent, postUri: string, threadgate: ThreadgateSetting[], @@ -307,20 +283,15 @@ async function createThreadgate( } const postUrip = new AtUri(postUri) - await agent.api.app.bsky.feed.threadgate.create( - {repo: agent.session!.did, rkey: postUrip.rkey}, - {post: postUri, createdAt: new Date().toISOString(), allow}, - ) -} - -// helpers -// = - -function convertDataURIToUint8Array(uri: string): Uint8Array { - var raw = window.atob(uri.substring(uri.indexOf(';base64,') + 8)) - var binary = new Uint8Array(new ArrayBuffer(raw.length)) - for (let i = 0; i < raw.length; i++) { - binary[i] = raw.charCodeAt(i) - } - return binary + await agent.api.com.atproto.repo.putRecord({ + repo: agent.accountDid, + collection: 'app.bsky.feed.threadgate', + rkey: postUrip.rkey, + record: { + $type: 'app.bsky.feed.threadgate', + post: postUri, + allow, + createdAt: new Date().toISOString(), + }, + }) } diff --git a/src/lib/api/upload-blob.ts b/src/lib/api/upload-blob.ts new file mode 100644 index 0000000000..0814d5185b --- /dev/null +++ b/src/lib/api/upload-blob.ts @@ -0,0 +1,82 @@ +import RNFS from 'react-native-fs' +import {BskyAgent, ComAtprotoRepoUploadBlob} from '@atproto/api' + +/** + * @param encoding Allows overriding the blob's type + */ +export async function uploadBlob( + agent: BskyAgent, + input: string | Blob, + encoding?: string, +): Promise { + if (typeof input === 'string' && input.startsWith('file:')) { + const blob = await asBlob(input) + return agent.uploadBlob(blob, {encoding}) + } + + if (typeof input === 'string' && input.startsWith('/')) { + const blob = await asBlob(`file://${input}`) + return agent.uploadBlob(blob, {encoding}) + } + + if (typeof input === 'string' && input.startsWith('data:')) { + const blob = await fetch(input).then(r => r.blob()) + return agent.uploadBlob(blob, {encoding}) + } + + if (input instanceof Blob) { + return agent.uploadBlob(input, {encoding}) + } + + throw new TypeError(`Invalid uploadBlob input: ${typeof input}`) +} + +async function asBlob(uri: string): Promise { + return withSafeFile(uri, async safeUri => { + // Note + // Android does not support `fetch()` on `file://` URIs. for this reason, we + // use XMLHttpRequest instead of simply calling: + + // return fetch(safeUri.replace('file:///', 'file:/')).then(r => r.blob()) + + return await new Promise((resolve, reject) => { + const xhr = new XMLHttpRequest() + xhr.onload = () => resolve(xhr.response) + xhr.onerror = () => reject(new Error('Failed to load blob')) + xhr.responseType = 'blob' + xhr.open('GET', safeUri, true) + xhr.send(null) + }) + }) +} + +// HACK +// React native has a bug that inflates the size of jpegs on upload +// we get around that by renaming the file ext to .bin +// see https://github.com/facebook/react-native/issues/27099 +// -prf +async function withSafeFile( + uri: string, + fn: (path: string) => Promise, +): Promise { + if (uri.endsWith('.jpeg') || uri.endsWith('.jpg')) { + // Since we don't "own" the file, we should avoid renaming or modifying it. + // Instead, let's copy it to a temporary file and use that (then remove the + // temporary file). + const newPath = uri.replace(/\.jpe?g$/, '.bin') + try { + await RNFS.copyFile(uri, newPath) + } catch { + // Failed to copy the file, just use the original + return await fn(uri) + } + try { + return await fn(newPath) + } finally { + // Remove the temporary file + await RNFS.unlink(newPath) + } + } else { + return fn(uri) + } +} diff --git a/src/lib/api/upload-blob.web.ts b/src/lib/api/upload-blob.web.ts new file mode 100644 index 0000000000..d3c52190c1 --- /dev/null +++ b/src/lib/api/upload-blob.web.ts @@ -0,0 +1,26 @@ +import {BskyAgent, ComAtprotoRepoUploadBlob} from '@atproto/api' + +/** + * @note It is recommended, on web, to use the `file` instance of the file + * selector input element, rather than a `data:` URL, to avoid + * loading the file into memory. `File` extends `Blob` "file" instances can + * be passed directly to this function. + */ +export async function uploadBlob( + agent: BskyAgent, + input: string | Blob, + encoding?: string, +): Promise { + if (typeof input === 'string' && input.startsWith('data:')) { + const blob = await fetch(input).then(r => r.blob()) + return agent.uploadBlob(blob, {encoding}) + } + + if (input instanceof Blob) { + return agent.uploadBlob(input, { + encoding, + }) + } + + throw new TypeError(`Invalid uploadBlob input: ${typeof input}`) +} diff --git a/src/lib/app-info.web.ts b/src/lib/app-info.web.ts index fe2bc5fff8..7227e28632 100644 --- a/src/lib/app-info.web.ts +++ b/src/lib/app-info.web.ts @@ -1,6 +1,8 @@ import {version} from '../../package.json' +export const BUILD_ENV = process.env.EXPO_PUBLIC_ENV export const IS_DEV = process.env.EXPO_PUBLIC_ENV === 'development' +export const IS_TESTFLIGHT = false // This is the commit hash that the current bundle was made from. The user can see the commit hash in the app's settings // along with the other version info. Useful for debugging/reporting. diff --git a/src/lib/async/until.ts b/src/lib/async/until.ts index db53c92189..1b7a576334 100644 --- a/src/lib/async/until.ts +++ b/src/lib/async/until.ts @@ -1,10 +1,10 @@ import {timeout} from './timeout' -export async function until( +export async function until( retries: number, delay: number, - cond: (v: any, err: any) => boolean, - fn: () => Promise, + cond: (v: T, err: any) => boolean, + fn: () => Promise, ): Promise { while (retries > 0) { try { @@ -13,7 +13,9 @@ export async function until( return true } } catch (e: any) { - if (cond(undefined, e)) { + // TODO: change the type signature of cond to accept undefined + // however this breaks every existing usage of until -sfn + if (cond(undefined as unknown as T, e)) { return true } } diff --git a/src/lib/browser.native.ts b/src/lib/browser.native.ts new file mode 100644 index 0000000000..8e045138c8 --- /dev/null +++ b/src/lib/browser.native.ts @@ -0,0 +1,4 @@ +export const isSafari = false +export const isFirefox = false +export const isTouchDevice = true +export const isAndroidWeb = false diff --git a/src/lib/browser.ts b/src/lib/browser.ts new file mode 100644 index 0000000000..08c43fbfdf --- /dev/null +++ b/src/lib/browser.ts @@ -0,0 +1,9 @@ +// https://stackoverflow.com/questions/7944460/detect-safari-browser +export const isSafari = /^((?!chrome|android).)*safari/i.test( + navigator.userAgent, +) +export const isFirefox = /firefox|fxios/i.test(navigator.userAgent) +export const isTouchDevice = + 'ontouchstart' in window || navigator.maxTouchPoints > 1 +export const isAndroidWeb = + /android/i.test(navigator.userAgent) && isTouchDevice diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 05d1591f56..45b3dfd950 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -13,6 +13,15 @@ export const EMBED_SERVICE = 'https://embed.bsky.app' export const EMBED_SCRIPT = `${EMBED_SERVICE}/static/embed.js` export const BSKY_DOWNLOAD_URL = 'https://bsky.app/download' +// HACK +// Yes, this is exactly what it looks like. It's a hard-coded constant +// reflecting the number of new users in the last week. We don't have +// time to add a route to the servers for this so we're just going to hard +// code and update this number with each release until we can get the +// server route done. +// -prf +export const JOINED_THIS_WEEK = 21797 // as of Jul5 2024 + const BASE_FEEDBACK_FORM_URL = `${HELP_DESK_URL}/requests/new` export function FEEDBACK_FORM_URL({ email, @@ -84,6 +93,7 @@ export const createHitslop = (size: number): Insets => ({ export const HITSLOP_10 = createHitslop(10) export const HITSLOP_20 = createHitslop(20) export const HITSLOP_30 = createHitslop(30) +export const POST_CTRL_HITSLOP = {top: 5, bottom: 10, left: 10, right: 10} export const BACK_HITSLOP = HITSLOP_30 export const MAX_POST_LINES = 25 @@ -123,3 +133,5 @@ export const GIF_SEARCH = (params: string) => `${GIF_SERVICE}/tenor/v2/search?${params}` export const GIF_FEATURED = (params: string) => `${GIF_SERVICE}/tenor/v2/featured?${params}` + +export const MAX_LABELERS = 20 diff --git a/src/lib/custom-animations/ScaleAndFade.ts b/src/lib/custom-animations/ScaleAndFade.ts new file mode 100644 index 0000000000..ad2c15f8f6 --- /dev/null +++ b/src/lib/custom-animations/ScaleAndFade.ts @@ -0,0 +1,39 @@ +import {withTiming} from 'react-native-reanimated' + +export function ScaleAndFadeIn() { + 'worklet' + + const animations = { + opacity: withTiming(1), + transform: [{scale: withTiming(1)}], + } + + const initialValues = { + opacity: 0, + transform: [{scale: 0.7}], + } + + return { + animations, + initialValues, + } +} + +export function ScaleAndFadeOut() { + 'worklet' + + const animations = { + opacity: withTiming(0), + transform: [{scale: withTiming(0.7)}], + } + + const initialValues = { + opacity: 1, + transform: [{scale: 1}], + } + + return { + animations, + initialValues, + } +} diff --git a/src/lib/custom-animations/ShrinkAndPop.ts b/src/lib/custom-animations/ShrinkAndPop.ts new file mode 100644 index 0000000000..ea2386c14e --- /dev/null +++ b/src/lib/custom-animations/ShrinkAndPop.ts @@ -0,0 +1,27 @@ +import {withDelay, withSequence, withTiming} from 'react-native-reanimated' + +export function ShrinkAndPop() { + 'worklet' + + const animations = { + opacity: withDelay(125, withTiming(0, {duration: 125})), + transform: [ + { + scale: withSequence( + withTiming(0.7, {duration: 75}), + withTiming(1.1, {duration: 150}), + ), + }, + ], + } + + const initialValues = { + opacity: 1, + transform: [{scale: 1}], + } + + return { + animations, + initialValues, + } +} diff --git a/src/lib/generate-starterpack.ts b/src/lib/generate-starterpack.ts new file mode 100644 index 0000000000..64d30a954f --- /dev/null +++ b/src/lib/generate-starterpack.ts @@ -0,0 +1,164 @@ +import { + AppBskyActorDefs, + AppBskyGraphGetStarterPack, + BskyAgent, + Facet, +} from '@atproto/api' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useMutation} from '@tanstack/react-query' + +import {until} from 'lib/async/until' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {enforceLen} from 'lib/strings/helpers' +import {useAgent} from 'state/session' + +export const createStarterPackList = async ({ + name, + description, + descriptionFacets, + profiles, + agent, +}: { + name: string + description?: string + descriptionFacets?: Facet[] + profiles: AppBskyActorDefs.ProfileViewBasic[] + agent: BskyAgent +}): Promise<{uri: string; cid: string}> => { + if (profiles.length === 0) throw new Error('No profiles given') + + const list = await agent.app.bsky.graph.list.create( + {repo: agent.session!.did}, + { + name, + description, + descriptionFacets, + avatar: undefined, + createdAt: new Date().toISOString(), + purpose: 'app.bsky.graph.defs#referencelist', + }, + ) + if (!list) throw new Error('List creation failed') + await agent.com.atproto.repo.applyWrites({ + repo: agent.session!.did, + writes: [ + createListItem({did: agent.session!.did, listUri: list.uri}), + ].concat( + profiles + // Ensure we don't have ourselves in this list twice + .filter(p => p.did !== agent.session!.did) + .map(p => createListItem({did: p.did, listUri: list.uri})), + ), + }) + + return list +} + +export function useGenerateStarterPackMutation({ + onSuccess, + onError, +}: { + onSuccess: ({uri, cid}: {uri: string; cid: string}) => void + onError: (e: Error) => void +}) { + const {_} = useLingui() + const agent = useAgent() + const starterPackString = _(msg`Starter Pack`) + + return useMutation<{uri: string; cid: string}, Error, void>({ + mutationFn: async () => { + let profile: AppBskyActorDefs.ProfileViewBasic | undefined + let profiles: AppBskyActorDefs.ProfileViewBasic[] | undefined + + await Promise.all([ + (async () => { + profile = ( + await agent.app.bsky.actor.getProfile({ + actor: agent.session!.did, + }) + ).data + })(), + (async () => { + profiles = ( + await agent.app.bsky.actor.searchActors({ + q: encodeURIComponent('*'), + limit: 49, + }) + ).data.actors.filter(p => p.viewer?.following) + })(), + ]) + + if (!profile || !profiles) { + throw new Error('ERROR_DATA') + } + + // We include ourselves when we make the list + if (profiles.length < 7) { + throw new Error('NOT_ENOUGH_FOLLOWERS') + } + + const displayName = enforceLen( + profile.displayName + ? sanitizeDisplayName(profile.displayName) + : `@${sanitizeHandle(profile.handle)}`, + 25, + true, + ) + const starterPackName = `${displayName}'s ${starterPackString}` + + const list = await createStarterPackList({ + name: starterPackName, + profiles, + agent, + }) + + return await agent.app.bsky.graph.starterpack.create( + { + repo: agent.session!.did, + }, + { + name: starterPackName, + list: list.uri, + createdAt: new Date().toISOString(), + }, + ) + }, + onSuccess: async data => { + await whenAppViewReady(agent, data.uri, v => { + return typeof v?.data.starterPack.uri === 'string' + }) + onSuccess(data) + }, + onError: error => { + onError(error) + }, + }) +} + +function createListItem({did, listUri}: {did: string; listUri: string}) { + return { + $type: 'com.atproto.repo.applyWrites#create', + collection: 'app.bsky.graph.listitem', + value: { + $type: 'app.bsky.graph.listitem', + subject: did, + list: listUri, + createdAt: new Date().toISOString(), + }, + } +} + +async function whenAppViewReady( + agent: BskyAgent, + uri: string, + fn: (res?: AppBskyGraphGetStarterPack.Response) => boolean, +) { + await until( + 5, // 5 tries + 1e3, // 1s delay between tries + fn, + () => agent.app.bsky.graph.getStarterPack({starterPack: uri}), + ) +} diff --git a/src/lib/hooks/__tests__/useTimeAgo.test.ts b/src/lib/hooks/__tests__/useTimeAgo.test.ts new file mode 100644 index 0000000000..e74f9c62db --- /dev/null +++ b/src/lib/hooks/__tests__/useTimeAgo.test.ts @@ -0,0 +1,102 @@ +import {describe, expect, it} from '@jest/globals' +import {MessageDescriptor} from '@lingui/core' +import {addDays, subDays, subHours, subMinutes, subSeconds} from 'date-fns' + +import {dateDiff} from '../useTimeAgo' + +const lingui: any = (obj: MessageDescriptor) => obj.message + +const base = new Date('2024-06-17T00:00:00Z') + +describe('dateDiff', () => { + it(`works with numbers`, () => { + expect(dateDiff(subDays(base, 3), Number(base), {lingui})).toEqual('3d') + }) + it(`works with strings`, () => { + expect(dateDiff(subDays(base, 3), base.toString(), {lingui})).toEqual('3d') + }) + it(`works with dates`, () => { + expect(dateDiff(subDays(base, 3), base, {lingui})).toEqual('3d') + }) + + it(`equal values return now`, () => { + expect(dateDiff(base, base, {lingui})).toEqual('now') + }) + it(`future dates return now`, () => { + expect(dateDiff(addDays(base, 3), base, {lingui})).toEqual('now') + }) + + it(`values < 5 seconds ago return now`, () => { + const then = subSeconds(base, 4) + expect(dateDiff(then, base, {lingui})).toEqual('now') + }) + it(`values >= 5 seconds ago return seconds`, () => { + const then = subSeconds(base, 5) + expect(dateDiff(then, base, {lingui})).toEqual('5s') + }) + + it(`values < 1 min return seconds`, () => { + const then = subSeconds(base, 59) + expect(dateDiff(then, base, {lingui})).toEqual('59s') + }) + it(`values >= 1 min return minutes`, () => { + const then = subSeconds(base, 60) + expect(dateDiff(then, base, {lingui})).toEqual('1m') + }) + it(`minutes round down`, () => { + const then = subSeconds(base, 119) + expect(dateDiff(then, base, {lingui})).toEqual('1m') + }) + + it(`values < 1 hour return minutes`, () => { + const then = subMinutes(base, 59) + expect(dateDiff(then, base, {lingui})).toEqual('59m') + }) + it(`values >= 1 hour return hours`, () => { + const then = subMinutes(base, 60) + expect(dateDiff(then, base, {lingui})).toEqual('1h') + }) + it(`hours round down`, () => { + const then = subMinutes(base, 119) + expect(dateDiff(then, base, {lingui})).toEqual('1h') + }) + + it(`values < 1 day return hours`, () => { + const then = subHours(base, 23) + expect(dateDiff(then, base, {lingui})).toEqual('23h') + }) + it(`values >= 1 day return days`, () => { + const then = subHours(base, 24) + expect(dateDiff(then, base, {lingui})).toEqual('1d') + }) + it(`days round down`, () => { + const then = subHours(base, 47) + expect(dateDiff(then, base, {lingui})).toEqual('1d') + }) + + it(`values < 30 days return days`, () => { + const then = subDays(base, 29) + expect(dateDiff(then, base, {lingui})).toEqual('29d') + }) + it(`values >= 30 days return months`, () => { + const then = subDays(base, 30) + expect(dateDiff(then, base, {lingui})).toEqual('1mo') + }) + it(`months round down`, () => { + const then = subDays(base, 59) + expect(dateDiff(then, base, {lingui})).toEqual('1mo') + }) + it(`values are rounded by increments of 30`, () => { + const then = subDays(base, 61) + expect(dateDiff(then, base, {lingui})).toEqual('2mo') + }) + + it(`values < 360 days return months`, () => { + const then = subDays(base, 359) + expect(dateDiff(then, base, {lingui})).toEqual('11mo') + }) + it(`values >= 360 days return the earlier value`, () => { + const then = subDays(base, 360) + expect(dateDiff(then, base, {lingui})).toEqual(then.toLocaleDateString()) + }) +}) diff --git a/src/lib/hooks/useAccountSwitcher.ts b/src/lib/hooks/useAccountSwitcher.ts index 33d56eb85e..09ff30277f 100644 --- a/src/lib/hooks/useAccountSwitcher.ts +++ b/src/lib/hooks/useAccountSwitcher.ts @@ -53,6 +53,11 @@ export function useAccountSwitcher() { logger.error(`switch account: selectAccount failed`, { message: e.message, }) + requestSwitchToAccount({requestedAccount: account.did}) + Toast.show( + _(msg`Please sign in as @${account.handle}`), + 'circle-exclamation', + ) } finally { setPendingDid(null) } diff --git a/src/lib/hooks/useAppState.ts b/src/lib/hooks/useAppState.ts new file mode 100644 index 0000000000..7fb228d618 --- /dev/null +++ b/src/lib/hooks/useAppState.ts @@ -0,0 +1,15 @@ +import {useEffect, useState} from 'react' +import {AppState} from 'react-native' + +export function useAppState() { + const [state, setState] = useState(AppState.currentState) + + useEffect(() => { + const sub = AppState.addEventListener('change', nextAppState => { + setState(nextAppState) + }) + return () => sub.remove() + }, []) + + return state +} diff --git a/src/lib/hooks/useBottomBarOffset.ts b/src/lib/hooks/useBottomBarOffset.ts new file mode 100644 index 0000000000..945c980620 --- /dev/null +++ b/src/lib/hooks/useBottomBarOffset.ts @@ -0,0 +1,14 @@ +import {useSafeAreaInsets} from 'react-native-safe-area-context' + +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {clamp} from 'lib/numbers' +import {isWeb} from 'platform/detection' + +export function useBottomBarOffset(modifier: number = 0) { + const {isTabletOrDesktop} = useWebMediaQueries() + const {bottom: bottomInset} = useSafeAreaInsets() + return ( + (isWeb && isTabletOrDesktop ? 0 : clamp(60 + bottomInset, 60, 75)) + + modifier + ) +} diff --git a/src/lib/hooks/useDedupe.ts b/src/lib/hooks/useDedupe.ts index d9432cb2c2..13b5b83f58 100644 --- a/src/lib/hooks/useDedupe.ts +++ b/src/lib/hooks/useDedupe.ts @@ -3,7 +3,7 @@ import React from 'react' export const useDedupe = () => { const canDo = React.useRef(true) - return React.useRef((cb: () => unknown) => { + return React.useCallback((cb: () => unknown) => { if (canDo.current) { canDo.current = false setTimeout(() => { @@ -13,5 +13,5 @@ export const useDedupe = () => { return true } return false - }).current + }, []) } diff --git a/src/lib/hooks/useIntentHandler.ts b/src/lib/hooks/useIntentHandler.ts index 8741530b50..460df3753d 100644 --- a/src/lib/hooks/useIntentHandler.ts +++ b/src/lib/hooks/useIntentHandler.ts @@ -1,9 +1,12 @@ import React from 'react' import * as Linking from 'expo-linking' + +import {logEvent} from 'lib/statsig/statsig' import {isNative} from 'platform/detection' -import {useComposerControls} from 'state/shell' import {useSession} from 'state/session' +import {useComposerControls} from 'state/shell' import {useCloseAllActiveElements} from 'state/util' +import {Referrer} from '../../../modules/expo-bluesky-swiss-army' type IntentType = 'compose' @@ -15,6 +18,15 @@ export function useIntentHandler() { React.useEffect(() => { const handleIncomingURL = (url: string) => { + const referrerInfo = Referrer.getReferrerInfo() + if (referrerInfo && referrerInfo.hostname !== 'bsky.app') { + logEvent('deepLink:referrerReceived', { + to: url, + referrer: referrerInfo?.referrer, + hostname: referrerInfo?.hostname, + }) + } + // We want to be able to support bluesky:// deeplinks. It's unnatural for someone to use a deeplink with three // slashes, like bluesky:///intent/follow. However, supporting just two slashes causes us to have to take care // of two cases when parsing the url. If we ensure there is a third slash, we can always ensure the first diff --git a/src/lib/hooks/useMinimalShellMode.tsx b/src/lib/hooks/useMinimalShellTransform.ts similarity index 51% rename from src/lib/hooks/useMinimalShellMode.tsx rename to src/lib/hooks/useMinimalShellTransform.ts index e81fc434fe..9875840d65 100644 --- a/src/lib/hooks/useMinimalShellMode.tsx +++ b/src/lib/hooks/useMinimalShellTransform.ts @@ -1,23 +1,15 @@ import {interpolate, useAnimatedStyle} from 'react-native-reanimated' -import {useMinimalShellMode as useMinimalShellModeState} from '#/state/shell/minimal-mode' + +import {useMinimalShellMode} from '#/state/shell/minimal-mode' import {useShellLayout} from '#/state/shell/shell-layout' -export function useMinimalShellMode() { - const mode = useMinimalShellModeState() - const {footerHeight, headerHeight} = useShellLayout() +// Keep these separated so that we only pay for useAnimatedStyle that gets used. - const footerMinimalShellTransform = useAnimatedStyle(() => { - return { - pointerEvents: mode.value === 0 ? 'auto' : 'none', - opacity: Math.pow(1 - mode.value, 2), - transform: [ - { - translateY: interpolate(mode.value, [0, 1], [0, footerHeight.value]), - }, - ], - } - }) - const headerMinimalShellTransform = useAnimatedStyle(() => { +export function useMinimalShellHeaderTransform() { + const mode = useMinimalShellMode() + const {headerHeight} = useShellLayout() + + const headerTransform = useAnimatedStyle(() => { return { pointerEvents: mode.value === 0 ? 'auto' : 'none', opacity: Math.pow(1 - mode.value, 2), @@ -28,7 +20,32 @@ export function useMinimalShellMode() { ], } }) - const fabMinimalShellTransform = useAnimatedStyle(() => { + + return headerTransform +} + +export function useMinimalShellFooterTransform() { + const mode = useMinimalShellMode() + const {footerHeight} = useShellLayout() + + const footerTransform = useAnimatedStyle(() => { + return { + pointerEvents: mode.value === 0 ? 'auto' : 'none', + opacity: Math.pow(1 - mode.value, 2), + transform: [ + { + translateY: interpolate(mode.value, [0, 1], [0, footerHeight.value]), + }, + ], + } + }) + return footerTransform +} + +export function useMinimalShellFabTransform() { + const mode = useMinimalShellMode() + + const fabTransform = useAnimatedStyle(() => { return { transform: [ { @@ -37,9 +54,5 @@ export function useMinimalShellMode() { ], } }) - return { - footerMinimalShellTransform, - headerMinimalShellTransform, - fabMinimalShellTransform, - } + return fabTransform } diff --git a/src/lib/hooks/useNavigationTabState.ts b/src/lib/hooks/useNavigationTabState.ts index c70653e3a7..e1fa950089 100644 --- a/src/lib/hooks/useNavigationTabState.ts +++ b/src/lib/hooks/useNavigationTabState.ts @@ -7,6 +7,7 @@ export function useNavigationTabState() { const res = { isAtHome: getTabState(state, 'Home') !== TabState.Outside, isAtSearch: getTabState(state, 'Search') !== TabState.Outside, + // FeedsTab no longer exists, but this check works for `Feeds` screen as well isAtFeeds: getTabState(state, 'Feeds') !== TabState.Outside, isAtNotifications: getTabState(state, 'Notifications') !== TabState.Outside, diff --git a/src/lib/hooks/useNotificationHandler.ts b/src/lib/hooks/useNotificationHandler.ts index 6f5fbd66bb..e4e7e14744 100644 --- a/src/lib/hooks/useNotificationHandler.ts +++ b/src/lib/hooks/useNotificationHandler.ts @@ -26,6 +26,7 @@ type NotificationReason = | 'reply' | 'quote' | 'chat-message' + | 'starterpack-joined' type NotificationPayload = | { @@ -41,13 +42,14 @@ type NotificationPayload = } const DEFAULT_HANDLER_OPTIONS = { - shouldShowAlert: true, + shouldShowAlert: false, shouldPlaySound: false, shouldSetBadge: true, } -// This needs to stay outside the hook to persist between account switches +// These need to stay outside the hook to persist between account switches let storedPayload: NotificationPayload | undefined +let prevDate = 0 export function useNotificationsHandler() { const queryClient = useQueryClient() @@ -58,12 +60,13 @@ export function useNotificationsHandler() { const {setShowLoggedOut} = useLoggedOutViewControls() const closeAllActiveElements = useCloseAllActiveElements() - // Safety to prevent double handling of the same notification - const prevDate = React.useRef(0) - + // On Android, we cannot control which sound is used for a notification on Android + // 28 or higher. Instead, we have to configure a notification channel ahead of time + // which has the sounds we want in the configuration for that channel. These two + // channels allow for the mute/unmute functionality we want for the background + // handler. React.useEffect(() => { if (!isAndroid) return - Notifications.setNotificationChannelAsync('chat-messages', { name: 'Chat', importance: Notifications.AndroidImportance.MAX, @@ -101,9 +104,27 @@ export function useNotificationsHandler() { } else { navigation.dispatch(state => { if (state.routes[0].name === 'Messages') { - return CommonActions.navigate('MessagesConversation', { - conversation: payload.convoId, - }) + if ( + state.routes[state.routes.length - 1].name === + 'MessagesConversation' + ) { + return CommonActions.reset({ + ...state, + routes: [ + ...state.routes.slice(0, state.routes.length - 1), + { + name: 'MessagesConversation', + params: { + conversation: payload.convoId, + }, + }, + ], + }) + } else { + return CommonActions.navigate('MessagesConversation', { + conversation: payload.convoId, + }) + } } else { return CommonActions.navigate('MessagesTab', { screen: 'Messages', @@ -122,6 +143,7 @@ export function useNotificationsHandler() { case 'mention': case 'quote': case 'reply': + case 'starterpack-joined': resetToTab('NotificationsTab') break // TODO implement these after we have an idea of how to handle each individual case @@ -184,10 +206,10 @@ export function useNotificationsHandler() { const responseReceivedListener = Notifications.addNotificationResponseReceivedListener(e => { - if (e.notification.date === prevDate.current) { + if (e.notification.date === prevDate) { return } - prevDate.current = e.notification.date + prevDate = e.notification.date logger.debug( 'Notifications: response received', diff --git a/src/lib/hooks/useOTAUpdate.ts b/src/lib/hooks/useOTAUpdate.ts deleted file mode 100644 index d35179256d..0000000000 --- a/src/lib/hooks/useOTAUpdate.ts +++ /dev/null @@ -1,56 +0,0 @@ -import * as Updates from 'expo-updates' -import {useCallback, useEffect} from 'react' -import {AppState} from 'react-native' -import {logger} from '#/logger' - -export function useOTAUpdate() { - // HELPER FUNCTIONS - const checkForUpdate = useCallback(async () => { - logger.debug('useOTAUpdate: Checking for update...') - try { - // Check if new OTA update is available - const update = await Updates.checkForUpdateAsync() - // If updates aren't available stop the function execution - if (!update.isAvailable) { - return - } - // Otherwise fetch the update in the background, so even if the user rejects switching to latest version it will be done automatically on next relaunch. - await Updates.fetchUpdateAsync() - } catch (e) { - logger.error('useOTAUpdate: Error while checking for update', { - message: e, - }) - } - }, []) - const updateEventListener = useCallback((event: Updates.UpdateEvent) => { - logger.debug('useOTAUpdate: Listening for update...') - if (event.type === Updates.UpdateEventType.ERROR) { - logger.error('useOTAUpdate: Error while listening for update', { - message: event.message, - }) - } else if (event.type === Updates.UpdateEventType.NO_UPDATE_AVAILABLE) { - // Handle no update available - // do nothing - } else if (event.type === Updates.UpdateEventType.UPDATE_AVAILABLE) { - // Handle update available - // open modal, ask for user confirmation, and reload the app - } - }, []) - - useEffect(() => { - // ADD EVENT LISTENERS - const updateEventSubscription = Updates.addListener(updateEventListener) - const appStateSubscription = AppState.addEventListener('change', state => { - if (state === 'active' && !__DEV__) { - checkForUpdate() - } - }) - - // REMOVE EVENT LISTENERS (CLEANUP) - return () => { - updateEventSubscription.remove() - appStateSubscription.remove() - } - }, []) // eslint-disable-line react-hooks/exhaustive-deps - // disable exhaustive deps because we don't want to run this effect again -} diff --git a/src/lib/hooks/usePermissions.ts b/src/lib/hooks/usePermissions.ts index 138f3eacab..d248e19759 100644 --- a/src/lib/hooks/usePermissions.ts +++ b/src/lib/hooks/usePermissions.ts @@ -1,6 +1,7 @@ -import {Camera} from 'expo-camera' -import * as MediaLibrary from 'expo-media-library' import {Linking} from 'react-native' +import {Camera} from 'expo-camera/legacy' // TODO: Migrate to the new one. +import * as MediaLibrary from 'expo-media-library' + import {isWeb} from 'platform/detection' import {Alert} from 'view/com/util/Alert' @@ -19,7 +20,9 @@ const openPermissionAlert = (perm: string) => { } export function usePhotoLibraryPermission() { - const [res, requestPermission] = MediaLibrary.usePermissions() + const [res, requestPermission] = MediaLibrary.usePermissions({ + granularPermissions: ['photo'], + }) const requestPhotoAccessIfNeeded = async () => { // On the, we use to produce a filepicker // This does not need any permission granting. @@ -45,6 +48,35 @@ export function usePhotoLibraryPermission() { return {requestPhotoAccessIfNeeded} } +export function useVideoLibraryPermission() { + const [res, requestPermission] = MediaLibrary.usePermissions({ + granularPermissions: ['video'], + }) + const requestVideoAccessIfNeeded = async () => { + // On the, we use to produce a filepicker + // This does not need any permission granting. + if (isWeb) { + return true + } + + if (res?.granted) { + return true + } else if (!res || res.status === 'undetermined' || res?.canAskAgain) { + const {canAskAgain, granted, status} = await requestPermission() + + if (!canAskAgain && status === 'undetermined') { + openPermissionAlert('video library') + } + + return granted + } else { + openPermissionAlert('video library') + return false + } + } + return {requestVideoAccessIfNeeded} +} + export function useCameraPermission() { const [res, requestPermission] = Camera.useCameraPermissions() diff --git a/src/lib/hooks/usePermissions.web.ts b/src/lib/hooks/usePermissions.web.ts index c550a7d6df..b65bbc4141 100644 --- a/src/lib/hooks/usePermissions.web.ts +++ b/src/lib/hooks/usePermissions.web.ts @@ -14,3 +14,11 @@ export function useCameraPermission() { return {requestCameraAccessIfNeeded} } + +export function useVideoLibraryPermission() { + const requestVideoAccessIfNeeded = async () => { + return true + } + + return {requestVideoAccessIfNeeded} +} diff --git a/src/lib/hooks/useTimeAgo.ts b/src/lib/hooks/useTimeAgo.ts new file mode 100644 index 0000000000..efcb4754bb --- /dev/null +++ b/src/lib/hooks/useTimeAgo.ts @@ -0,0 +1,86 @@ +import {useCallback} from 'react' +import {msg, plural} from '@lingui/macro' +import {I18nContext, useLingui} from '@lingui/react' +import {differenceInSeconds} from 'date-fns' + +export type TimeAgoOptions = { + lingui: I18nContext['_'] + format?: 'long' | 'short' +} + +export function useGetTimeAgo() { + const {_} = useLingui() + return useCallback( + ( + earlier: number | string | Date, + later: number | string | Date, + options?: Omit, + ) => { + return dateDiff(earlier, later, {lingui: _, format: options?.format}) + }, + [_], + ) +} + +const NOW = 5 +const MINUTE = 60 +const HOUR = MINUTE * 60 +const DAY = HOUR * 24 +const MONTH_30 = DAY * 30 + +/** + * Returns the difference between `earlier` and `later` dates, formatted as a + * natural language string. + * + * - All month are considered exactly 30 days. + * - Dates assume `earlier` <= `later`, and will otherwise return 'now'. + * - Differences >= 360 days are returned as the "M/D/YYYY" string + * - All values round down + */ +export function dateDiff( + earlier: number | string | Date, + later: number | string | Date, + options: TimeAgoOptions, +): string { + const _ = options.lingui + const format = options?.format || 'short' + const long = format === 'long' + const diffSeconds = differenceInSeconds(new Date(later), new Date(earlier)) + + if (diffSeconds < NOW) { + return _(msg`now`) + } else if (diffSeconds < MINUTE) { + return `${diffSeconds}${ + long ? ` ${plural(diffSeconds, {one: 'second', other: 'seconds'})}` : 's' + }` + } else if (diffSeconds < HOUR) { + const diff = Math.floor(diffSeconds / MINUTE) + return `${diff}${ + long ? ` ${plural(diff, {one: 'minute', other: 'minutes'})}` : 'm' + }` + } else if (diffSeconds < DAY) { + const diff = Math.floor(diffSeconds / HOUR) + return `${diff}${ + long ? ` ${plural(diff, {one: 'hour', other: 'hours'})}` : 'h' + }` + } else if (diffSeconds < MONTH_30) { + const diff = Math.floor(diffSeconds / DAY) + return `${diff}${ + long ? ` ${plural(diff, {one: 'day', other: 'days'})}` : 'd' + }` + } else { + const diff = Math.floor(diffSeconds / MONTH_30) + if (diff < 12) { + return `${diff}${ + long ? ` ${plural(diff, {one: 'month', other: 'months'})}` : 'mo' + }` + } else { + const str = new Date(earlier).toLocaleDateString() + + if (long) { + return _(msg`on ${str}`) + } + return str + } + } +} diff --git a/src/lib/icons.tsx b/src/lib/icons.tsx index 93b45ea3a9..aefa9c9c37 100644 --- a/src/lib/icons.tsx +++ b/src/lib/icons.tsx @@ -2,98 +2,6 @@ import React from 'react' import {StyleProp, TextStyle, ViewStyle} from 'react-native' import Svg, {Ellipse, Line, Path, Rect} from 'react-native-svg' -export function GridIcon({ - style, - solid, -}: { - style?: StyleProp - solid?: boolean -}) { - const DIM = 4 - const ARC = 2 - return ( - - - - - - - ) -} -export function GridIconSolid({style}: {style?: StyleProp}) { - return -} - -export function HomeIcon({ - style, - size, - strokeWidth = 4, -}: { - style?: StyleProp - size?: string | number - strokeWidth?: number -}) { - return ( - - - - ) -} - -export function HomeIconSolid({ - style, - size, - strokeWidth = 4, -}: { - style?: StyleProp - size?: string | number - strokeWidth?: number -}) { - return ( - - - - ) -} - // Copyright (c) 2020 Refactoring UI Inc. // https://github.com/tailwindlabs/heroicons/blob/master/LICENSE export function MagnifyingGlassIcon({ @@ -147,90 +55,6 @@ export function MagnifyingGlassIcon2({ ) } -export function MagnifyingGlassIcon2Solid({ - style, - size, - strokeWidth = 2, -}: { - style?: StyleProp - size?: string | number - strokeWidth?: number -}) { - return ( - - - - - - ) -} - -// https://github.com/Remix-Design/RemixIcon/blob/master/License -export function BellIcon({ - style, - size, - strokeWidth = 1.5, -}: { - style?: StyleProp - size?: string | number - strokeWidth?: number -}) { - return ( - - - - - ) -} - -// https://github.com/Remix-Design/RemixIcon/blob/master/License -export function BellIconSolid({ - style, - size, - strokeWidth = 1.5, -}: { - style?: StyleProp - size?: string | number - strokeWidth?: number -}) { - return ( - - - - - ) -} - export function CogIcon({ style, size, @@ -263,160 +87,6 @@ export function CogIcon({ ) } -export function CogIconSolid({ - style, - size, - strokeWidth = 1.5, -}: { - style?: StyleProp - size?: string | number - strokeWidth: number -}) { - return ( - - - - ) -} - -// Copyright (c) 2020 Refactoring UI Inc. -// https://github.com/tailwindlabs/heroicons/blob/master/LICENSE -export function MoonIcon({ - style, - size, - strokeWidth = 1.5, -}: { - style?: StyleProp - size?: string | number - strokeWidth?: number -}) { - return ( - - - - ) -} - -// Copyright (c) 2020 Refactoring UI Inc. -// https://github.com/tailwindlabs/heroicons/blob/master/LICENSE -export function SunIcon({ - style, - size, - strokeWidth = 1.5, -}: { - style?: StyleProp - size?: string | number - strokeWidth?: number -}) { - return ( - - - - ) -} - -// Copyright (c) 2020 Refactoring UI Inc. -// https://github.com/tailwindlabs/heroicons/blob/master/LICENSE -export function UserIcon({ - style, - size, - strokeWidth = 1.5, -}: { - style?: StyleProp - size?: string | number - strokeWidth?: number -}) { - return ( - - - - ) -} - -export function UserIconSolid({ - style, - size, - strokeWidth = 1.5, -}: { - style?: StyleProp - size?: string | number - strokeWidth?: number -}) { - return ( - - - - - - ) -} - // Copyright (c) 2020 Refactoring UI Inc. // https://github.com/tailwindlabs/heroicons/blob/master/LICENSE export function UserGroupIcon({ @@ -444,208 +114,6 @@ export function UserGroupIcon({ ) } -export function RepostIcon({ - style, - size = 24, - strokeWidth = 1.5, -}: { - style?: StyleProp - size?: string | number - strokeWidth: number -}) { - return ( - - - - ) -} - -// Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. -export function HeartIcon({ - style, - size = 24, - strokeWidth = 1.5, -}: { - style?: StyleProp - size?: string | number - strokeWidth: number -}) { - return ( - - - - ) -} - -// Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. -export function HeartIconSolid({ - style, - size = 24, -}: { - style?: StyleProp - size?: string | number -}) { - return ( - - - - ) -} - -export function UpIcon({ - style, - size, - strokeWidth = 1.3, -}: { - style?: StyleProp - size?: string | number - strokeWidth: number -}) { - return ( - - - - ) -} - -export function UpIconSolid({ - style, - size, -}: { - style?: StyleProp - size?: string | number -}) { - return ( - - - - ) -} - -export function DownIcon({ - style, - size, -}: { - style?: StyleProp - size?: string | number -}) { - return ( - - - - ) -} - -export function DownIconSolid({ - style, - size, -}: { - style?: StyleProp - size?: string | number -}) { - return ( - - - - ) -} - -// Copyright (c) 2020 Refactoring UI Inc. -// https://github.com/tailwindlabs/heroicons/blob/master/LICENSE -export function CommentBottomArrow({ - style, - size, - strokeWidth = 1.3, -}: { - style?: StyleProp - size?: string | number - strokeWidth?: number -}) { - let color = 'currentColor' - if ( - style && - typeof style === 'object' && - 'color' in style && - typeof style.color === 'string' - ) { - color = style.color - } - return ( - - - - ) -} - export function SquareIcon({ style, size, @@ -715,33 +183,6 @@ export function RectTallIcon({ ) } -export function ComposeIcon({ - style, - size, - strokeWidth = 1.5, -}: { - style?: StyleProp - size?: string | number - strokeWidth?: number -}) { - return ( - - - - ) -} - export function ComposeIcon2({ style, size, @@ -783,54 +224,6 @@ export function ComposeIcon2({ ) } -export function SquarePlusIcon({ - style, - size, - strokeWidth = 1.5, -}: { - style?: StyleProp - size?: string | number - strokeWidth?: number -}) { - return ( - - - - - - ) -} - export function InfoCircleIcon({ style, size, @@ -947,30 +340,3 @@ export function ShieldExclamation({ ) } - -export function ListIcon({ - style, - size, - strokeWidth = 1.5, -}: { - style?: StyleProp - size?: string | number - strokeWidth?: number -}) { - return ( - - - - ) -} diff --git a/src/lib/link-meta/bsky.ts b/src/lib/link-meta/bsky.ts index c1fbb34b3c..e3b4ea0c9c 100644 --- a/src/lib/link-meta/bsky.ts +++ b/src/lib/link-meta/bsky.ts @@ -1,11 +1,16 @@ -import {AppBskyFeedPost, BskyAgent} from '@atproto/api' +import {AppBskyFeedPost, AppBskyGraphStarterpack, BskyAgent} from '@atproto/api' + +import {useFetchDid} from '#/state/queries/handle' +import {useGetPost} from '#/state/queries/post' import * as apilib from 'lib/api/index' -import {LikelyType, LinkMeta} from './link-meta' +import { + createStarterPackUri, + parseStarterPackUri, +} from 'lib/strings/starter-pack' +import {ComposerOptsQuote} from 'state/shell/composer' // import {match as matchRoute} from 'view/routes' import {convertBskyAppUrlIfNeeded, makeRecordUri} from '../strings/url-helpers' -import {ComposerOptsQuote} from 'state/shell/composer' -import {useGetPost} from '#/state/queries/post' -import {useFetchDid} from '#/state/queries/handle' +import {LikelyType, LinkMeta} from './link-meta' // TODO // import {Home} from 'view/screens/Home' @@ -174,3 +179,39 @@ export async function getListAsEmbed( }, } } + +export async function getStarterPackAsEmbed( + agent: BskyAgent, + fetchDid: ReturnType, + url: string, +): Promise { + const parsed = parseStarterPackUri(url) + if (!parsed) { + throw new Error( + 'Unexepectedly called getStarterPackAsEmbed with a non-starterpack url', + ) + } + const did = await fetchDid(parsed.name) + const starterPack = createStarterPackUri({did, rkey: parsed.rkey}) + const res = await agent.app.bsky.graph.getStarterPack({starterPack}) + const record = res.data.starterPack.record + return { + isLoading: false, + uri: starterPack, + meta: { + url: starterPack, + likelyType: LikelyType.AtpData, + // Validation here should never fail + title: AppBskyGraphStarterpack.isRecord(record) + ? record.name + : 'Starter Pack', + }, + embed: { + $type: 'app.bsky.embed.record', + record: { + uri: res.data.starterPack.uri, + cid: res.data.starterPack.cid, + }, + }, + } +} diff --git a/src/lib/link-meta/link-meta.ts b/src/lib/link-meta/link-meta.ts index fa951432e8..6416df2b72 100644 --- a/src/lib/link-meta/link-meta.ts +++ b/src/lib/link-meta/link-meta.ts @@ -1,8 +1,10 @@ import {BskyAgent} from '@atproto/api' -import {isBskyAppUrl} from '../strings/url-helpers' -import {extractBskyMeta} from './bsky' + import {LINK_META_PROXY} from 'lib/constants' import {getGiphyMetaUri} from 'lib/strings/embed-player' +import {parseStarterPackUri} from 'lib/strings/starter-pack' +import {isBskyAppUrl} from '../strings/url-helpers' +import {extractBskyMeta} from './bsky' export enum LikelyType { HTML, @@ -28,7 +30,7 @@ export async function getLinkMeta( url: string, timeout = 15e3, ): Promise { - if (isBskyAppUrl(url)) { + if (isBskyAppUrl(url) && !parseStarterPackUri(url)) { return extractBskyMeta(agent, url) } diff --git a/src/lib/link-meta/resolve-short-link.ts b/src/lib/link-meta/resolve-short-link.ts new file mode 100644 index 0000000000..67d8a58603 --- /dev/null +++ b/src/lib/link-meta/resolve-short-link.ts @@ -0,0 +1,27 @@ +import {logger} from '#/logger' + +export async function resolveShortLink(shortLink: string) { + const controller = new AbortController() + const to = setTimeout(() => controller.abort(), 2e3) + + try { + const res = await fetch(shortLink, { + method: 'GET', + headers: { + Accept: 'application/json', + }, + signal: controller.signal, + }) + if (res.status !== 200) { + logger.error('Failed to resolve short link', {status: res.status}) + return shortLink + } + const json = (await res.json()) as {url: string} + return json.url + } catch (e: unknown) { + logger.error('Failed to resolve short link', {safeMessage: e}) + return shortLink + } finally { + clearTimeout(to) + } +} diff --git a/src/lib/media/manip.ts b/src/lib/media/manip.ts index 3e647004bb..3f01e98c5e 100644 --- a/src/lib/media/manip.ts +++ b/src/lib/media/manip.ts @@ -218,13 +218,7 @@ export async function safeDeleteAsync(path: string) { // Normalize is necessary for Android, otherwise it doesn't delete. const normalizedPath = normalizePath(path) try { - await Promise.allSettled([ - deleteAsync(normalizedPath, {idempotent: true}), - // HACK: Try this one too. Might exist due to api-polyfill hack. - deleteAsync(normalizedPath.replace(/\.jpe?g$/, '.bin'), { - idempotent: true, - }), - ]) + await deleteAsync(normalizedPath, {idempotent: true}) } catch (e) { console.error('Failed to delete file', e) } diff --git a/src/lib/media/manip.web.ts b/src/lib/media/manip.web.ts index 25315ebbd8..4761f2fe0d 100644 --- a/src/lib/media/manip.web.ts +++ b/src/lib/media/manip.web.ts @@ -159,3 +159,7 @@ async function downloadUrl(href: string, filename: string) { a.download = filename a.click() } + +export async function safeDeleteAsync() { + // no-op +} diff --git a/src/lib/media/picker.shared.ts b/src/lib/media/picker.shared.ts index 96e82e4c72..9146cd7787 100644 --- a/src/lib/media/picker.shared.ts +++ b/src/lib/media/picker.shared.ts @@ -3,8 +3,9 @@ import { launchImageLibraryAsync, MediaTypeOptions, } from 'expo-image-picker' -import {getDataUriSize} from './util' + import * as Toast from 'view/com/util/Toast' +import {getDataUriSize} from './util' export async function openPicker(opts?: ImagePickerOptions) { const response = await launchImageLibraryAsync({ @@ -12,17 +13,18 @@ export async function openPicker(opts?: ImagePickerOptions) { mediaTypes: MediaTypeOptions.Images, quality: 1, ...opts, + legacy: true, }) if (response.assets && response.assets.length > 4) { - Toast.show('You may only select up to 4 images') + Toast.show('You may only select up to 4 images', 'exclamation-circle') } return (response.assets ?? []) .slice(0, 4) .filter(asset => { if (asset.mimeType?.startsWith('image/')) return true - Toast.show('Only image files are supported') + Toast.show('Only image files are supported', 'exclamation-circle') return false }) .map(image => ({ diff --git a/src/lib/media/video/compress.ts b/src/lib/media/video/compress.ts new file mode 100644 index 0000000000..60e5e94a00 --- /dev/null +++ b/src/lib/media/video/compress.ts @@ -0,0 +1,30 @@ +import {getVideoMetaData, Video} from 'react-native-compressor' + +export type CompressedVideo = { + uri: string + size: number +} + +export async function compressVideo( + file: string, + opts?: { + getCancellationId?: (id: string) => void + onProgress?: (progress: number) => void + }, +): Promise { + const {onProgress, getCancellationId} = opts || {} + + const compressed = await Video.compress( + file, + { + getCancellationId, + compressionMethod: 'manual', + bitrate: 3_000_000, // 3mbps + maxSize: 1920, + }, + onProgress, + ) + + const info = await getVideoMetaData(compressed) + return {uri: compressed, size: info.size} +} diff --git a/src/lib/media/video/compress.web.ts b/src/lib/media/video/compress.web.ts new file mode 100644 index 0000000000..968f2b157a --- /dev/null +++ b/src/lib/media/video/compress.web.ts @@ -0,0 +1,28 @@ +import {VideoTooLargeError} from 'lib/media/video/errors' + +const MAX_VIDEO_SIZE = 1024 * 1024 * 100 // 100MB + +export type CompressedVideo = { + uri: string + size: number +} + +// doesn't actually compress, but throws if >100MB +export async function compressVideo( + file: string, + _callbacks?: { + onProgress: (progress: number) => void + }, +): Promise { + const blob = await fetch(file).then(res => res.blob()) + const video = URL.createObjectURL(blob) + + if (blob.size > MAX_VIDEO_SIZE) { + throw new VideoTooLargeError() + } + + return { + size: blob.size, + uri: video, + } +} diff --git a/src/lib/media/video/errors.ts b/src/lib/media/video/errors.ts new file mode 100644 index 0000000000..701a7e2355 --- /dev/null +++ b/src/lib/media/video/errors.ts @@ -0,0 +1,6 @@ +export class VideoTooLargeError extends Error { + constructor() { + super('Videos cannot be larger than 100MB') + this.name = 'VideoTooLargeError' + } +} diff --git a/src/lib/media/video/types.ts b/src/lib/media/video/types.ts new file mode 100644 index 0000000000..c458da96e0 --- /dev/null +++ b/src/lib/media/video/types.ts @@ -0,0 +1,36 @@ +/** + * TEMPORARY: THIS IS A TEMPORARY PLACEHOLDER. THAT MEANS IT IS TEMPORARY. I.E. WILL BE REMOVED. NOT TO USE IN PRODUCTION. + * @temporary + * PS: This is a temporary placeholder for the video types. It will be removed once the actual types are implemented. + * Not joking, this is temporary. + */ + +export interface JobStatus { + jobId: string + did: string + cid: string + state: JobState + progress?: number + errorHuman?: string + errorMachine?: string +} + +export enum JobState { + JOB_STATE_UNSPECIFIED = 'JOB_STATE_UNSPECIFIED', + JOB_STATE_CREATED = 'JOB_STATE_CREATED', + JOB_STATE_ENCODING = 'JOB_STATE_ENCODING', + JOB_STATE_ENCODED = 'JOB_STATE_ENCODED', + JOB_STATE_UPLOADING = 'JOB_STATE_UPLOADING', + JOB_STATE_UPLOADED = 'JOB_STATE_UPLOADED', + JOB_STATE_CDN_PROCESSING = 'JOB_STATE_CDN_PROCESSING', + JOB_STATE_CDN_PROCESSED = 'JOB_STATE_CDN_PROCESSED', + JOB_STATE_FAILED = 'JOB_STATE_FAILED', + JOB_STATE_COMPLETED = 'JOB_STATE_COMPLETED', +} + +export interface UploadVideoResponse { + job_id: string + did: string + cid: string + state: JobState +} diff --git a/src/lib/moderation/blocked-and-muted.ts b/src/lib/moderation/blocked-and-muted.ts new file mode 100644 index 0000000000..18e6ef3e34 --- /dev/null +++ b/src/lib/moderation/blocked-and-muted.ts @@ -0,0 +1,17 @@ +import {AppBskyActorDefs} from '@atproto/api' + +export function isBlockedOrBlocking( + profile: + | AppBskyActorDefs.ProfileViewBasic + | AppBskyActorDefs.ProfileViewDetailed, +) { + return profile.viewer?.blockedBy || profile.viewer?.blocking +} + +export function isMuted( + profile: + | AppBskyActorDefs.ProfileViewBasic + | AppBskyActorDefs.ProfileViewDetailed, +) { + return profile.viewer?.muted || profile.viewer?.mutedByList +} diff --git a/src/lib/moderation/create-sanitized-display-name.ts b/src/lib/moderation/create-sanitized-display-name.ts new file mode 100644 index 0000000000..5863503f5b --- /dev/null +++ b/src/lib/moderation/create-sanitized-display-name.ts @@ -0,0 +1,17 @@ +import {AppBskyActorDefs} from '@atproto/api' + +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' + +export function createSanitizedDisplayName( + profile: + | AppBskyActorDefs.ProfileViewBasic + | AppBskyActorDefs.ProfileViewDetailed, + noAt = false, +) { + if (profile.displayName != null && profile.displayName !== '') { + return sanitizeDisplayName(profile.displayName) + } else { + return sanitizeHandle(profile.handle, noAt ? '' : '@') + } +} diff --git a/src/lib/moderation/useModerationCauseDescription.ts b/src/lib/moderation/useModerationCauseDescription.ts index 57b50d7779..01ffbe5cf6 100644 --- a/src/lib/moderation/useModerationCauseDescription.ts +++ b/src/lib/moderation/useModerationCauseDescription.ts @@ -6,15 +6,15 @@ import { } from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {getDefinition, getLabelStrings} from './useLabelInfo' -import {useLabelDefinitions} from '#/state/preferences' -import {useGlobalLabelStrings} from './useGlobalLabelStrings' -import {Props as SVGIconProps} from '#/components/icons/common' -import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' -import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' -import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash' +import {useLabelDefinitions} from '#/state/preferences' import {CircleBanSign_Stroke2_Corner0_Rounded as CircleBanSign} from '#/components/icons/CircleBanSign' +import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' +import {Props as SVGIconProps} from '#/components/icons/common' +import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash' +import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' +import {useGlobalLabelStrings} from './useGlobalLabelStrings' +import {getDefinition, getLabelStrings} from './useLabelInfo' export interface ModerationCauseDescription { icon: React.ComponentType @@ -22,6 +22,8 @@ export interface ModerationCauseDescription { description: string source?: string sourceType?: ModerationCauseSource['type'] + sourceAvi?: string + sourceDid?: string } export function useModerationCauseDescription( @@ -124,7 +126,7 @@ export function useModerationCauseDescription( } } if (def.identifier === 'porn' || def.identifier === 'sexual') { - strings.name = 'Adult Content' + strings.name = _(msg`Adult Content`) } return { @@ -138,6 +140,8 @@ export function useModerationCauseDescription( description: strings.description, source, sourceType: cause.source.type, + sourceAvi: labeler?.creator.avatar, + sourceDid: cause.label.src, } } // should never happen diff --git a/src/lib/moderation/useReportOptions.ts b/src/lib/moderation/useReportOptions.ts index ff12534c2f..91656857e4 100644 --- a/src/lib/moderation/useReportOptions.ts +++ b/src/lib/moderation/useReportOptions.ts @@ -13,9 +13,10 @@ interface ReportOptions { account: ReportOption[] post: ReportOption[] list: ReportOption[] + starterpack: ReportOption[] feedgen: ReportOption[] other: ReportOption[] - message: ReportOption[] + convoMessage: ReportOption[] } export function useReportOptions(): ReportOptions { @@ -73,7 +74,7 @@ export function useReportOptions(): ReportOptions { }, ...common, ], - message: [ + convoMessage: [ { reason: ComAtprotoModerationDefs.REASONSPAM, title: _(msg`Spam`), @@ -94,6 +95,14 @@ export function useReportOptions(): ReportOptions { }, ...common, ], + starterpack: [ + { + reason: ComAtprotoModerationDefs.REASONVIOLATION, + title: _(msg`Name or Description Violates Community Standards`), + description: _(msg`Terms used violate community standards`), + }, + ...common, + ], feedgen: [ { reason: ComAtprotoModerationDefs.REASONVIOLATION, diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts index 52f984a599..88b9eee3a5 100644 --- a/src/lib/notifications/notifications.ts +++ b/src/lib/notifications/notifications.ts @@ -1,11 +1,13 @@ import React from 'react' import * as Notifications from 'expo-notifications' +import {getBadgeCountAsync, setBadgeCountAsync} from 'expo-notifications' import {BskyAgent} from '@atproto/api' import {logger} from '#/logger' import {SessionAccount, useAgent, useSession} from '#/state/session' -import {logEvent, useGate} from 'lib/statsig/statsig' -import {devicePlatform, isNative} from 'platform/detection' +import {logEvent} from 'lib/statsig/statsig' +import {devicePlatform, isAndroid, isNative} from 'platform/detection' +import BackgroundNotificationHandler from '../../../modules/expo-background-notification-handler' const SERVICE_DID = (serviceUrl?: string) => serviceUrl?.includes('staging') @@ -13,12 +15,12 @@ const SERVICE_DID = (serviceUrl?: string) => : 'did:web:api.bsky.app' async function registerPushToken( - getAgent: () => BskyAgent, + agent: BskyAgent, account: SessionAccount, token: Notifications.DevicePushToken, ) { try { - await getAgent().api.app.bsky.notification.registerPush({ + await agent.api.app.bsky.notification.registerPush({ serviceDid: SERVICE_DID(account.service), platform: devicePlatform, token: token.data, @@ -41,12 +43,12 @@ async function getPushToken(skipPermissionCheck = false) { const granted = skipPermissionCheck || (await Notifications.getPermissionsAsync()).granted if (granted) { - Notifications.getDevicePushTokenAsync() + return Notifications.getDevicePushTokenAsync() } } export function useNotificationsRegistration() { - const {getAgent} = useAgent() + const agent = useAgent() const {currentAccount} = useSession() React.useEffect(() => { @@ -54,58 +56,98 @@ export function useNotificationsRegistration() { return } - getPushToken() + // HACK - see https://github.com/bluesky-social/social-app/pull/4467 + // An apparent regression in expo-notifications causes `addPushTokenListener` to not fire on Android whenever the + // token changes by calling `getPushToken()`. This is a workaround to ensure we register the token once it is + // generated on Android. + if (isAndroid) { + ;(async () => { + const token = await getPushToken() + + // Token will be undefined if we don't have notifications permission + if (token) { + registerPushToken(agent, currentAccount, token) + } + })() + } else { + getPushToken() + } // According to the Expo docs, there is a chance that the token will change while the app is open in some rare // cases. This will fire `registerPushToken` whenever that happens. const subscription = Notifications.addPushTokenListener(async newToken => { - registerPushToken(getAgent, currentAccount, newToken) + registerPushToken(agent, currentAccount, newToken) }) return () => { subscription.remove() } - }, [currentAccount, getAgent]) + }, [currentAccount, agent]) } export function useRequestNotificationsPermission() { - const gate = useGate() + const {currentAccount} = useSession() + const agent = useAgent() - return React.useCallback( - async (context: 'StartOnboarding' | 'AfterOnboarding' | 'Login') => { - const permissions = await Notifications.getPermissionsAsync() + return async ( + context: 'StartOnboarding' | 'AfterOnboarding' | 'Login' | 'Home', + ) => { + const permissions = await Notifications.getPermissionsAsync() - if ( - !isNative || - permissions?.status === 'granted' || - (permissions?.status === 'denied' && !permissions?.canAskAgain) - ) { - return - } - if ( - context === 'StartOnboarding' && - gate('request_notifications_permission_after_onboarding') - ) { - return - } - if ( - context === 'AfterOnboarding' && - !gate('request_notifications_permission_after_onboarding') - ) { - return - } + if ( + !isNative || + permissions?.status === 'granted' || + (permissions?.status === 'denied' && !permissions.canAskAgain) + ) { + return + } + if (context === 'AfterOnboarding') { + return + } + if (context === 'Home' && !currentAccount) { + return + } - const res = await Notifications.requestPermissionsAsync() - logEvent('notifications:request', { - context: context, - status: res.status, - }) + const res = await Notifications.requestPermissionsAsync() + logEvent('notifications:request', { + context: context, + status: res.status, + }) - if (res.granted) { - // This will fire a pushTokenEvent, which will handle registration of the token - getPushToken(true) + if (res.granted) { + // This will fire a pushTokenEvent, which will handle registration of the token + const token = await getPushToken(true) + + // Same hack as above. We cannot rely on the `addPushTokenListener` to fire on Android due to an Expo bug, so we + // will manually register it here. Note that this will occur only: + // 1. right after the user signs in, leading to no `currentAccount` account being available - this will be instead + // picked up from the useEffect above on `currentAccount` change + // 2. right after onboarding. In this case, we _need_ this registration, since `currentAccount` will not change + // and we need to ensure the token is registered right after permission is granted. `currentAccount` will already + // be available in this case, so the registration will succeed. + // We should remove this once expo-notifications (and possibly FCMv1) is fixed and the `addPushTokenListener` is + // working again. See https://github.com/expo/expo/issues/28656 + if (isAndroid && currentAccount && token) { + registerPushToken(agent, currentAccount, token) } - }, - [gate], - ) + } + } +} + +export async function decrementBadgeCount(by: number) { + if (!isNative) return + + let count = await getBadgeCountAsync() + count -= by + if (count < 0) { + count = 0 + } + + await BackgroundNotificationHandler.setBadgeCountAsync(count) + await setBadgeCountAsync(count) +} + +export async function resetBadgeCount() { + await BackgroundNotificationHandler.setBadgeCountAsync(0) + await setBadgeCountAsync(0) } diff --git a/src/lib/react-query.tsx b/src/lib/react-query.tsx index be507216aa..5abfccd7f6 100644 --- a/src/lib/react-query.tsx +++ b/src/lib/react-query.tsx @@ -2,18 +2,83 @@ import React, {useRef, useState} from 'react' import {AppState, AppStateStatus} from 'react-native' import AsyncStorage from '@react-native-async-storage/async-storage' import {createAsyncStoragePersister} from '@tanstack/query-async-storage-persister' -import {focusManager, QueryClient} from '@tanstack/react-query' +import {focusManager, onlineManager, QueryClient} from '@tanstack/react-query' import { PersistQueryClientProvider, PersistQueryClientProviderProps, } from '@tanstack/react-query-persist-client' import {isNative} from '#/platform/detection' +import {listenNetworkConfirmed, listenNetworkLost} from '#/state/events' // any query keys in this array will be persisted to AsyncStorage export const labelersDetailedInfoQueryKeyRoot = 'labelers-detailed-info' const STORED_CACHE_QUERY_KEY_ROOTS = [labelersDetailedInfoQueryKeyRoot] +async function checkIsOnline(): Promise { + try { + const controller = new AbortController() + setTimeout(() => { + controller.abort() + }, 15e3) + const res = await fetch('https://public.api.bsky.app/xrpc/_health', { + cache: 'no-store', + signal: controller.signal, + }) + const json = await res.json() + if (json.version) { + return true + } else { + return false + } + } catch (e) { + return false + } +} + +let receivedNetworkLost = false +let receivedNetworkConfirmed = false +let isNetworkStateUnclear = false + +listenNetworkLost(() => { + receivedNetworkLost = true + onlineManager.setOnline(false) +}) + +listenNetworkConfirmed(() => { + receivedNetworkConfirmed = true + onlineManager.setOnline(true) +}) + +let checkPromise: Promise | undefined +function checkIsOnlineIfNeeded() { + if (checkPromise) { + return + } + receivedNetworkLost = false + receivedNetworkConfirmed = false + checkPromise = checkIsOnline().then(nextIsOnline => { + checkPromise = undefined + if (nextIsOnline && receivedNetworkLost) { + isNetworkStateUnclear = true + } + if (!nextIsOnline && receivedNetworkConfirmed) { + isNetworkStateUnclear = true + } + if (!isNetworkStateUnclear) { + onlineManager.setOnline(nextIsOnline) + } + }) +} + +setInterval(() => { + if (AppState.currentState === 'active') { + if (!onlineManager.isOnline() || isNetworkStateUnclear) { + checkIsOnlineIfNeeded() + } + } +}, 2000) + focusManager.setEventListener(onFocus => { if (isNative) { const subscription = AppState.addEventListener( diff --git a/src/lib/routes/helpers.ts b/src/lib/routes/helpers.ts index 0da8850433..1297df8d2a 100644 --- a/src/lib/routes/helpers.ts +++ b/src/lib/routes/helpers.ts @@ -1,5 +1,6 @@ import {NavigationProp} from '@react-navigation/native' -import {State, RouteParams} from './types' + +import {RouteParams, State} from './types' export function getRootNavigation( nav: NavigationProp, @@ -10,7 +11,11 @@ export function getRootNavigation( return nav } -export function getCurrentRoute(state: State) { +export function getCurrentRoute(state?: State) { + if (!state) { + return {name: 'Home'} + } + let node = state.routes[state.index || 0] while (node.state?.routes && typeof node.state?.index === 'number') { node = node.state?.routes[node.state?.index] @@ -30,7 +35,7 @@ export function isStateAtTabRoot(state: State | undefined) { return ( isTab(currentRoute.name, 'Home') || isTab(currentRoute.name, 'Search') || - isTab(currentRoute.name, 'Feeds') || + isTab(currentRoute.name, 'Messages') || isTab(currentRoute.name, 'Notifications') || isTab(currentRoute.name, 'MyProfile') ) diff --git a/src/lib/routes/links.ts b/src/lib/routes/links.ts index 9dfdab909b..56b716677b 100644 --- a/src/lib/routes/links.ts +++ b/src/lib/routes/links.ts @@ -1,3 +1,5 @@ +import {AppBskyGraphDefs, AtUri} from '@atproto/api' + import {isInvalidHandle} from 'lib/strings/handles' export function makeProfileLink( @@ -35,3 +37,18 @@ export function makeSearchLink(props: {query: string; from?: 'me' | string}) { props.query + (props.from ? ` from:${props.from}` : ''), )}` } + +export function makeStarterPackLink( + starterPackOrName: + | AppBskyGraphDefs.StarterPackViewBasic + | AppBskyGraphDefs.StarterPackView + | string, + rkey?: string, +) { + if (typeof starterPackOrName === 'string') { + return `https://bsky.app/start/${starterPackOrName}/${rkey}` + } else { + const uriRkey = new AtUri(starterPackOrName.uri).rkey + return `https://bsky.app/start/${starterPackOrName.creator.handle}/${uriRkey}` + } +} diff --git a/src/lib/routes/types.ts b/src/lib/routes/types.ts index 31133cb1bd..77e7266a4f 100644 --- a/src/lib/routes/types.ts +++ b/src/lib/routes/types.ts @@ -15,6 +15,7 @@ export type CommonNavigatorParams = { Profile: {name: string; hideBackButton?: boolean} ProfileFollowers: {name: string} ProfileFollows: {name: string} + ProfileKnownFollowers: {name: string} ProfileList: {name: string; rkey: string} PostThread: {name: string; rkey: string} PostLikedBy: {name: string; rkey: string} @@ -24,6 +25,7 @@ export type CommonNavigatorParams = { ProfileLabelerLikedBy: {name: string} Debug: undefined DebugMod: undefined + SharedPreferencesTester: undefined Log: undefined Support: undefined PrivacyPolicy: undefined @@ -36,16 +38,24 @@ export type CommonNavigatorParams = { PreferencesThreads: undefined PreferencesExternalEmbeds: undefined AccessibilitySettings: undefined + AppearanceSettings: undefined Search: {q?: string} Hashtag: {tag: string; author?: string} - MessagesConversation: {conversation: string} + MessagesConversation: {conversation: string; embed?: string} MessagesSettings: undefined + NotificationsSettings: undefined + Feeds: undefined + Start: {name: string; rkey: string} + StarterPack: {name: string; rkey: string; new?: boolean} + StarterPackShort: {code: string} + StarterPackWizard: undefined + StarterPackEdit: {rkey?: string} + VideoDownload: undefined } export type BottomTabNavigatorParams = CommonNavigatorParams & { HomeTab: undefined SearchTab: undefined - FeedsTab: undefined NotificationsTab: undefined MyProfileTab: undefined MessagesTab: undefined @@ -59,12 +69,8 @@ export type SearchTabNavigatorParams = CommonNavigatorParams & { Search: {q?: string} } -export type FeedsTabNavigatorParams = CommonNavigatorParams & { - Feeds: undefined -} - export type NotificationsTabNavigatorParams = CommonNavigatorParams & { - Notifications: undefined + Notifications: {show?: 'all'} } export type MyProfileTabNavigatorParams = CommonNavigatorParams & { @@ -72,16 +78,16 @@ export type MyProfileTabNavigatorParams = CommonNavigatorParams & { } export type MessagesTabNavigatorParams = CommonNavigatorParams & { - Messages: {pushToConversation?: string} + Messages: {pushToConversation?: string; animation?: 'push' | 'pop'} } export type FlatNavigatorParams = CommonNavigatorParams & { Home: undefined Search: {q?: string} Feeds: undefined - Notifications: undefined + Notifications: {show?: 'all'} Hashtag: {tag: string; author?: string} - Messages: {pushToConversation?: string} + Messages: {pushToConversation?: string; animation?: 'push' | 'pop'} } export type AllNavigatorParams = CommonNavigatorParams & { @@ -89,14 +95,18 @@ export type AllNavigatorParams = CommonNavigatorParams & { Home: undefined SearchTab: undefined Search: {q?: string} - FeedsTab: undefined Feeds: undefined NotificationsTab: undefined - Notifications: undefined + Notifications: {show?: 'all'} MyProfileTab: undefined Hashtag: {tag: string; author?: string} MessagesTab: undefined - Messages: undefined + Messages: {animation?: 'push' | 'pop'} + Start: {name: string; rkey: string} + StarterPack: {name: string; rkey: string; new?: boolean} + StarterPackShort: {code: string} + StarterPackWizard: undefined + StarterPackEdit: {rkey?: string} } // NOTE diff --git a/src/lib/sharing.ts b/src/lib/sharing.ts index b59e3f9946..a77b5cccaa 100644 --- a/src/lib/sharing.ts +++ b/src/lib/sharing.ts @@ -20,6 +20,6 @@ export async function shareUrl(url: string) { // React Native Share is not supported by web. Web Share API // has increasing but not full support, so default to clipboard setStringAsync(url) - Toast.show('Copied to clipboard') + Toast.show('Copied to clipboard', 'clipboard-check') } } diff --git a/src/lib/statsig/events.ts b/src/lib/statsig/events.ts index 660a37d2a7..9a427ad40f 100644 --- a/src/lib/statsig/events.ts +++ b/src/lib/statsig/events.ts @@ -13,25 +13,36 @@ export type LogEvents = { withPassword: boolean } 'account:loggedOut': { - logContext: 'SwitchAccount' | 'Settings' | 'Deactivated' + logContext: 'SwitchAccount' | 'Settings' | 'SignupQueued' | 'Deactivated' } 'notifications:openApp': {} 'notifications:request': { - context: 'StartOnboarding' | 'AfterOnboarding' | 'Login' + context: 'StartOnboarding' | 'AfterOnboarding' | 'Login' | 'Home' status: 'granted' | 'denied' | 'undetermined' } - 'state:background': { + 'state:background:sampled': { secondsActive: number } - 'state:foreground': {} - 'router:navigate': {} + 'state:foreground:sampled': {} + 'router:navigate:sampled': {} + 'deepLink:referrerReceived': { + to: string + referrer: string + hostname: string + } // Screen events 'splash:signInPressed': {} 'splash:createAccountPressed': {} 'signup:nextPressed': { activeStep: number + phoneVerificationRequired?: boolean } + 'signup:backPressed': { + activeStep: number + } + 'signup:captchaSuccess': {} + 'signup:captchaFailure': {} 'onboarding:interests:nextPressed': { selectedInterests: string[] selectedInterestsLength: number @@ -53,26 +64,54 @@ export type LogEvents = { } 'onboarding:moderation:nextPressed': {} 'onboarding:profile:nextPressed': {} - 'onboarding:finished:nextPressed': {} + 'onboarding:finished:nextPressed': { + usedStarterPack: boolean + starterPackName?: string + starterPackCreator?: string + starterPackUri?: string + profilesFollowed: number + feedsPinned: number + } 'onboarding:finished:avatarResult': { avatarResult: 'default' | 'created' | 'uploaded' } - 'home:feedDisplayed': { + 'home:feedDisplayed:sampled': { feedUrl: string feedType: string index: number - reason: 'focus' | 'tabbar-click' | 'pager-swipe' | 'desktop-sidebar-click' + reason: + | 'focus' + | 'tabbar-click' + | 'pager-swipe' + | 'desktop-sidebar-click' + | 'starter-pack-initial-feed' } - 'feed:endReached': { + 'feed:endReached:sampled': { feedUrl: string feedType: string itemCount: number } - 'feed:refresh': { + 'feed:refresh:sampled': { feedUrl: string feedType: string reason: 'pull-to-refresh' | 'soft-reset' | 'load-latest' } + 'discover:showMore': { + feedContext: string + } + 'discover:showLess': { + feedContext: string + } + 'discover:clickthrough:sampled': { + count: number + } + 'discover:engaged:sampled': { + count: number + } + 'discover:seen:sampled': { + count: number + } + 'composer:gif:open': {} 'composer:gif:select': {} @@ -103,6 +142,8 @@ export type LogEvents = { 'post:unrepost': { logContext: 'FeedItem' | 'PostThreadItem' | 'Post' } + 'post:mute': {} + 'post:unmute': {} 'profile:follow': { didBecomeMutual: boolean | undefined followeeClout: number | undefined @@ -115,6 +156,10 @@ export type LogEvents = { | 'ProfileHeaderSuggestedFollows' | 'ProfileMenu' | 'ProfileHoverCard' + | 'AvatarButton' + | 'StarterPackProfilesList' + | 'FeedInterstitial' + | 'ProfileHeaderSuggestedFollows' } 'profile:unfollow': { logContext: @@ -125,7 +170,56 @@ export type LogEvents = { | 'ProfileHeaderSuggestedFollows' | 'ProfileMenu' | 'ProfileHoverCard' + | 'Chat' + | 'AvatarButton' + | 'StarterPackProfilesList' + | 'FeedInterstitial' + | 'ProfileHeaderSuggestedFollows' } + 'chat:create': { + logContext: 'ProfileHeader' | 'NewChatDialog' | 'SendViaChatDialog' + } + 'chat:open': { + logContext: + | 'ProfileHeader' + | 'NewChatDialog' + | 'ChatsList' + | 'SendViaChatDialog' + } + 'starterPack:share': { + starterPack: string + shareType: 'link' | 'qrcode' + qrShareType?: 'save' | 'copy' | 'share' + } + 'starterPack:followAll': { + logContext: 'StarterPackProfilesList' | 'Onboarding' + starterPack: string + count: number + } + 'starterPack:delete': {} + 'starterPack:create': { + setName: boolean + setDescription: boolean + profilesCount: number + feedsCount: number + } + 'starterPack:ctaPress': { + starterPack: string + } + 'starterPack:opened': { + starterPack: string + } + + 'feed:interstitial:profileCard:press': {} + 'feed:interstitial:feedCard:press': {} + + 'profile:header:suggestedFollowsCard:press': {} + + 'debug:followingPrefs': { + followingShowRepliesFromPref: 'all' | 'following' | 'off' + followingRepliesMinLikePref: number + } + 'debug:followingDisplayed': {} 'test:all:always': {} 'test:all:sometimes': {} diff --git a/src/lib/statsig/gates.ts b/src/lib/statsig/gates.ts index 315706ad0c..492d09e95f 100644 --- a/src/lib/statsig/gates.ts +++ b/src/lib/statsig/gates.ts @@ -1,12 +1,9 @@ export type Gate = // Keep this alphabetic please. - | 'autoexpand_suggestions_on_profile_follow_v2' - | 'disable_min_shell_on_foregrounding_v3' - | 'disable_poll_on_discover_v2' - | 'dms' - | 'reduced_onboarding_and_home_algo' - | 'request_notifications_permission_after_onboarding' + | 'debug_show_feedcontext' + | 'new_user_guided_tour' + | 'onboarding_minimum_interests' | 'show_follow_back_label_v2' - | 'start_session_with_following_v2' - | 'test_gate_1' - | 'test_gate_2' + | 'suggested_feeds_interstitial' + | 'video_debug' + | 'videos' diff --git a/src/lib/statsig/statsig.tsx b/src/lib/statsig/statsig.tsx index 3b649f88d8..81707d2bf5 100644 --- a/src/lib/statsig/statsig.tsx +++ b/src/lib/statsig/statsig.tsx @@ -7,13 +7,15 @@ import {Statsig, StatsigProvider} from 'statsig-react-native-expo' import {logger} from '#/logger' import {isWeb} from '#/platform/detection' import * as persisted from '#/state/persisted' -import {IS_TESTFLIGHT} from 'lib/app-info' +import {BUNDLE_DATE, BUNDLE_IDENTIFIER, IS_TESTFLIGHT} from 'lib/app-info' import {useSession} from '../../state/session' import {timeout} from '../async/timeout' import {useNonReactiveCallback} from '../hooks/useNonReactiveCallback' import {LogEvents} from './events' import {Gate} from './gates' +const SDK_KEY = 'client-SXJakO39w9vIhl3D44u8UupyzFl4oZ2qPIkjwcvuPsV' + type StatsigUser = { userID: string | undefined // TODO: Remove when enough users have custom.platform: @@ -22,6 +24,8 @@ type StatsigUser = { // This is the place where we can add our own stuff. // Fields here have to be non-optional to be visible in the UI. platform: 'ios' | 'android' | 'web' + bundleIdentifier: string + bundleDate: number refSrc: string refUrl: string appLanguage: string @@ -85,11 +89,37 @@ export function toClout(n: number | null | undefined): number | undefined { } } +const DOWNSAMPLED_EVENTS: Set = new Set([ + 'router:navigate:sampled', + 'state:background:sampled', + 'state:foreground:sampled', + 'home:feedDisplayed:sampled', + 'feed:endReached:sampled', + 'feed:refresh:sampled', + 'discover:clickthrough:sampled', + 'discover:engaged:sampled', + 'discover:seen:sampled', +]) +const isDownsampledSession = Math.random() < 0.9 // 90% likely + export function logEvent( eventName: E & string, rawMetadata: LogEvents[E] & FlatJSONRecord, ) { try { + if ( + process.env.NODE_ENV === 'development' && + eventName.endsWith(':sampled') && + !DOWNSAMPLED_EVENTS.has(eventName) + ) { + logger.error( + 'Did you forget to add ' + eventName + ' to DOWNSAMPLED_EVENTS?', + ) + } + + if (isDownsampledSession && DOWNSAMPLED_EVENTS.has(eventName)) { + return + } const fullMetadata = { ...rawMetadata, } as Record // Statsig typings are unnecessarily strict here. @@ -108,20 +138,29 @@ export function logEvent( // Our own cache ensures consistent evaluation within a single session. const GateCache = React.createContext | null>(null) -export function useGate(): (gateName: Gate) => boolean { +type GateOptions = { + dangerouslyDisableExposureLogging?: boolean +} + +export function useGate(): (gateName: Gate, options?: GateOptions) => boolean { const cache = React.useContext(GateCache) if (!cache) { throw Error('useGate() cannot be called outside StatsigProvider.') } const gate = React.useCallback( - (gateName: Gate): boolean => { + (gateName: Gate, options: GateOptions = {}): boolean => { const cachedValue = cache.get(gateName) if (cachedValue !== undefined) { return cachedValue } - const value = Statsig.initializeCalled() - ? Statsig.checkGate(gateName) - : false + let value = false + if (Statsig.initializeCalled()) { + if (options.dangerouslyDisableExposureLogging) { + value = Statsig.checkGateWithExposureLoggingDisabled(gateName) + } else { + value = Statsig.checkGate(gateName) + } + } cache.set(gateName, value) return value }, @@ -165,6 +204,8 @@ function toStatsigUser(did: string | undefined): StatsigUser { refSrc, refUrl, platform: Platform.OS as 'ios' | 'android' | 'web', + bundleIdentifier: BUNDLE_IDENTIFIER, + bundleDate: BUNDLE_DATE, appLanguage: languagePrefs.appLanguage, contentLanguages: languagePrefs.contentLanguages, }, @@ -180,21 +221,21 @@ AppState.addEventListener('change', (state: AppStateStatus) => { lastState = state if (state === 'active') { lastActive = performance.now() - logEvent('state:foreground', {}) + logEvent('state:foreground:sampled', {}) } else { let secondsActive = 0 if (lastActive != null) { secondsActive = Math.round((performance.now() - lastActive) / 1e3) } lastActive = null - logEvent('state:background', { + logEvent('state:background:sampled', { secondsActive, }) } }) export async function tryFetchGates( - did: string, + did: string | undefined, strategy: 'prefer-low-latency' | 'prefer-fresh-gates', ) { try { @@ -218,6 +259,10 @@ export async function tryFetchGates( } } +export function initialize() { + return Statsig.initialize(SDK_KEY, null, createStatsigOptions([])) +} + export function Provider({children}: {children: React.ReactNode}) { const {currentAccount, accounts} = useSession() const did = currentAccount?.did @@ -263,7 +308,7 @@ export function Provider({children}: {children: React.ReactNode}) { = { youtube: 'YouTube', @@ -52,6 +56,7 @@ export const externalEmbedLabels: Record = { spotify: 'Spotify', appleMusic: 'Apple Music', soundcloud: 'SoundCloud', + flickr: 'Flickr', } export interface EmbedPlayerParams { @@ -98,16 +103,21 @@ export function parseEmbedPlayerFromUrl( urlp.hostname === 'm.youtube.com' || urlp.hostname === 'music.youtube.com' ) { - const [_, page, shortVideoId] = urlp.pathname.split('/') + const [_, page, shortOrLiveVideoId] = urlp.pathname.split('/') + + const isShorts = page === 'shorts' + const isLive = page === 'live' const videoId = - page === 'shorts' ? shortVideoId : (urlp.searchParams.get('v') as string) + isShorts || isLive + ? shortOrLiveVideoId + : (urlp.searchParams.get('v') as string) const seek = encodeURIComponent(urlp.searchParams.get('t') ?? 0) if (videoId) { return { - type: page === 'shorts' ? 'youtube_short' : 'youtube_video', - source: page === 'shorts' ? 'youtubeShorts' : 'youtube', - hideDetails: page === 'shorts' ? true : undefined, + type: isShorts ? 'youtube_short' : 'youtube_video', + source: isShorts ? 'youtubeShorts' : 'youtube', + hideDetails: isShorts ? true : undefined, playerUri: `${IFRAME_HOST}/iframe/youtube.html?videoId=${videoId}&start=${seek}`, } } @@ -338,45 +348,91 @@ export function parseEmbedPlayerFromUrl( } } - if (urlp.hostname === 'media.tenor.com') { - let [_, id, filename] = urlp.pathname.split('/') + const tenorGif = parseTenorGif(urlp) + if (tenorGif.success) { + const {playerUri, dimensions} = tenorGif - const h = urlp.searchParams.get('hh') - const w = urlp.searchParams.get('ww') - let dimensions - if (h && w) { - dimensions = { - height: Number(h), - width: Number(w), + return { + type: 'tenor_gif', + source: 'tenor', + isGif: true, + hideDetails: true, + playerUri, + dimensions, + } + } + + // this is a standard flickr path! we can use the embedder for albums and groups, so validate the path + if (urlp.hostname === 'www.flickr.com' || urlp.hostname === 'flickr.com') { + let i = urlp.pathname.length - 1 + while (i > 0 && urlp.pathname.charAt(i) === '/') { + --i + } + + const path_components = urlp.pathname.slice(1, i + 1).split('/') + if (path_components.length === 4) { + // discard username - it's not relevant + const [photos, _, albums, id] = path_components + if (photos === 'photos' && albums === 'albums') { + // this at least has the shape of a valid photo-album URL! + return { + type: 'flickr_album', + source: 'flickr', + playerUri: `https://embedr.flickr.com/photosets/${id}`, + } } } - if (id && filename && dimensions && id.includes('AAAAC')) { - if (Platform.OS === 'web') { - const isSafari = /^((?!chrome|android).)*safari/i.test( - navigator.userAgent, - ) - - if (isSafari) { - id = id.replace('AAAAC', 'AAAP1') - filename = filename.replace('.gif', '.mp4') - } else { - id = id.replace('AAAAC', 'AAAP3') - filename = filename.replace('.gif', '.webm') + if (path_components.length === 3) { + const [groups, id, pool] = path_components + if (groups === 'groups' && pool === 'pool') { + return { + type: 'flickr_album', + source: 'flickr', + playerUri: `https://embedr.flickr.com/groups/${id}`, } - } else { - id = id.replace('AAAAC', 'AAAAM') } + } + // not an album or a group pool, don't know what to do with this! + return undefined + } - return { - type: 'tenor_gif', - source: 'tenor', - isGif: true, - hideDetails: true, - playerUri: `https://t.gifs.bsky.app/${id}/${filename}`, - dimensions, + // link shortened flickr path + if (urlp.hostname === 'flic.kr') { + const b58alph = '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ' + let [_, type, idBase58Enc] = urlp.pathname.split('/') + let id = 0n + for (const char of idBase58Enc) { + const nextIdx = b58alph.indexOf(char) + if (nextIdx >= 0) { + id = id * 58n + BigInt(nextIdx) + } else { + // not b58 encoded, ergo not a valid link to embed + return undefined } } + + switch (type) { + case 'go': + const formattedGroupId = `${id}` + return { + type: 'flickr_album', + source: 'flickr', + playerUri: `https://embedr.flickr.com/groups/${formattedGroupId.slice( + 0, + -2, + )}@N${formattedGroupId.slice(-2)}`, + } + case 's': + return { + type: 'flickr_album', + source: 'flickr', + playerUri: `https://embedr.flickr.com/photosets/${id}`, + } + default: + // we don't know what this is so we can't embed it + return undefined + } } } @@ -443,3 +499,55 @@ export function getGiphyMetaUri(url: URL) { } } } + +export function parseTenorGif(urlp: URL): + | {success: false} + | { + success: true + playerUri: string + dimensions: {height: number; width: number} + } { + if (urlp.hostname !== 'media.tenor.com') { + return {success: false} + } + + let [_, id, filename] = urlp.pathname.split('/') + + if (!id || !filename) { + return {success: false} + } + + if (!id.includes('AAAAC')) { + return {success: false} + } + + const h = urlp.searchParams.get('hh') + const w = urlp.searchParams.get('ww') + + if (!h || !w) { + return {success: false} + } + + const dimensions = { + height: Number(h), + width: Number(w), + } + + if (isWeb) { + if (isSafari) { + id = id.replace('AAAAC', 'AAAP1') + filename = filename.replace('.gif', '.mp4') + } else { + id = id.replace('AAAAC', 'AAAP3') + filename = filename.replace('.gif', '.webm') + } + } else { + id = id.replace('AAAAC', 'AAAAM') + } + + return { + success: true, + playerUri: `https://t.gifs.bsky.app/${id}/${filename}`, + dimensions, + } +} diff --git a/src/lib/strings/errors.ts b/src/lib/strings/errors.ts index 0c11a6706c..899d8ebce4 100644 --- a/src/lib/strings/errors.ts +++ b/src/lib/strings/errors.ts @@ -11,6 +11,9 @@ export function cleanError(str: any): string { if (str.includes('Upstream Failure')) { return 'The server appears to be experiencing issues. Please try again in a few moments.' } + if (str.includes('Bad token scope')) { + return 'This feature is not available while using an App Password. Please sign in with your main password.' + } if (str.startsWith('Error: ')) { return str.slice('Error: '.length) } diff --git a/src/lib/strings/handles.ts b/src/lib/strings/handles.ts index bc07b32ec6..7955e1b2e4 100644 --- a/src/lib/strings/handles.ts +++ b/src/lib/strings/handles.ts @@ -1,5 +1,7 @@ // Regex from the go implementation // https://github.com/bluesky-social/indigo/blob/main/atproto/syntax/handle.go#L10 +import {forceLTR} from 'lib/strings/bidi' + const VALIDATE_REGEX = /^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$/ @@ -22,7 +24,9 @@ export function isInvalidHandle(handle: string): boolean { } export function sanitizeHandle(handle: string, prefix = ''): string { - return isInvalidHandle(handle) ? '⚠Invalid Handle' : `${prefix}${handle}` + return isInvalidHandle(handle) + ? '⚠Invalid Handle' + : forceLTR(`${prefix}${handle}`) } export interface IsValidHandle { diff --git a/src/lib/strings/rich-text-manip.ts b/src/lib/strings/rich-text-manip.ts index 508e0772e0..2e84656f26 100644 --- a/src/lib/strings/rich-text-manip.ts +++ b/src/lib/strings/rich-text-manip.ts @@ -1,4 +1,4 @@ -import {RichText, UnicodeString} from '@atproto/api' +import {AppBskyRichtextFacet, RichText, UnicodeString} from '@atproto/api' import {toShortUrl} from './url-helpers' @@ -10,9 +10,7 @@ export function shortenLinks(rt: RichText): RichText { // enumerate the link facets if (rt.facets) { for (const facet of rt.facets) { - const isLink = !!facet.features.find( - f => f.$type === 'app.bsky.richtext.facet#link', - ) + const isLink = !!facet.features.find(AppBskyRichtextFacet.isLink) if (!isLink) { continue } @@ -33,3 +31,21 @@ export function shortenLinks(rt: RichText): RichText { } return rt } + +// filter out any mention facets that didn't map to a user +export function stripInvalidMentions(rt: RichText): RichText { + if (!rt.facets?.length) { + return rt + } + rt = rt.clone() + if (rt.facets) { + rt.facets = rt.facets?.filter(facet => { + const mention = facet.features.find(AppBskyRichtextFacet.isMention) + if (mention && !mention.did) { + return false + } + return true + }) + } + return rt +} diff --git a/src/lib/strings/starter-pack.ts b/src/lib/strings/starter-pack.ts new file mode 100644 index 0000000000..ca34100155 --- /dev/null +++ b/src/lib/strings/starter-pack.ts @@ -0,0 +1,105 @@ +import {AppBskyGraphDefs, AtUri} from '@atproto/api' + +export function createStarterPackLinkFromAndroidReferrer( + referrerQueryString: string, +): string | null { + try { + // The referrer string is just some URL parameters, so lets add them to a fake URL + const url = new URL('http://throwaway.com/?' + referrerQueryString) + const utmContent = url.searchParams.get('utm_content') + const utmSource = url.searchParams.get('utm_source') + + if (!utmContent) return null + if (utmSource !== 'bluesky') return null + + // This should be a string like `starterpack_haileyok.com_rkey` + const contentParts = utmContent.split('_') + + if (contentParts[0] !== 'starterpack') return null + if (contentParts.length !== 3) return null + + return `at://${contentParts[1]}/app.bsky.graph.starterpack/${contentParts[2]}` + } catch (e) { + return null + } +} + +export function parseStarterPackUri(uri?: string): { + name: string + rkey: string +} | null { + if (!uri) return null + + try { + if (uri.startsWith('at://')) { + const atUri = new AtUri(uri) + if (atUri.collection !== 'app.bsky.graph.starterpack') return null + if (atUri.rkey) { + return { + name: atUri.hostname, + rkey: atUri.rkey, + } + } + return null + } else { + const url = new URL(uri) + const parts = url.pathname.split('/') + const [_, path, name, rkey] = parts + + if (parts.length !== 4) return null + if (path !== 'starter-pack' && path !== 'start') return null + if (!name || !rkey) return null + return { + name, + rkey, + } + } + } catch (e) { + return null + } +} + +export function createStarterPackGooglePlayUri( + name: string, + rkey: string, +): string | null { + if (!name || !rkey) return null + return `https://play.google.com/store/apps/details?id=xyz.blueskyweb.app&referrer=utm_source%3Dbluesky%26utm_medium%3Dstarterpack%26utm_content%3Dstarterpack_${name}_${rkey}` +} + +export function httpStarterPackUriToAtUri(httpUri?: string): string | null { + if (!httpUri) return null + + const parsed = parseStarterPackUri(httpUri) + if (!parsed) return null + + if (httpUri.startsWith('at://')) return httpUri + + return `at://${parsed.name}/app.bsky.graph.starterpack/${parsed.rkey}` +} + +export function getStarterPackOgCard( + didOrStarterPack: AppBskyGraphDefs.StarterPackView | string, + rkey?: string, +) { + if (typeof didOrStarterPack === 'string') { + return `https://ogcard.cdn.bsky.app/start/${didOrStarterPack}/${rkey}` + } else { + const rkey = new AtUri(didOrStarterPack.uri).rkey + return `https://ogcard.cdn.bsky.app/start/${didOrStarterPack.creator.did}/${rkey}` + } +} + +export function createStarterPackUri({ + did, + rkey, +}: { + did: string + rkey: string +}): string { + return new AtUri(`at://${did}/app.bsky.graph.starterpack/${rkey}`).toString() +} + +export function startUriToStarterPackUri(uri: string) { + return uri.replace('/start/', '/starter-pack/') +} diff --git a/src/lib/strings/time.ts b/src/lib/strings/time.ts index 8de4b52aed..bfefea9bc3 100644 --- a/src/lib/strings/time.ts +++ b/src/lib/strings/time.ts @@ -1,45 +1,3 @@ -const NOW = 5 -const MINUTE = 60 -const HOUR = MINUTE * 60 -const DAY = HOUR * 24 -const MONTH_30 = DAY * 30 -const MONTH = DAY * 30.41675 // This results in 365.001 days in a year, which is close enough for nearly all cases -export function ago(date: number | string | Date): string { - let ts: number - if (typeof date === 'string') { - ts = Number(new Date(date)) - } else if (date instanceof Date) { - ts = Number(date) - } else { - ts = date - } - const diffSeconds = Math.floor((Date.now() - ts) / 1e3) - if (diffSeconds < NOW) { - return `now` - } else if (diffSeconds < MINUTE) { - return `${diffSeconds}s` - } else if (diffSeconds < HOUR) { - return `${Math.floor(diffSeconds / MINUTE)}m` - } else if (diffSeconds < DAY) { - return `${Math.floor(diffSeconds / HOUR)}h` - } else if (diffSeconds < MONTH_30) { - return `${Math.round(diffSeconds / DAY)}d` - } else { - let months = diffSeconds / MONTH - if (months % 1 >= 0.9) { - months = Math.ceil(months) - } else { - months = Math.floor(months) - } - - if (months < 12) { - return `${months}mo` - } else { - return new Date(ts).toLocaleDateString() - } - } -} - export function niceDate(date: number | string | Date) { const d = new Date(date) return `${d.toLocaleDateString('en-us', { @@ -61,3 +19,14 @@ export function getAge(birthDate: Date): number { } return age } + +/** + * Compares two dates by year, month, and day only + */ +export function simpleAreDatesEqual(a: Date, b: Date): boolean { + return ( + a.getFullYear() === b.getFullYear() && + a.getMonth() === b.getMonth() && + a.getDate() === b.getDate() + ) +} diff --git a/src/lib/strings/url-helpers.ts b/src/lib/strings/url-helpers.ts index 2a20373a42..0407df7571 100644 --- a/src/lib/strings/url-helpers.ts +++ b/src/lib/strings/url-helpers.ts @@ -2,7 +2,10 @@ import {AtUri} from '@atproto/api' import psl from 'psl' import TLDs from 'tlds' +import {logger} from '#/logger' import {BSKY_SERVICE} from 'lib/constants' +import {isInvalidHandle} from 'lib/strings/handles' +import {startUriToStarterPackUri} from 'lib/strings/starter-pack' export const BSKY_APP_HOST = 'https://bsky.app' const BSKY_TRUSTED_HOSTS = [ @@ -83,6 +86,10 @@ export function toShareUrl(url: string): string { return url } +export function toBskyAppUrl(url: string): string { + return new URL(url, BSKY_APP_HOST).toString() +} + export function isBskyAppUrl(url: string): boolean { return url.startsWith('https://bsky.app/') } @@ -146,6 +153,30 @@ export function isBskyListUrl(url: string): boolean { return false } +export function isBskyStartUrl(url: string): boolean { + if (isBskyAppUrl(url)) { + try { + const urlp = new URL(url) + return /start\/(?[^/]+)\/(?[^/]+)/i.test(urlp.pathname) + } catch { + console.error('Unexpected error in isBskyStartUrl()', url) + } + } + return false +} + +export function isBskyStarterPackUrl(url: string): boolean { + if (isBskyAppUrl(url)) { + try { + const urlp = new URL(url) + return /starter-pack\/(?[^/]+)\/(?[^/]+)/i.test(urlp.pathname) + } catch { + console.error('Unexpected error in isBskyStartUrl()', url) + } + } + return false +} + export function isBskyDownloadUrl(url: string): boolean { if (isExternalUrl(url)) { return false @@ -157,10 +188,18 @@ export function convertBskyAppUrlIfNeeded(url: string): string { if (isBskyAppUrl(url)) { try { const urlp = new URL(url) + + if (isBskyStartUrl(url)) { + return startUriToStarterPackUri(urlp.pathname) + } + return urlp.pathname } catch (e) { console.error('Unexpected error in convertBskyAppUrlIfNeeded()', e) } + } else if (isShortLink(url)) { + // We only want to do this on native, web handles the 301 for us + return shortLinkToHref(url) } return url } @@ -183,6 +222,22 @@ export function feedUriToHref(url: string): string { } } +export function postUriToRelativePath( + uri: string, + options?: {handle?: string}, +): string | undefined { + try { + const {hostname, rkey} = new AtUri(uri) + const handleOrDid = + options?.handle && !isInvalidHandle(options.handle) + ? options.handle + : hostname + return `/profile/${handleOrDid}/post/${rkey}` + } catch { + return undefined + } +} + /** * Checks if the label in the post text matches the host of the link facet. * @@ -264,3 +319,23 @@ export function createBskyAppAbsoluteUrl(path: string): string { const sanitizedPath = path.replace(BSKY_APP_HOST, '').replace(/^\/+/, '') return `${BSKY_APP_HOST.replace(/\/$/, '')}/${sanitizedPath}` } + +export function isShortLink(url: string): boolean { + return url.startsWith('https://go.bsky.app/') +} + +export function shortLinkToHref(url: string): string { + try { + const urlp = new URL(url) + + // For now we only support starter packs, but in the future we should add additional paths to this check + const parts = urlp.pathname.split('/').filter(Boolean) + if (parts.length === 1) { + return `/starter-pack-short/${parts[0]}` + } + return url + } catch (e) { + logger.error('Failed to parse possible short link', {safeMessage: e}) + return url + } +} diff --git a/src/lib/styles.ts b/src/lib/styles.ts index 263127440f..d0ea4cdc17 100644 --- a/src/lib/styles.ts +++ b/src/lib/styles.ts @@ -1,6 +1,7 @@ import {Dimensions, StyleProp, StyleSheet, TextStyle} from 'react-native' -import {Theme, TypographyVariant} from './ThemeContext' + import {isWeb} from 'platform/detection' +import {Theme, TypographyVariant} from './ThemeContext' // 1 is lightest, 2 is light, 3 is mid, 4 is dark, 5 is darkest export const colors = { diff --git a/src/lib/themes.ts b/src/lib/themes.ts index 6fada40a7f..9590f16596 100644 --- a/src/lib/themes.ts +++ b/src/lib/themes.ts @@ -1,8 +1,8 @@ import {Platform} from 'react-native' -import type {Theme} from './ThemeContext' -import {colors} from './styles' -import {darkPalette, lightPalette, dimPalette} from '#/alf/themes' +import {darkPalette, dimPalette, lightPalette} from '#/alf/themes' +import {colors} from './styles' +import type {Theme} from './ThemeContext' export const defaultTheme: Theme = { colorScheme: 'light', @@ -295,9 +295,9 @@ export const darkTheme: Theme = { ...defaultTheme.palette, default: { background: darkPalette.black, - backgroundLight: darkPalette.contrast_50, + backgroundLight: darkPalette.contrast_25, text: darkPalette.white, - textLight: darkPalette.contrast_700, + textLight: darkPalette.contrast_600, textInverted: darkPalette.black, link: darkPalette.primary_500, border: darkPalette.contrast_100, @@ -308,8 +308,8 @@ export const darkTheme: Theme = { textVeryLight: darkPalette.contrast_400, replyLine: darkPalette.contrast_200, replyLineDot: darkPalette.contrast_200, - unreadNotifBg: darkPalette.primary_975, - unreadNotifBorder: darkPalette.primary_900, + unreadNotifBg: darkPalette.primary_25, + unreadNotifBorder: darkPalette.primary_100, postCtrl: darkPalette.contrast_500, brandText: darkPalette.primary_500, emptyStateIcon: darkPalette.contrast_300, @@ -344,7 +344,7 @@ export const dimTheme: Theme = { default: { ...darkTheme.palette.default, background: dimPalette.black, - backgroundLight: dimPalette.contrast_50, + backgroundLight: dimPalette.contrast_25, text: dimPalette.white, textLight: dimPalette.contrast_700, textInverted: dimPalette.black, @@ -357,8 +357,8 @@ export const dimTheme: Theme = { textVeryLight: dimPalette.contrast_400, replyLine: dimPalette.contrast_200, replyLineDot: dimPalette.contrast_200, - unreadNotifBg: dimPalette.primary_975, - unreadNotifBorder: dimPalette.primary_900, + unreadNotifBg: dimPalette.primary_25, + unreadNotifBorder: dimPalette.primary_100, postCtrl: dimPalette.contrast_500, brandText: dimPalette.primary_500, emptyStateIcon: dimPalette.contrast_300, diff --git a/src/locale/helpers.ts b/src/locale/helpers.ts index 24ab678934..cbaaf445a8 100644 --- a/src/locale/helpers.ts +++ b/src/locale/helpers.ts @@ -116,7 +116,7 @@ export function sanitizeAppLanguageSetting(appLanguage: string): AppLanguage { const langs = appLanguage.split(',').filter(Boolean) for (const lang of langs) { - switch (lang) { + switch (fixLegacyLanguageCode(lang)) { case 'en': return AppLanguage.en case 'ca': @@ -157,3 +157,20 @@ export function sanitizeAppLanguageSetting(appLanguage: string): AppLanguage { } return AppLanguage.en } + +export function fixLegacyLanguageCode(code: string | null): string | null { + // handle some legacy code conversions, see https://xml.coverpages.org/iso639a.html + if (code === 'in') { + // indonesian + return 'id' + } + if (code === 'iw') { + // hebrew + return 'he' + } + if (code === 'ji') { + // yiddish + return 'yi' + } + return code +} diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts index 9f75f83f3d..332b9309aa 100644 --- a/src/locale/i18n.ts +++ b/src/locale/i18n.ts @@ -1,6 +1,10 @@ -import '@formatjs/intl-locale/polyfill' -import '@formatjs/intl-pluralrules/polyfill' +// Don't remove -force from these because detection is VERY slow on low-end Android. +// https://github.com/formatjs/formatjs/issues/4463#issuecomment-2176070577 +import '@formatjs/intl-locale/polyfill-force' +import '@formatjs/intl-pluralrules/polyfill-force' +import '@formatjs/intl-numberformat/polyfill-force' import '@formatjs/intl-pluralrules/locale-data/en' +import '@formatjs/intl-numberformat/locale-data/en' import {useEffect} from 'react' import {i18n} from '@lingui/core' diff --git a/src/locale/locales/ca/messages.po b/src/locale/locales/ca/messages.po index d581876f58..39845771b9 100644 --- a/src/locale/locales/ca/messages.po +++ b/src/locale/locales/ca/messages.po @@ -16,11 +16,15 @@ msgstr "" "X-Poedit-SourceCharset: utf-8\n" "Plural-Forms: \n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "(té contingut incrustat)" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(sense correu)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" @@ -29,36 +33,49 @@ msgstr "{0, plural, one {{formattedCount} other} other {{formattedCount} others} #~ msgstr "{0, plural, one {# codi d'invitació disponible} other {# codis d'invitació disponibles}}" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgstr "{0, plural, one {# etiqueta s'ha aplicat a aquest compte} other {# etiquetes s'han aplicat a aquest compte}}" + +#: src/components/moderation/LabelsOnMe.tsx:55 +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" msgstr "{0, plural, one {# etiqueta s'ha aplicat a aquest compte} other {# etiquetes s'han aplicat a aquest compte}}" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgstr "{0, plural, one {# etiqueta s'ha aplicat a aquest contingut} other {# etiquetes s'han aplicat a aquest contingut}}" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" msgstr "{0, plural, one {# etiqueta s'ha aplicat a aquest contingut} other {# etiquetes s'han aplicat a aquest contingut}}" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "{0, plural, one {# republicació} other {# republicacions}}" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/KnownFollowers.tsx:179 +#~ msgid "{0, plural, one {and # other} other {and # others}}" +#~ msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "{0, plural, one {seguidor} other {seguidors}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "{0, plural, one {seguint} other {seguint}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "{0, plural, one {Like (# m'agrada)} other {Like (# m'agrades)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" msgstr "{0, plural, one {m'agrada} other {m'agrades}}" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{0, plural, one {Li ha agradat a # user} other {Li ha agradat a # users}}" @@ -66,15 +83,15 @@ msgstr "{0, plural, one {Li ha agradat a # user} other {Li ha agradat a # users} msgid "{0, plural, one {post} other {posts}}" msgstr "{0, plural, one {publicació} other {publicacions}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "{0, plural, one {Resposta per (# reply)} other {Resposta per (# replies)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" msgstr "{0, plural, one {republicació} other {republicacions}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "{0, plural, one {Desmarca m'agrada (# like)} other {Desmarca m'agrada (# likes)}}" @@ -86,27 +103,75 @@ msgstr "{0, plural, one {Desmarca m'agrada (# like)} other {Desmarca m'agrada (# #~ msgid "{0} {purposeLabel} List" #~ msgstr "Llista {purposeLabel} {0}" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "{0} s'han unit aquesta setmana" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "{0} persones han utilitzat aquest starter pack" + #: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" -msgstr "" +#~ msgid "{0} your feeds" +#~ msgstr "{0} els teus canals" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "Avatar de {0}" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "Els canals i les persones preferits de {0}: uneix-te a mi!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" +msgstr "Starter pack de {0}" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{count, plural, one {Li ha agradat a # user} other {Li ha agradat a # users}}" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "{diff, plural, one {dia} other {dies}}" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "{diff, plural, one {hora} other {hores}}" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "{diff, plural, one {minut} other {minuts}}" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "{diff, plural, one {mes} other {mesos}}" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "{diffSeconds, plural, one {segon} other {segons}}" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "Starter Pack de {displayName}" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" msgstr "{estimatedTimeHrs, plural, one {hora} other {hores}}" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "{estimatedTimeMins, plural, one {minut} other {minuts}}" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} seguint" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "No es poden enviar missatges a {handle}" + #: src/view/shell/desktop/RightNav.tsx:151 #~ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" #~ msgstr "{invitesAvailable, plural, one {Codis d'invitació: # available} other {Codi d'invitació: # available}}" @@ -121,9 +186,9 @@ msgstr "{following} seguint" #~ msgid "{invitesAvailable} invite codes available" #~ msgstr "{invitesAvailable} codis d'invitació disponibles" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{likeCount, plural, one {Li ha agradat a # user} other {Li ha agradat a # users}}" @@ -131,30 +196,64 @@ msgstr "{likeCount, plural, one {Li ha agradat a # user} other {Li ha agradat a #~ msgid "{message}" #~ msgstr "{missatge}" -#: src/view/shell/Drawer.tsx:461 +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} no llegides" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "{profileName} s'uní a Bluesky fa {0}" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "{profileName} s'uní a Bluesky amb un starter pack, fa {0}" + #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "{value, plural, =0 {Mostra totes les respostes} one {Mostra les respostes amb almenys # m'agrada} other {Mostra les respostes amb almenys # m'agrades}}" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "<0/> membres" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:485 +#~ msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +#~ msgstr "<0>{0} i<1> <2>{1} estan inclosos al teu starter pack" + +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}, <1>{1}, i {2, plural, one {# altre} other {# altres}} estan inclosos al teu starter pack" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}, <1>{1}, i {2, plural, one {# altre} other {# altres}} estan inclosos al teu starter pack" + +#: src/screens/StarterPack/Wizard/index.tsx:497 +#~ msgid "<0>{0}, <1>{1}, and {2} {3, plural, one {other} other {others}} are included in your starter pack" +#~ msgstr "<0>{0}, <1>{1}, i {2} {3, plural, one {altre} other {altres}} estan inclosos al teu starter pack" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "<0>{0} {1, plural, one {seguidor} other {seguidors}}" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "<0>{0} {1, plural, one {seguint} other {seguint}}" +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "<0>{0} i<1> <2>{1} estan inclosos al teu starter pack" + #: src/view/shell/Drawer.tsx:96 #~ msgid "<0>{0} following" #~ msgstr "<0>{0} seguint" +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "<0>{0} està inclòs al teu starter pack" + #: src/components/ProfileHoverCard/index.web.tsx:437 #~ msgid "<0>{followers} <1>{pluralizedFollowers}" #~ msgstr "<0>{followers} <1>{pluralizedFollowers}" @@ -180,11 +279,15 @@ msgstr "<0>No aplicable. Aquesta advertència només està disponible per pu #~ msgid "<0>Welcome to<1>Bluesky" #~ msgstr "<0>Us donem la benvinguda a<1>Bluesky" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "<0>Tu i<1> <2>{0} esteu inclosos al teu starter pack" + +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "⚠Identificador invàlid" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" msgstr "Confirmació 2FA" @@ -192,30 +295,34 @@ msgstr "Confirmació 2FA" #~ msgid "A content warning has been applied to this {0}." #~ msgstr "S'ha aplicat una advertència de contingut a {0}." +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "" + #: src/lib/hooks/useOTAUpdate.ts:16 #~ msgid "A new version of the app is available. Please update to continue using the app." #~ msgstr "Hi ha una nova versió d'aquesta aplicació. Actualitza-la per a continuar." -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "Accedeix als enllaços de navegació i configuració" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "Accedeix al perfil i altres enllaços de navegació" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "Accessibilitat" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" msgstr "Configuració d'accessibilitat" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" msgstr "Configuració d'accessibilitat" @@ -223,26 +330,26 @@ msgstr "Configuració d'accessibilitat" #~ msgid "account" #~ msgstr "compte" -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "Compte" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "Compte bloquejat" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "Compte seguit" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "Compte silenciat" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "Compte silenciat" @@ -258,37 +365,46 @@ msgstr "Opcions del compte" msgid "Account removed from quick access" msgstr "Compte eliminat de l'accés ràpid" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "Compte desbloquejat" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "Compte no seguit" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "Compte no silenciat" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "Afegeix" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "Afegeix-ne {0} més per a continuar" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "Afegeix {displayName} al teu starter pack" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Afegeix una advertència de contingut" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "Afegeix un usuari a aquesta llista" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "Afegeix un compte" @@ -297,7 +413,7 @@ msgstr "Afegeix un compte" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Afegeix text alternatiu" @@ -305,9 +421,9 @@ msgstr "Afegeix text alternatiu" #~ msgid "Add ALT text" #~ msgstr "Afegeix text alternatiu" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Afegeix una contrasenya d'aplicació" @@ -336,24 +452,36 @@ msgstr "Afegeix paraula silenciada a la configuració" msgid "Add muted words and tags" msgstr "Afegeix les paraules i etiquetes silenciades" -#: src/screens/Home/NoFeedsPinned.tsx:112 -msgid "Add recommended feeds" -msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:197 +#~ msgid "Add people to your starter pack that you think others will enjoy following" +#~ msgstr "" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:99 +msgid "Add recommended feeds" +msgstr "Afegeix els canals recomanats" + +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" +msgstr "Afegiu alguns canals al teu starter pack" + +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" -msgstr "" +msgstr "Afegeix el canal per defecte només de la gent que segueixes" #: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Afegeix el següent registre DNS al teu domini:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "Afegeix aquest canal als teus canals" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "Afegeix a les llistes" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" msgstr "Afegeix als meus canals" @@ -361,21 +489,20 @@ msgstr "Afegeix als meus canals" #~ msgid "Added" #~ msgstr "Afegit" -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "Afegit a la llista" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" msgstr "Afegit als meus canals" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Ajusta el nombre de m'agrades que hagi de tenir una resposta per a aparèixer al teu canal." #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Contingut per a adults" @@ -384,21 +511,48 @@ msgstr "Contingut per a adults" #~ msgid "Adult content can only be enabled via the Web at <0/>." #~ msgstr "El contingut per a adults només es pot habilitar via web a <0/>." +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "El contingut per a adults només es pot activar a través del web a <0>bsky.app." + #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." -msgstr "El contingut per adults està deshabilitat." +msgstr "El contingut per a adults està deshabilitat." -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "Avançat" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "S'han seguit tots els comptes!" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." msgstr "Tots els canals que has desat, en un sol lloc." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "Permet l'accés als teus missatges directes" + +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 +#~ msgid "Allow messages from" +#~ msgstr "Permet missatges de" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "Permet missatges nou de" + #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "Ja tens un codi?" @@ -408,17 +562,17 @@ msgstr "Ja estàs registrat com a @{0}" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" msgstr "Text alternatiu" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" msgstr "Text alternatiu" @@ -435,65 +589,93 @@ msgstr "S'ha enviat un correu a {0}. Inclou un codi de confirmació que has d'en msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "S'ha enviat un correu a la teva adreça prèvia, {0}. Inclou un codi de confirmació que has d'entrar aquí sota." -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" msgstr "Hi ha hagut un error" -#: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." -msgstr "Hi ha hagut un error intentant esborrar el missatge. Torna-ho a provar." +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" +msgstr "S'ha produït un error en generar el teu starter pack. Vols tornar-ho a provar?" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/components/StarterPack/ShareDialog.tsx:79 +#~ msgid "An error occurred while saving the image." +#~ msgstr "S'ha produït un error en desar la imatge." + +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "S'ha produït un error en desar el codi QR!" + +#: src/components/dms/MessageMenu.tsx:134 +#~ msgid "An error occurred while trying to delete the message. Please try again." +#~ msgstr "Hi ha hagut un error intentant esborrar el missatge. Torna-ho a provar." + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "S'ha produït un error en intentar seguir-ho tot" + +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "Un problema que no està inclòs en aquestes opcions" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Hi ha hagut un problema, prova-ho de nou." -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" msgstr "hi ha hagut un problema desconegut" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "i" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "Animals" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" msgstr "GIF animat" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "Comportament antisocial" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "Idioma de l'aplicació" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Contrasenya de l'aplicació esborrada" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "La contrasenya de l'aplicació només pot estar formada per lletres, números, espais, guions i guions baixos." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "La contrasenya de l'aplicació ha de ser d'almenys 4 caràcters." -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "Configuració de la contrasenya d'aplicació" @@ -501,18 +683,18 @@ msgstr "Configuració de la contrasenya d'aplicació" #~ msgid "App passwords" #~ msgstr "Contrasenyes de l'aplicació" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "Contrasenyes de l'aplicació" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "Apel·la" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "Apel·la \"{0}\" etiqueta" @@ -528,7 +710,8 @@ msgstr "Apel·la \"{0}\" etiqueta" #~ msgid "Appeal Decision" #~ msgstr "Decisión de apelación" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "Apel·lació enviada" @@ -536,40 +719,63 @@ msgstr "Apel·lació enviada" #~ msgid "Appeal submitted." #~ msgstr "Apel·lació enviada." -#: src/view/com/util/moderation/LabelInfo.tsx:52 -#~ msgid "Appeal this decision" -#~ msgstr "Apel·la aquesta decisió" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "Apel·la aquesta decisió" #: src/view/com/util/moderation/LabelInfo.tsx:56 #~ msgid "Appeal this decision." #~ msgstr "Apel·la aquesta decisió." -#: src/view/screens/Settings/index.tsx:430 +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "Aparença" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" -msgstr "" +msgstr "Aplica els canals recomanats per defecte" -#: src/view/screens/AppPasswords.tsx:265 +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +#~ msgid "Are you sure you want delete this starter pack?" +#~ msgstr "Segur que vols suprimir aquest starter pack?" + +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Confirmes que vols eliminar la contrasenya de l'aplicació \"{name}\"?" #: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgstr "Estàs segur que vols esborrar aquest missatge? El missatge s'esborrarà per a tu, però no per a l'altre participant." + +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." msgstr "Estàs segur que vols esborrar aquest missatge? El missatge s'esborrarà per a tu, però no per als altres participants." -#: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." -msgstr "Estàs segur que vols abandonar aquesta conversa? El missatge s'esborrarà per a tu, però no per als altres participants." +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" +msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/components/dms/ConvoMenu.tsx:189 +#~ msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgstr "Estàs segur que vols abandonar aquesta conversa? Els missatges s'esborraran per a tu, però no per als altres participants." + +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." +msgstr "Estàs segur que vols abandonar aquesta conversa? Els missatge s'esborraran per a tu, però no per a l'altre participant." + +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Confirmes que vols eliminar {0} dels teus canals?" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "Segur que vols eliminar-ho dels teus canals?" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "Confirmes que vols descartar aquest esborrany?" @@ -585,7 +791,8 @@ msgstr "Ho confirmes?" msgid "Are you writing in <0>{0}?" msgstr "Estàs escrivint en <0>{0}?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "Art" @@ -593,24 +800,27 @@ msgstr "Art" msgid "Artistic or non-erotic nudity." msgstr "Nuesa artística o no eròtica." -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "Almenys 3 caràcters" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "Endarrere" @@ -620,10 +830,10 @@ msgstr "Endarrere" #~ msgstr "Endarrere" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "Segons els teus interessos en {interestsText}" +#~ msgid "Based on your interest in {interestsText}" +#~ msgstr "Segons els teus interessos en {interestsText}" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "Conceptes bàsics" @@ -631,38 +841,38 @@ msgstr "Conceptes bàsics" msgid "Birthday" msgstr "Aniversari" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "Aniversari:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "Bloqueja" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" msgstr "Bloqueja el compte" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "Bloqueja el compte" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "Vols bloquejar el compte?" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "Bloqueja comptes" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "Bloqueja una llista" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "Vols bloquejar aquests comptes?" @@ -670,21 +880,21 @@ msgstr "Vols bloquejar aquests comptes?" #~ msgid "Block this List" #~ msgstr "Bloqueja la llista" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "Bloquejada" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "Comptes bloquejats" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "Comptes bloquejats" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Els comptes bloquejats no poden respondre cap fil teu, ni anomenar-te ni interactuar amb tu de cap manera." @@ -692,21 +902,21 @@ msgstr "Els comptes bloquejats no poden respondre cap fil teu, ni anomenar-te ni msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Els comptes bloquejats no poden respondre a cap fil teu, ni anomenar-te ni interactuar amb tu de cap manera. No veuràs mai el seu contingut ni ells el teu." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "Publicació bloquejada." -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "El bloqueig no evita que aquest etiquetador apliqui etiquetes al teu compte." -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "El bloqueig és públic. Els comptes bloquejats no poden respondre els teus fils, ni mencionar-te ni interactuar amb tu de cap manera." -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." -msgstr "Bloquejar no evitarà que s'apliquin etiquetes al teu compte, però no deixarà que aquest compte respongui els teus fils ni interactui amb tu." +msgstr "Bloquejar no evitarà que s'apliquin etiquetes al teu compte, però no deixarà que aquest compte respongui els teus fils ni interactuï amb tu." #: src/view/com/auth/SplashScreen.web.tsx:154 msgid "Blog" @@ -721,6 +931,10 @@ msgstr "Bluesky" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "Bluesky és una xarxa oberta on pots escollir el teu proveïdor d'allotjament. L'allotjament personalitzat està disponible en beta per a desenvolupadors." +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "" + #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 #~ msgid "Bluesky is flexible." @@ -740,7 +954,11 @@ msgstr "Bluesky és una xarxa oberta on pots escollir el teu proveïdor d'allotj #~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." #~ msgstr "Bluesky utilitza les invitacions per construir una comunitat saludable. Si no coneixes ningú amb invitacions, pots apuntar-te a la llista d'espera i te n'enviarem una aviat." -#: src/screens/Moderation/index.tsx:533 +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "Bluesky triarà un conjunt de comptes recomanats de les persones de la teva xarxa." + +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky no mostrarà el teu perfil ni les publicacions als usuaris que no estiguin registrats. Altres aplicacions poden no seguir aquesta demanda. Això no fa que el teu compte sigui privat." @@ -756,15 +974,34 @@ msgstr "Difumina les imatges" msgid "Blur images and filter from feeds" msgstr "Difumina les imatges i filtra-ho dels canals" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "Llibres" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 -msgid "Browse other feeds" +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" msgstr "" +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 +msgid "Browse other feeds" +msgstr "Explora altres canals" + #: src/view/screens/Settings/index.tsx:893 #~ msgid "Build version {0} {1}" #~ msgstr "Versió {0} {1}" @@ -777,7 +1014,7 @@ msgstr "Negocis" #~ msgid "Button disabled. Input custom domain to proceed." #~ msgstr "Botó deshabilitat. Entra el domini personalitzat per a continuar." -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "per -" @@ -790,10 +1027,10 @@ msgid "By {0}" msgstr "Per {0}" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "per @{0}" +#~ msgid "by @{0}" +#~ msgstr "per @{0}" -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "per <0/>" @@ -801,7 +1038,7 @@ msgstr "per <0/>" msgid "By creating an account you agree to the {els}." msgstr "Creant el compte indiques que estàs d'acord amb {els}." -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "per tu" @@ -809,7 +1046,7 @@ msgstr "per tu" msgid "Camera" msgstr "Càmera" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Només pot tenir lletres, números, espais, guions i guions baixos. Ha de tenir almenys 4 caràcters i no més de 32." @@ -817,14 +1054,15 @@ msgstr "Només pot tenir lletres, números, espais, guions i guions baixos. Ha d #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -832,23 +1070,23 @@ msgstr "Només pot tenir lletres, números, espais, guions i guions baixos. Ha d #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "Cancel·la" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "Cancel·la" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "Cancel·la la supressió del compte" @@ -868,12 +1106,16 @@ msgstr "Cancel·la la retallada de la imatge" msgid "Cancel profile editing" msgstr "Cancel·la l'edició del perfil" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "Cancel·la la citació de la publicació" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "Cancel·la la reactivació i surt" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "Cancel·la la cerca" @@ -889,17 +1131,17 @@ msgstr "Cancel·la obrir la web enllaçada" msgid "Change" msgstr "Canvia" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "Canvia" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "Canvia l'identificador" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "Canvia l'identificador" @@ -907,12 +1149,12 @@ msgstr "Canvia l'identificador" msgid "Change my email" msgstr "Canvia el meu correu" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "Canvia la contrasenya" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "Canvia la contrasenya" @@ -928,20 +1170,30 @@ msgstr "Canvia l'idioma de la publicació a {0}" msgid "Change Your Email" msgstr "Canvia el teu correu" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" msgstr "Xat" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" msgstr "Xat silenciat" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" msgstr "Configuració del xat" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "Configuració del xat" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" msgstr "Xat no silenciat" @@ -949,8 +1201,8 @@ msgstr "Xat no silenciat" #~ msgid "Chat with {chatId}" #~ msgstr "Xateja amb {chatId}" -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "Comprova el meu estat" @@ -962,27 +1214,47 @@ msgstr "Comprova el meu estat" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Mira alguns usuaris recomanats. Segueix-los per a veure altres usuaris similars." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." -msgstr "Comprova el teu correu electrònic per obtenir un codi d'inici de sessió i introdueix-lo aquí." +msgstr "Comprova el teu correu electrònic per a obtenir un codi d'inici de sessió i introdueix-lo aquí." -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Comprova el teu correu per a rebre el codi de confirmació i entra'l aquí sota:" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "Tria \"Tothom\" or \"Ningú\"" +#: src/view/com/modals/Threadgate.tsx:75 +#~ msgid "Choose \"Everybody\" or \"Nobody\"" +#~ msgstr "Tria \"Tothom\" or \"Ningú\"" + +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "" #: src/view/screens/Settings/index.tsx:697 #~ msgid "Choose a new Bluesky username or create" #~ msgstr "Tria un nou nom d'usuari de Bluesky o crea'l" +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "Tria els canals" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "Tria per mi" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "Tria les persones" + #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "Tria un servei" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." msgstr "Tria els algoritmes que alimentaran els teus canals personalitzats." @@ -993,42 +1265,47 @@ msgstr "Tria els algoritmes que alimentaran els teus canals personalitzats." #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 msgid "Choose this color as your avatar" -msgstr "" +msgstr "Tria aquest color com el teu avatar" + +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" +msgstr "Tria qui pot respondre" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "Tria els teus canals principals" +#~ msgid "Choose your main feeds" +#~ msgstr "Tria els teus canals principals" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "Tria la teva contrasenya" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "Esborra totes les dades antigues emmagatzemades" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "Esborra totes les dades antigues emmagatzemades (i després reinicia)" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "Esborra totes les dades emmagatzemades" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "Esborra totes les dades emmagatzemades (i després reinicia)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "Esborra la cerca" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "Esborra totes les dades antigues emmagatzemades" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "Esborra totes les dades emmagatzemades" @@ -1036,31 +1313,53 @@ msgstr "Esborra totes les dades emmagatzemades" msgid "click here" msgstr "clica aquí" +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" +msgstr "Clica aquí per a més informació sobre desactivar el teu compte" + +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "Clica aquí per a més informació." + #: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." -msgstr "" +#~ msgid "Click here to add one." +#~ msgstr "Clica aquí per afegir-ne un." #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" -msgstr "Clica aquí per obrir el menú d'etiquetes per {tag}" +msgstr "Clica aquí per a obrir el menú d'etiquetes per {tag}" #: src/components/RichText.tsx:198 #~ msgid "Click here to open tag menu for #{tag}" -#~ msgstr "Clica aquí per obrir el menú d'etiquetes per #{tag}" +#~ msgstr "Clica aquí per a obrir el menú d'etiquetes per #{tag}" -#: src/screens/Onboarding/index.tsx:47 +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "Clica aquí per provar d'enviar el missatge de nou" + +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "Clima" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "Clip 🐴 clop 🐴" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "Tanca" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "Tanca el diàleg actiu" @@ -1072,11 +1371,12 @@ msgstr "Tanca l'advertència" msgid "Close bottom drawer" msgstr "Tanca el calaix inferior" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" msgstr "Tanca el diàleg" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" msgstr "Tanca el diàleg de GIF" @@ -1088,6 +1388,10 @@ msgstr "Tanca la imatge" msgid "Close image viewer" msgstr "Tanca el visor d'imatges" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "Tanca el modal" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "Tanca el peu de la navegació" @@ -1105,7 +1409,7 @@ msgstr "Tanca la barra de navegació inferior" msgid "Closes password update alert" msgstr "Tanca l'alerta d'actualització de contrasenya" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "Tanca l'editor de la publicació i descarta l'esborrany" @@ -1113,42 +1417,48 @@ msgstr "Tanca l'editor de la publicació i descarta l'esborrany" msgid "Closes viewer for header image" msgstr "Tanca la visualització de la imatge de la capçalera" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "Plega la llista d'usuaris" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "Plega la llista d'usuaris per una notificació concreta" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "Comèdia" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "Còmics" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Directrius de la comunitat" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "Finalitza el registre i comença a utilitzar el teu compte" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "Completa la prova" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Crea publicacions de fins a {MAX_GRAPHEME_LENGTH} caràcters" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "Redacta una resposta" #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "Configura els filtres de continguts per la categoria: {0}" +#~ msgid "Configure content filtering setting for category: {0}" +#~ msgstr "Configura els filtres de continguts per la categoria: {0}" #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" @@ -1158,13 +1468,11 @@ msgstr "Configura els filtres de continguts per la categoria: {name}" msgid "Configured in <0>moderation settings." msgstr "Configurat a <0>configuració de moderació." -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -1185,7 +1493,7 @@ msgstr "Confirma el canvi" msgid "Confirm content language settings" msgstr "Confirma la configuració de l'idioma del contingut" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "Confirma l'eliminació del compte" @@ -1193,18 +1501,18 @@ msgstr "Confirma l'eliminació del compte" #~ msgid "Confirm your age to enable adult content." #~ msgstr "Confirma la teva edat per a habilitar el contingut per a adults" -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "Confirma la teva edat:" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "Confirma la teva data de naixement" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 @@ -1215,11 +1523,11 @@ msgstr "Codi de confirmació" #~ msgid "Confirms signing up {email} to the waitlist" #~ msgstr "Confirma afegir {email} a la llista d'espera" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "Connectant…" -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "Contacta amb suport" @@ -1239,41 +1547,37 @@ msgstr "Contingut bloquejat" #~ msgid "Content Filtering" #~ msgstr "Filtre de contingut" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "Filtres de contingut" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "Idiomes del contingut" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "Contingut no disponible" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "Advertència del contingut" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "Advertències del contingut" #: src/components/Menu/index.web.tsx:83 msgid "Context menu backdrop, click to close the menu." -msgstr "Teló de fons del menú contextual, fes clic per tancar-lo." +msgstr "Teló de fons del menú contextual, fes clic per a tancar-lo." -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "Continua" @@ -1281,41 +1585,47 @@ msgstr "Continua" msgid "Continue as {0} (currently signed in)" msgstr "Continua com a {0} (sessió actual)" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "Continua el fil..." + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "Continua" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "Continua" +#~ msgid "Continue to the next step" +#~ msgstr "Continua" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" -msgstr "Continua sense seguir cap compte" +#~ msgid "Continue to the next step without following any accounts" +#~ msgstr "Continua sense seguir cap compte" -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" +msgstr "Conversa esborrada" + +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "Cuina" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Copiat" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "Número de versió copiat en memòria" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "Copiat en memòria" @@ -1323,11 +1633,12 @@ msgstr "Copiat en memòria" msgid "Copied!" msgstr "Copiat" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Copia la contrasenya d'aplicació" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Copia" @@ -1340,12 +1651,20 @@ msgstr "Copia {0}" msgid "Copy code" msgstr "Copia el codi" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "Copia l'enllaç" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "Copia l'enllaç" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "Copia l'enllaç a la llista" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "Copia l'enllaç a la publicació" @@ -1353,38 +1672,46 @@ msgstr "Copia l'enllaç a la publicació" #~ msgid "Copy link to profile" #~ msgstr "Copia l'enllaç al perfil" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" msgstr "Copia el text del missatge" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "Copia el text de la publicació" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "Copia el codi QR" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Política de drets d'autor" -#: src/components/dms/ConvoMenu.tsx:80 +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" +msgstr "" + +#: src/components/dms/LeaveConvoPrompt.tsx:39 msgid "Could not leave chat" msgstr "No s'ha pogut sortir del xat" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" msgstr "No s'ha pogut carregar el canal" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "No s'ha pogut carregar la llista" #: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "No es poden carregar el perfils. Prova-ho més tard." +#~ msgid "Could not load profiles. Please try again later." +#~ msgstr "No es poden carregar els perfils. Prova-ho més tard." -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" msgstr "No s'ha pogut silenciar el xat" @@ -1396,16 +1723,34 @@ msgstr "No s'ha pogut silenciar el xat" #~ msgid "Country" #~ msgstr "País" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "Crea" + #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "Crea un nou compte" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "Crea un nou compte de Bluesky" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "Crea un codi QR per a un starter pack" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "Crea un starter pack" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "Crea un starter pack per a mi" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "Crea un compte" @@ -1414,11 +1759,15 @@ msgstr "Crea un compte" msgid "Create an account" msgstr "Crea un compte" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" -msgstr "" +msgstr "Enlloc d'això, crea un avatar" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" +msgstr "Crea'n un altre" + +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Crea una contrasenya d'aplicació" @@ -1427,11 +1776,15 @@ msgstr "Crea una contrasenya d'aplicació" msgid "Create new account" msgstr "Crea un nou compte" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/StarterPack/ShareDialog.tsx:158 +#~ msgid "Create QR code" +#~ msgstr "Crea codi QR" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "Crea un informe per a {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "Creat {0}" @@ -1447,7 +1800,8 @@ msgstr "Creat {0}" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "Crea una targeta amb una miniatura. La targeta enllaça a {url}" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "Cultura" @@ -1460,8 +1814,8 @@ msgstr "Personalitzat" msgid "Custom domain" msgstr "Domini personalitzat" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Els canals personalitzats fets per la comunitat et porten noves experiències i t'ajuden a trobar contingut que t'agradarà." @@ -1473,8 +1827,8 @@ msgstr "Personalitza el contingut dels llocs externs." #~ msgid "Danger Zone" #~ msgstr "Zona de perill" -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "Fosc" @@ -1482,15 +1836,24 @@ msgstr "Fosc" msgid "Dark mode" msgstr "Mode fosc" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "Tema fosc" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "Data de naixement" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "Desactiva el compte" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "Desactiva el meu compte" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" msgstr "Moderació de depuració" @@ -1498,14 +1861,17 @@ msgstr "Moderació de depuració" msgid "Debug panel" msgstr "Panell de depuració" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "Elimina" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "Elimina el compte" @@ -1513,35 +1879,40 @@ msgstr "Elimina el compte" #~ msgid "Delete Account" #~ msgstr "Elimina el compte" -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "Elimina el compte <0>\"<1>{0}<2>\"" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Elimina la contrasenya d'aplicació" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Vols eliminar la contrasenya d'aplicació?" -#: src/components/dms/MessageMenu.tsx:101 +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "Suprimeix el registre de declaració de xat" + +#: src/components/dms/MessageMenu.tsx:124 msgid "Delete for me" msgstr "Elimina-ho per mi" -#: src/view/screens/ProfileList.tsx:466 +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "Elimina la llista" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" msgstr "Elimina el missatge" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" msgstr "Elimina el missatge per mi" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "Elimina el meu compte" @@ -1549,33 +1920,46 @@ msgstr "Elimina el meu compte" #~ msgid "Delete my account…" #~ msgstr "Elimina el meu compte…" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "Elimina el meu compte…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "Elimina la publicació" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "Elimina l'starter pack" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "Vols eliminar l'starter pack?" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "Vols eliminar aquesta llista?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "Vols eliminar aquesta publicació?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "Eliminat" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." msgstr "Publicació eliminada." -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "Suprimeix el registre de declaració de xat" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1593,15 +1977,19 @@ msgstr "Text alternatiu descriptiu" #~ msgid "Developer Tools" #~ msgstr "Eines de desenvolupador" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "Vols dir alguna cosa?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "Tènue" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "Els missatges directes són aquí!" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" msgstr "Desactiva la reproducció automàtica dels GIF" @@ -1609,7 +1997,7 @@ msgstr "Desactiva la reproducció automàtica dels GIF" msgid "Disable Email 2FA" msgstr "Desactiva el correu 2FA" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" msgstr "Desactiva la retroalimentació hàptica" @@ -1624,11 +2012,13 @@ msgstr "Desactiva la retroalimentació hàptica" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "Deshabilitat" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "Descarta" @@ -1636,28 +2026,40 @@ msgstr "Descarta" #~ msgid "Discard draft" #~ msgstr "Descarta l'esborrany" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "Vols descartar l'esborrany?" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "Evita que les aplicacions mostrin el meu compte als usuaris no connectats" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" msgstr "Descobreix nous canals personalitzats" -#: src/view/screens/Feeds.tsx:473 -#~ msgid "Discover new feeds" -#~ msgstr "Descobreix nous canals" +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "Descobreix nous canals" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "Descobreix nous canals" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "Mostra insígnies de text alternatiu més grans" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "Nom mostrat" @@ -1674,7 +2076,7 @@ msgstr "Panell de DNS" msgid "Does not include nudity." msgstr "No inclou nuesa." -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "No comença ni acaba amb un guionet" @@ -1692,30 +2094,27 @@ msgstr "Domini verificat!" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "Fet" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "Fet" @@ -1728,22 +2127,26 @@ msgstr "Fet{extraText}" #~ msgid "Double tap to sign in" #~ msgstr "Fes doble toc per a iniciar la sessió" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "Descarrega Bluesky" + #: src/view/screens/Settings/index.tsx:755 #~ msgid "Download Bluesky account data (repository)" #~ msgstr "Descarrega les dades del compte de Bluesky (repositori)" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "Descarrega el fitxer CAR" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "Deixa anar a afegir imatges" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "A causa de les polítiques d'Apple, el contingut a adults només es pot habilitar a la web després de registrar-se." +#~ msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." +#~ msgstr "A causa de les polítiques d'Apple, el contingut a adults només es pot habilitar a la web després de registrar-se." #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" @@ -1765,19 +2168,19 @@ msgstr "p. ex.Artista, amant dels gossos i amant de la lectura." msgid "E.g. artistic nudes." msgstr "p. ex.nuesa artística" -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "p. ex.Gent interessant" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "p. ex.Spammers" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "p. ex.Els que mai fallen" -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "p. ex.Usuaris que sempre responen amb anuncis" @@ -1785,32 +2188,45 @@ msgstr "p. ex.Usuaris que sempre responen amb anuncis" msgid "Each code works once. You'll receive more invite codes periodically." msgstr "Cada codi funciona un cop. Rebràs més codis d'invitació periòdicament." +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "Edita" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "Edita" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "Edita l'avatar" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "Edita els canals" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "Edita la imatge" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "Edita els detalls de la llista" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "Edita la llista de moderació" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" msgstr "Edita els meus canals" @@ -1818,25 +2234,37 @@ msgstr "Edita els meus canals" msgid "Edit my profile" msgstr "Edita el meu perfil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "Edita les persones" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "Edita el perfil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "Edita el perfil" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "Edita els meus canals guardats" +#: src/view/screens/Feeds.tsx:416 +#~ msgid "Edit Saved Feeds" +#~ msgstr "Edita els meus canals guardats" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "Edita l'starter pack" + +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "Edita la llista d'usuaris" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "Edita qui pot respondre" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "Edita el teu nom mostrat" @@ -1845,11 +2273,20 @@ msgstr "Edita el teu nom mostrat" msgid "Edit your profile description" msgstr "Edita la descripció del teu perfil" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "Edita el teu starter pack" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "Ensenyament" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "Tria \"Tothom\" o \"Ningú\"" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "Correu" @@ -1875,7 +2312,7 @@ msgstr "Correu actualitzat" msgid "Email verified" msgstr "Correu verificat" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "Correu:" @@ -1884,8 +2321,8 @@ msgid "Embed HTML code" msgstr "Incrusta el codi HTML" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" msgstr "Incrusta la publicació" @@ -1897,18 +2334,18 @@ msgstr "Incrusta aquesta publicació al teu lloc web. Copia el fragment següent msgid "Enable {0} only" msgstr "Habilita només {0}" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" -msgstr "Habilita el contingut per adults" +msgstr "Habilita el contingut per a adults" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "Habilita el contingut per adults" +#~ msgid "Enable Adult Content" +#~ msgstr "Habilita el contingut per a adults" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "Habilita veure el contingut per adults als teus canals" +#~ msgid "Enable adult content in your feeds" +#~ msgstr "Habilita veure el contingut per a adults als teus canals" #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 @@ -1919,11 +2356,16 @@ msgstr "Habilita els continguts externs" #~ msgid "Enable External Media" #~ msgstr "Habilita el contingut extern" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "Habilita reproductors de contingut per" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "Activa aquesta opció per a veure només les respostes entre els comptes que segueixes." @@ -1931,7 +2373,9 @@ msgstr "Activa aquesta opció per a veure només les respostes entre els comptes msgid "Enable this source only" msgstr "Habilita només per aquesta font" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "Habilitat" @@ -1939,7 +2383,15 @@ msgstr "Habilitat" msgid "End of feed" msgstr "Fi del canal" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/components/Lists.tsx:52 +#~ msgid "End of list" +#~ msgstr "Fi de la llista" + +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Posa un nom a aquesta contrasenya d'aplicació" @@ -1960,7 +2412,7 @@ msgstr "Entra el codi de confirmació" #~ msgid "Enter the address of your provider:" #~ msgstr "Introdueix l'adreça del teu proveïdor:" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "Introdueix el codi que has rebut per a canviar la teva contrasenya." @@ -1981,7 +2433,7 @@ msgstr "Introdueix la teva data de naixement" #~ msgstr "Introdueix el teu correu" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "Introdueix el teu correu" @@ -2001,32 +2453,45 @@ msgstr "Introdueix el teu nou correu a continuació." msgid "Enter your username and password" msgstr "Introdueix el teu usuari i contrasenya" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" -msgstr "" +msgstr "Ha ocorregut un error en desar el fitxer" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." -msgstr "Erro en rebre la resposta al captcha." +msgstr "Error en rebre la resposta al captcha." -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "Error:" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "Tothom" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "Tothom pot respondre" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "Tothom" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "Mencions o respostes excessives" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" -msgstr "" +msgstr "Missatges excessius o no desitjats" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "Surt del procés d'eliminació del compte" @@ -2036,14 +2501,14 @@ msgstr "Surt del procés de canvi d'identificador" #: src/view/com/modals/crop-image/CropImage.web.tsx:160 msgid "Exits image cropping process" -msgstr "Surt del procés de retallar l'imatge" +msgstr "Surt del procés de retallar la imatge" #: src/view/com/lightbox/Lightbox.web.tsx:130 msgid "Exits image view" msgstr "Surt de la visualització de la imatge" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "Surt de la cerca" @@ -2055,11 +2520,19 @@ msgstr "Surt de la cerca" msgid "Expand alt text" msgstr "Expandeix el text alternatiu" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "Expandeix la llista d'usuaris" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "Expandeix o replega la publicació completa a la qual estàs responent" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "Contingut explícit o potencialment pertorbador." @@ -2068,12 +2541,12 @@ msgstr "Contingut explícit o potencialment pertorbador." msgid "Explicit sexual images." msgstr "Imatges sexuals explícites." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "Exporta les meves dades" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "Exporta les meves dades" @@ -2083,87 +2556,147 @@ msgid "External Media" msgstr "Contingut extern" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "El contingut extern pot permetre que algunes webs recullin informació sobre tu i el teu dispositiu. No s'envia ni es demana cap informació fins que premis el botó \"reproduir\"." -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "Preferència del contingut extern" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "Configuració del contingut extern" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "No s'ha pogut crear la contrasenya d'aplicació." -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "No s'ha pogut crear l'starter pack" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "No s'ha pogut crear la llista. Comprova la teva connexió a internet i torna-ho a provar." -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" msgstr "No s'ha pogut esborrar el missatge" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "No s'ha pogut esborrar la publicació, torna-ho a provar" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "No s'ha pogut eliminar l'starter pack" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "No s'han pogut carregar les preferències dels canals" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" msgstr "No s'han pogut carregar els GIF" +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" +msgstr "No s'han pogut carregar els missatges anteriors" + #: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." -msgstr "No s'han pogut carregar els missatges anteriors." +#~ msgid "Failed to load past messages." +#~ msgstr "No s'han pogut carregar els missatges anteriors." #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:110 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:143 #~ msgid "Failed to load recommended feeds" #~ msgstr "Error en carregar els canals recomanats" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "No s'han pogut carregar els canals suggerits" + +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "No s'han pogut carregar els comptes suggerits" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "Error en desar la imatge: {0}" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "No s'ha pogut enviar" + +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +#~ msgid "Failed to send message(s)." +#~ msgstr "Error en enviar missatge(s)." + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "No s'ha pogut enviar l'apel·lació, torna-ho a provar." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "No s'ha pogut desactivar el silenci del fil; torneu-ho a provar" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "No s'han pogut actualitzar els canals" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "No s'ha pogut actualitzar la configuració" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "Canal" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "Canal per {0}" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "Canal fora de línia" +#: src/view/screens/Feeds.tsx:709 +#~ msgid "Feed offline" +#~ msgstr "Canal fora de línia" #: src/view/com/feeds/FeedPage.tsx:143 #~ msgid "Feed Preferences" #~ msgstr "Preferències del canal" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "Alterna el canal" + +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "Comentaris" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" msgstr "Canals" @@ -2171,37 +2704,45 @@ msgstr "Canals" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Els canals són creats pels usuaris per a curar contingut. Tria els canals que trobis interessants." -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Els canals són algoritmes personalitzats creats per usuaris que coneixen una mica de codi. <0/> per a més informació." #: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" -msgstr "Els canals també poden ser d'actualitat!" +#~ msgid "Feeds can be topical as well!" +#~ msgstr "Els canals també poden ser d'actualitat!" + +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" +msgstr "Canals actualitzats!" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Continguts del fitxer" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" -msgstr "" +msgstr "Fitxer desat amb èxit" #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Filtra-ho dels canals" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "Finalitzant" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "Troba comptes per a seguir" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "" + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" msgstr "Troba publicacions i usuaris a Bluesky" @@ -2217,7 +2758,7 @@ msgstr "Troba publicacions i usuaris a Bluesky" #~ msgid "Finding similar accounts..." #~ msgstr "Troba comptes similars…" -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." msgstr "Ajusta el contingut que veus al teu canal Seguint." @@ -2225,15 +2766,23 @@ msgstr "Ajusta el contingut que veus al teu canal Seguint." #~ msgid "Fine-tune the content you see on your home screen." #~ msgstr "Ajusta el contingut que es veu a la teva pantalla d'inici." -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "Ajusta els fils de debat." -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "Finalitza" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "Exercici" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "Flexible" @@ -2246,116 +2795,176 @@ msgstr "Gira horitzontalment" msgid "Flip vertically" msgstr "Gira verticalment" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "Segueix" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "Segueix" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Segueix {0}" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "Segueix a {name}" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "Segueix el compte" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" msgstr "Segueix-los a tots" +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 +#~ msgid "Follow All" +#~ msgstr "Segueix-los a tots" + #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "Segueix" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "Segueix més comptes per connectar-te als teus interessos i construir la teva xarxa." + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" -msgstr "Segueix els comptes seleccionats i continua" +#~ msgid "Follow selected accounts and continue to the next step" +#~ msgstr "Segueix els comptes seleccionats i continua" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:65 #~ msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." #~ msgstr "Segueix a alguns usuaris per a començar. Te'n podem recomanar més basant-nos en els que trobes interessants." -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" -msgstr "Seguit per {0}" +#: src/components/KnownFollowers.tsx:169 +#~ msgid "Followed by" +#~ msgstr "Seguit per" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/view/com/profile/ProfileCard.tsx:190 +#~ msgid "Followed by {0}" +#~ msgstr "Seguit per {0}" + +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" +msgstr "Seguit per <0>{0}" + +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "Seguit per <0>{0} i {1, plural, one {# altre} other {# altres}}" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "Seguit per <0>{0} i <1>{1}" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "Seguit per <0>{0}, <1>{1}, i {2, plural, one {# altre} other {# altres}}" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "Usuaris seguits" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "Només els usuaris seguits" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "et segueix" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Seguidors" +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "Seguidors de @{0} que coneixes" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "Seguidors que coneixes" + #: src/view/com/profile/ProfileHeader.tsx:624 #~ msgid "following" #~ msgstr "seguint" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "Seguint" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" msgstr "Seguint {0}" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "Seguint a {name}" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" msgstr "Preferències del canal Seguint" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" msgstr "Preferències del canal Seguint" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "Et segueix" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "Et segueix" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "Menjar" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Per motius de seguretat necessitem enviar-te un codi de confirmació al teu correu." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Per motius de seguretat no podràs tornar-la a veure. Si perds aquesta contrasenya necessitaràs generar-ne una de nova." @@ -2372,23 +2981,23 @@ msgstr "Per motius de seguretat no podràs tornar-la a veure. Si perds aquesta c msgid "Forgot Password" msgstr "He oblidat la contrasenya" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "Has oblidat la contrasenya?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "Oblidada?" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" -msgstr "Publica contingut no dessitjat freqüentment" +msgstr "Publica contingut no desitjat freqüentment" #: src/screens/Hashtag.tsx:118 msgid "From @{sanitizedAuthor}" msgstr "De @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "De <0/>" @@ -2397,48 +3006,77 @@ msgstr "De <0/>" msgid "Gallery" msgstr "Galeria" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "Genera un starter pack" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "Comença" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Comença" -#: src/screens/Onboarding/StepProfile/index.tsx:228 -msgid "Give your profile a face" +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" msgstr "" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "GIF" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 +msgid "Give your profile a face" +msgstr "Posa una cara al teu perfil" + +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "Infraccions flagrants de la llei o les condicions del servei" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "Ves enrere" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "Ves enrere" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:189 +#~ msgid "Go back to previous screen" +#~ msgstr "" + +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "Ves al pas anterior" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "Ves al pas anterior" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "Ves a l'inici" @@ -2452,16 +3090,24 @@ msgstr "Ves a l'inici" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "Ves a @{queryMaybeHandle}" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "Ves a la conversa amb {0}" + #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "Ves al següent" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" msgstr "Ves al perfil" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" msgstr "Ves al perfil de l'usuari" @@ -2469,19 +3115,23 @@ msgstr "Ves al perfil de l'usuari" msgid "Graphic Media" msgstr "Mitjans gràfics" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Identificador" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" msgstr "Hàptics" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "Assetjament, troleig o intolerància" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "Etiqueta" @@ -2489,72 +3139,70 @@ msgstr "Etiqueta" #~ msgid "Hashtag: {tag}" #~ msgstr "Etiqueta: {tag}" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "Etiqueta: #{tag}" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "Tens problemes?" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "Ajuda" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." -msgstr "" +msgstr "Ajuda la gent a saber que no ets un bot penjant una imatge o creant un avatar." #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "Aquí tens uns quants comptes que pots seguir" +#~ msgid "Here are some accounts for you to follow" +#~ msgstr "Aquí tens uns quants comptes que pots seguir" #: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "Aquí tens alguns canals d'actualitat populars. Pots seguir-ne tants com vulguis." +#~ msgid "Here are some popular topical feeds. You can choose to follow as many as you like." +#~ msgstr "Aquí tens alguns canals d'actualitat populars. Pots seguir-ne tants com vulguis." #: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "Aquí tens uns quants canals d'actualitat basats en els teus interessos: {interestsText}. Pots seguir-ne tants com vulguis." +#~ msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." +#~ msgstr "Aquí tens uns quants canals d'actualitat basats en els teus interessos: {interestsText}. Pots seguir-ne tants com vulguis." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Aquí tens la teva contrasenya d'aplicació." -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "Amaga" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "Amaga" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "Amaga l'entrada" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "Amaga el contingut" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "Vols amagar aquesta entrada?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "Amaga la llista d'usuaris" @@ -2562,39 +3210,40 @@ msgstr "Amaga la llista d'usuaris" #~ msgid "Hides posts from {0} in your feed" #~ msgstr "Amaga les publicacions de {0} al teu canal" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "S'ha produït algun error quan s'intentava connectar amb el servidor del canal. Avisa al propietari del canal d'aquest problema." -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Sembla que el servidor del canal està mal configurat. Avisa al propietari del canal d'aquest problema." -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Sembla que el servidor del canal està sense connexió. Avisa al propietari del canal d'aquest problema." -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "El servidor del canal ha donat una resposta incorrecta. Avisa al propietari del canal d'aquest problema." -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Tenim problemes per a trobar aquest canal. Potser ha estat eliminat." -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." -msgstr "Tenim problemes per a carregar aquestes dades. Mira a continuació per a veure més detalls. Contacta'ns si aquest problema continua." +msgstr "Tenim problemes per a carregar aquestes dades. Mira a continuació per a veure més detalls. Contacta amb nosaltres si aquest problema continua." #: src/screens/Profile/ErrorState.tsx:31 msgid "Hmmmm, we couldn't load that moderation service." msgstr "No podem carregar el servei de moderació." -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "Inici" @@ -2610,8 +3259,8 @@ msgid "Host:" msgstr "Allotjament:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Proveïdor d'allotjament" @@ -2639,9 +3288,10 @@ msgstr "Tinc un codi de confirmació" msgid "I have my own domain" msgstr "Tinc el meu propi domini" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" -msgstr "" +msgstr "Ho entenc" #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" @@ -2655,27 +3305,31 @@ msgstr "Si no en selecciones cap, és apropiat per a totes les edats." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Si encara no ets un adult segons les lleis del teu país, el teu tutor legal haurà de llegir aquests Termes en el teu lloc." -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "Si esborres aquesta llista no la podràs recuperar." -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "Si esborres aquesta publicació no la podràs recuperar." -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Si vols canviar la contrasenya t'enviarem un codi per a verificar que aquest compte és teu." -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "Si vols canviar el teu identificador o el correu fes-ho abans de desactivar el compte." + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "Il·legal i urgent" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "Imatge" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Text alternatiu de la imatge" @@ -2684,15 +3338,23 @@ msgstr "Text alternatiu de la imatge" #~ msgid "Image options" #~ msgstr "Opcions de la imatge" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "La imatge s'ha desat a la teva galeria!" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "Suplantació d'identitat o afirmacions falses sobre identitat o afiliació" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "Missatges inapropiats o enllaços explícits" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "Introdueix el codi que s'ha enviat al teu correu per a restablir la contrasenya" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "Introdueix el codi de confirmació per a eliminar el compte" @@ -2704,7 +3366,7 @@ msgstr "Introdueix el codi de confirmació per a eliminar el compte" #~ msgid "Input invite code to proceed" #~ msgstr "Introdueix el codi d'invitació per a continuar" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Introdueix un nom per la contrasenya d'aplicació" @@ -2712,7 +3374,7 @@ msgstr "Introdueix un nom per la contrasenya d'aplicació" msgid "Input new password" msgstr "Introdueix una nova contrasenya" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "Introdueix la contrasenya per a eliminar el compte" @@ -2720,15 +3382,15 @@ msgstr "Introdueix la contrasenya per a eliminar el compte" #~ msgid "Input phone number for SMS verification" #~ msgstr "Introdueix el telèfon per la verificació per SMS" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "Introdueix el codi que has rebut per correu" -#: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "Introdueix la contrasenya lligada a {identifier}" +#: src/screens/Login/LoginForm.tsx:221 +#~ msgid "Input the password tied to {identifier}" +#~ msgstr "Introdueix la contrasenya lligada a {identifier}" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the username or email address you used at signup" msgstr "Introdueix el nom d'usuari o correu que vas utilitzar per a registrar-te" @@ -2740,28 +3402,32 @@ msgstr "Introdueix el nom d'usuari o correu que vas utilitzar per a registrar-te #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "Introdueix el teu correu per a afegir-te a la llista d'espera de Bluesky" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "Introdueix la teva contrasenya" #: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" -msgstr "Introdeix el teu proveïdor d'allotjament preferit" +msgstr "Introdueix el teu proveïdor d'allotjament preferit" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "Introdueix el teu identificador d'usuari" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "Presentació dels missatges directes" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "El codi de confirmació 2FA no és vàlid." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "Registre de publicació no vàlid o no admès" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "Nom d'usuari o contrasenya incorrectes" @@ -2773,11 +3439,11 @@ msgstr "Nom d'usuari o contrasenya incorrectes" msgid "Invite a Friend" msgstr "Convida un amic" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "Codi d'invitació" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Codi d'invitació rebutjat. Comprova que l'has entrat correctament i torna-ho a provar." @@ -2793,14 +3459,41 @@ msgstr "Codis d'invitació: {0} disponible" msgid "Invite codes: 1 available" msgstr "Codis d'invitació: 1 disponible" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "Convida a gent a aquest starter pack!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "Convida els teus amics a seguir els teus canals i persones preferides" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "Convida a Bluesky de manera més personalitzada" + #: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." -msgstr "Mostra les publicacions de les persones que segueixes cronològicament." +#~ msgid "It shows posts from the people you follow as they happen." +#~ msgstr "Mostra les publicacions de les persones que segueixes cronològicament." + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." +msgstr "Ara només ets tu! Afegeix més persones al teu starter pack cercant a dalt." #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "Feines" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "Uneix-te a Bluesky" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "Uneix-te a la conversa" + #: src/view/com/modals/Waitlist.tsx:67 #~ msgid "Join the waitlist" #~ msgstr "Uneix-te a la llista d'espera" @@ -2814,7 +3507,8 @@ msgstr "Feines" #~ msgid "Join Waitlist" #~ msgstr "Uneix-te a la llista d'espera" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "Periodisme" @@ -2822,48 +3516,48 @@ msgstr "Periodisme" #~ msgid "label has been placed on this {labelTarget}" #~ msgstr "S'ha posat l'etiqueta a aquest {labelTarget}" -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "Etiquetat per {0}." -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "Etiquetat per l'autor." -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "Etiquetes" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." -msgstr "Les etiquetes son anotacions sobre els usuaris i el contingut. Poden ser utilitzades per a ocultar, advertir i categoritxar la xarxa." +msgstr "Les etiquetes són anotacions sobre els usuaris i el contingut. Poden ser utilitzades per a ocultar, advertir i categoritzar la xarxa." #: src/components/moderation/LabelsOnMe.tsx:61 #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "S'han posat etiquetes a aquest {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "Etiquetes al teu compte" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "Etiquetes al teu contingut" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "Tria l'idioma" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "Configuració d'idioma" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "Configuració d'idioma" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "Idiomes" @@ -2872,7 +3566,7 @@ msgstr "Idiomes" #~ msgstr "Últim pas" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "El més recent" @@ -2884,31 +3578,38 @@ msgstr "El més recent" msgid "Learn More" msgstr "Més informació" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "Més informació sobre la moderació que s'ha aplicat a aquest contingut." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Més informació d'aquesta advertència" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "Més informació sobre què és públic a Bluesky." -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "Més informació." -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" msgstr "Surt" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "Surt del xat" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" msgstr "Surt de la conversa" @@ -2920,20 +3621,25 @@ msgstr "Deixa'ls tots sense marcar per a veure tots els idiomes." msgid "Leaving Bluesky" msgstr "Sortint de Bluesky" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "queda." -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "L'emmagatzematge heretat s'ha esborrat, cal que reinicieu l'aplicació ara." +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "Deixa'm triar" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "Restablirem la teva contrasenya!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "Som-hi!" @@ -2942,7 +3648,7 @@ msgstr "Som-hi!" #~ msgid "Library" #~ msgstr "Biblioteca" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "Clar" @@ -2950,14 +3656,23 @@ msgstr "Clar" #~ msgid "Like" #~ msgstr "M'agrada" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "" + +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "Fes m'agrada a aquest canal" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "Li ha agradat a" @@ -2981,84 +3696,101 @@ msgstr "Li ha agradat a" #~ msgid "Liked by {likeCount} {0}" #~ msgstr "Li ha agradat a {likeCount} {0}" -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" -msgstr "els hi ha agradat el teu canal personalitzat" +msgstr "els ha agradat el teu canal personalitzat" #: src/view/com/notifications/FeedItem.tsx:171 #~ msgid "liked your custom feed{0}" #~ msgstr "i ha agradat el teu canal personalitzat{0}" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" msgstr "li ha agradat la teva publicació" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "M'agrades" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "M'agrades a aquesta publicació" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "Llista" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "Avatar de la llista" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "Llista bloquejada" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "Llista per {0}" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "Llista eliminada" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "Llista silenciada" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "Nom de la llista" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "Llista desbloquejada" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "Llista no silenciada" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "Llistes" +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "Llistes que bloquegen aquest usuari:" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "Carrega'n més" + #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 #~ msgid "Load more posts" #~ msgstr "Carrega més publicacions" -#: src/view/screens/Notifications.tsx:159 +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "Carrega més canals suggerits" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "Carrega més suggerencies d'usuaris per seguir" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "Carrega noves notificacions" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "Carrega noves publicacions" @@ -3070,18 +3802,23 @@ msgstr "Carregant…" #~ msgid "Local dev server" #~ msgstr "Servidor de desenvolupament local" -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "Registre" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "Inicia sessió o registra't" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "Desconnecta" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "Visibilitat pels usuaris no connectats" @@ -3089,9 +3826,9 @@ msgstr "Visibilitat pels usuaris no connectats" msgid "Login to account that is not listed" msgstr "Accedeix a un compte que no està llistat" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" -msgstr "Prem llargament per obrir el menú d'etiquetes per a #{tag}" +msgstr "Prem llargament per a obrir el menú d'etiquetes per a #{tag}" #~ msgid "Looks like this feed is only available to users with a Bluesky account. Please sign up or sign in to view this feed!" #~ msgstr "Parece que este canal de noticias sólo está disponible para usuarios con una cuenta Bluesky. Por favor, ¡regístrate o inicia sesión para ver este canal!" @@ -3102,15 +3839,23 @@ msgstr "Té l'aspecte XXXXX-XXXXX" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." -msgstr "" +msgstr "Sembla que no has desat cap canal encara, utilitza els que recomanem o explora'n d'altres aquí sota." -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" -msgstr "" +msgstr "Sembla que has deixat tots els teus canals sense fixar. No passa res, en pots afegir més aquí sota 😄" #: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." -msgstr "" +#~ msgid "Looks like you're missing a following feed." +#~ msgstr "Sembla que et falta el canal del Seguits." + +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "Sembla que et falta el canal del Seguits. <0>Clica aquí per a afegir-ne un." + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" +msgstr "Fes-ne un per mi" #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" @@ -3120,10 +3865,10 @@ msgstr "Assegura't que és aquí on vols anar!" msgid "Manage your muted words and tags" msgstr "Gestiona les teves etiquetes i paraules silenciades" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" -msgstr "" +msgstr "Marca com a llegit" #: src/view/com/auth/create/Step2.tsx:118 #~ msgid "May not be longer than 253 characters" @@ -3133,26 +3878,30 @@ msgstr "" #~ msgid "May only contain letters and numbers" #~ msgstr "Només pot tenir lletres i números" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "Contingut" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "usuaris mencionats" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "Usuaris mencionats" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "Menú" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "Missatge {0}" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" msgstr "Missatge esborrat" @@ -3164,40 +3913,37 @@ msgstr "Missatge esborrat" msgid "Message from server: {0}" msgstr "Missatge del servidor: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" msgstr "Camp d'entrada del missatge" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" -msgstr "" +msgstr "El missatge és massa llarg" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "Configuració dels missatges" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "Missatges" #: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "Configuració dels missatges" +#~ msgid "Messaging settings" +#~ msgstr "Configuració dels missatges" -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" -msgstr "Compte enganyòs" +msgstr "Compte enganyós" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "Moderació" @@ -3205,56 +3951,57 @@ msgstr "Moderació" msgid "Moderation details" msgstr "Detalls de la moderació" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" msgstr "Llista de moderació per {0}" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "Llista de moderació per <0/>" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "Llista de moderació teva" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "S'ha creat la llista de moderació" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "S'ha actualitzat la llista de moderació" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "Llistes de moderació" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Llistes de moderació" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "Configuració de moderació" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "Estats de moderació" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "Eines de moderació" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "El moderador ha decidit establir un advertiment general sobre el contingut." -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "Més" @@ -3262,7 +4009,7 @@ msgstr "Més" msgid "More feeds" msgstr "Més canals" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "Més opcions" @@ -3270,10 +4017,18 @@ msgstr "Més opcions" #~ msgid "More post options" #~ msgstr "Més opcions de publicació" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "Respostes amb més m'agrada primer" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "Pel·lícules" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:122 #~ msgid "Must be at least 3 characters" #~ msgstr "Ha de tenir almenys 3 caràcters" @@ -3286,12 +4041,12 @@ msgstr "Silencia" msgid "Mute {truncatedTag}" msgstr "Silencia {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "Silenciar el compte" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "Silencia els comptes" @@ -3303,6 +4058,11 @@ msgstr "Silencia totes les publicacions {displayTag}" #~ msgid "Mute all {tag} posts" #~ msgstr "Silencia totes les publicacions {tag}" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "Silencia la conversa" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" msgstr "Silencia només a les etiquetes" @@ -3311,16 +4071,16 @@ msgstr "Silencia només a les etiquetes" msgid "Mute in text & tags" msgstr "Silencia a les etiquetes i al text" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "Silencia la llista" #: src/components/dms/ConvoMenu.tsx:136 #: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "Silencia les notificacions" +#~ msgid "Mute notifications" +#~ msgstr "Silencia les notificacions" -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "Vols silenciar aquests comptes?" @@ -3336,25 +4096,25 @@ msgstr "Silencia aquesta paraula en el text de les publicacions i a les etiquete msgid "Mute this word in tags only" msgstr "Silencia aquesta paraula només a les etiquetes" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" msgstr "Silencia el fil de debat" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "Silencia paraules i etiquetes" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "Silenciada" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "Comptes silenciats" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "Comptes silenciats" @@ -3363,15 +4123,15 @@ msgstr "Comptes silenciats" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Les publicacions dels comptes silenciats seran eliminats del teu canal i de les teves notificacions. Silenciar comptes és completament privat." -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "Silenciat per \"{0}\"" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "Paraules i etiquetes silenciades" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Silenciar és privat. Els comptes silenciats poden interactuar amb tu, però tu no veuràs les seves publicacions ni rebràs notificacions seves." @@ -3380,19 +4140,19 @@ msgstr "Silenciar és privat. Els comptes silenciats poden interactuar amb tu, p msgid "My Birthday" msgstr "El meu aniversari" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" msgstr "Els meus canals" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "El meu perfil" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" msgstr "Els meus canals desats" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" msgstr "Els meus canals desats" @@ -3400,36 +4160,46 @@ msgstr "Els meus canals desats" #~ msgid "my-server.com" #~ msgstr "el-meu-servidor.com" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "Nom" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "Es requereix un nom" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "El nom o la descripció infringeixen els estàndards comunitaris" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "Natura" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "Vés a l'starter pack" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "Navega a la pantalla següent" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "Navega al teu perfil" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "Necessites informar d'una infracció dels drets d'autor?" @@ -3443,7 +4213,7 @@ msgstr "Necessites informar d'una infracció dels drets d'autor?" #~ msgid "Never lose access to your followers and data." #~ msgstr "No perdis mai accés als teus seguidors ni a les teves dades." -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "No perdis mai accés als teus seguidors i les teves dades." @@ -3455,7 +4225,7 @@ msgstr "No perdis mai accés als teus seguidors i les teves dades." msgid "Nevermind, create a handle for me" msgstr "Tant hi fa, crea'm un identificador" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "Nova" @@ -3464,40 +4234,44 @@ msgstr "Nova" msgid "New" msgstr "Nova" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "Xat nou" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "Nous missatges" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "Nova llista de moderació" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "Nova contrasenya" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "Nova contrasenya" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "Nova publicació" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "Nova publicació" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "Nova publicació" @@ -3506,27 +4280,37 @@ msgstr "Nova publicació" #~ msgid "New Post" #~ msgstr "Nova publicació" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "Diàleg d'informació d'usuari nou" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "Nova llista d'usuaris" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "Les respostes més noves primer" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "Notícies" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "Següent" @@ -3539,17 +4323,17 @@ msgstr "Següent" msgid "Next image" msgstr "Següent imatge" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "No" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "Cap descripció" @@ -3557,68 +4341,102 @@ msgstr "Cap descripció" msgid "No DNS Panel" msgstr "No hi ha panell de DNS" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "No s'han trobat GIF destacats. Pot haver-hi un problema amb Tenor." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "No s'han trobat canals. Intenta cercar una altra cosa." + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "Ja no segueixes a {0}" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "No pot tenir més de 253 caràcters" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" msgstr "Encara no tens cap missatge" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "No hi ha més converses per a mostrar" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "Encara no tens cap notificació" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "Ningú" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "Encara no hi ha publicacions." + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Cap resultat" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "Cap resultat" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "No s'han trobat resultats" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "No s'han trobat resultats per \"{query}\"" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "No s'han trobat resultats per {query}" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." msgstr "No s'han trobat resultats de cerca per a \"{search}\"." #: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "No s'han trobat resultats de cerca per a \"{searchText}\"." +#~ msgid "No search results found for \"{searchText}\"." +#~ msgstr "No s'han trobat resultats de cerca per a \"{searchText}\"." #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "No, gràcies" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "Ningú" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "Ningú pot respondre" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "A ningú encara li ha agradat això. Potser hauries de ser el primer!" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "No s'ha trobat ningú. Intenta cercar algú altre." + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "Nuesa no sexual" @@ -3627,8 +4445,8 @@ msgstr "Nuesa no sexual" #~ msgid "Not Applicable." #~ msgstr "No aplicable." -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "No s'ha trobat" @@ -3637,27 +4455,57 @@ msgstr "No s'ha trobat" msgid "Not right now" msgstr "Ara mateix no" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "Nota sobre compartir" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: Bluesky és una xarxa oberta i pública. Aquesta configuració tan sols limita el teu contingut a l'aplicació de Bluesky i a la web, altres aplicacions poden no respectar-ho. El teu contingut pot ser mostrat a usuaris no connectats per altres aplicacions i webs." -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "Aquí no hi ha res" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "Sons de les notificacions" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "Sons de les notificacions" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "Notificacions" -#: src/components/dms/MessageItem.tsx:145 +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" +msgstr "ara" + +#: src/components/dms/MessageItem.tsx:169 msgid "Now" msgstr "Ara" @@ -3665,9 +4513,9 @@ msgstr "Ara" msgid "Nudity" msgstr "Nuesa" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" -msgstr "Nuesa o contingut per adults no etiquetat com a tal" +msgstr "Nuesa o contingut per a adults no etiquetat com a tal" #: src/lib/moderation/useReportOptions.ts:71 #~ msgid "Nudity or pornography not labeled as such" @@ -3681,17 +4529,17 @@ msgstr "Nuesa o contingut per adults no etiquetat com a tal" msgid "Off" msgstr "Apagat" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "Ostres!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "Ostres! Alguna cosa ha fallat." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "D'acord" @@ -3699,66 +4547,98 @@ msgstr "D'acord" msgid "Okay" msgstr "D'acord" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "Respostes més antigues primer" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "en" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "en {str}" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "Restableix la incorporació" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "Falta el text alternatiu a una o més imatges." -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" -msgstr "" +msgstr "Només s'accepten fitxers .jpg i .png" + +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" +msgstr "Només {0} pot respondre" #: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." -msgstr "Només {0} poden respondre." +#~ msgid "Only {0} can reply." +#~ msgstr "Només {0} poden respondre." -#: src/screens/Signup/StepHandle.tsx:98 +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "Només pot tenir lletres, nombres i guionets" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Ostres, alguna cosa ha anat malament!" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "Ostres!" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "Obre" -#: src/screens/Onboarding/StepProfile/index.tsx:280 +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "Obre el menú de drecera del perfil {name}" + +#: src/screens/Onboarding/StepProfile/index.tsx:277 msgid "Open avatar creator" -msgstr "" +msgstr "Obre el creador d'avatars" #: src/view/screens/Moderation.tsx:75 #~ msgid "Open content filtering settings" #~ msgstr "Obre la configuració del filtre de contingut" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "Obre les opcions de les converses" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "Obre el selector d'emojis" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "Obre el menú de les opcions del canal" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "Obre els enllaços al navegador de l'aplicació" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "Obre les opcions dels missatges" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "Obre la configuració de les paraules i etiquetes silenciades" @@ -3766,48 +4646,60 @@ msgstr "Obre la configuració de les paraules i etiquetes silenciades" #~ msgid "Open muted words settings" #~ msgstr "Obre la configuració de les paraules silenciades" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "Obre la navegació" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "Obre el menú de les opcions de publicació" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "Obre el menú de l'starter pack" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "Obre la pàgina d'historial" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "Obre el registre del sistema" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "Obre {numItems} opcions" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "Obre un diàleg per triar qui pot respondre a aquest fil" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "Obre la configuració d'accessibilitat" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "Obre detalls addicionals per una entrada de depuració" #: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "Obre una llista expandida d'usuaris en aquesta notificació" +#~ msgid "Opens an expanded list of users in this notification" +#~ msgstr "Obre una llista expandida d'usuaris en aquesta notificació" #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "Obre la càmera del dispositiu" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "Obre la configuració del xat" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "Obre el compositor" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "Obre la configuració d'idioma" @@ -3819,7 +4711,7 @@ msgstr "Obre la galeria fotogràfica del dispositiu" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Obre l'editor del perfil per a editar el nom, avatar, imatge de fons i descripció" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "Obre la configuració per les incrustacions externes" @@ -3841,9 +4733,9 @@ msgstr "Obre el procés per a iniciar sessió a un compte existent de Bluesky" #~ msgid "Opens following list" #~ msgstr "Obre la llista de seguits" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" -msgstr "Obre el diàleg per triar GIF" +msgstr "Obre el diàleg per a triar GIF" #: src/view/screens/Settings.tsx:412 #~ msgid "Opens invite code list" @@ -3853,7 +4745,11 @@ msgstr "Obre el diàleg per triar GIF" msgid "Opens list of invite codes" msgstr "Obre la llista de codis d'invitació" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "Obre el modal per a la confirmació de la desactivació del compte" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Obre el modal per a la confirmació de l'eliminació del compte. Requereix codi de correu electrònic" @@ -3861,19 +4757,19 @@ msgstr "Obre el modal per a la confirmació de l'eliminació del compte. Requere #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Obre el modal per a confirmar l'eliminació del compte. Requereix un codi de correu" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "Obre el modal per a canviar la contrasenya de Bluesky" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Obre el modal per a triar un nou identificador de Bluesky" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Obre el modal per a baixar les dades del vostre compte Bluesky (repositori)" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "Obre el modal per a verificar el correu" @@ -3881,24 +4777,24 @@ msgstr "Obre el modal per a verificar el correu" msgid "Opens modal for using custom domain" msgstr "Obre el modal per a utilitzar un domini personalitzat" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" msgstr "Obre la configuració de la moderació" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "Obre el formulari de restabliment de la contrasenya" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "Obre pantalla per a editar els canals desats" +#: src/view/screens/Feeds.tsx:417 +#~ msgid "Opens screen to edit Saved Feeds" +#~ msgstr "Obre pantalla per a editar els canals desats" -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" msgstr "Obre la pantalla amb tots els canals desats" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "Obre la configuració de les contrasenyes d'aplicació" @@ -3906,7 +4802,7 @@ msgstr "Obre la configuració de les contrasenyes d'aplicació" #~ msgid "Opens the app password settings page" #~ msgstr "Obre la pàgina de configuració de les contrasenyes d'aplicació" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" msgstr "Obre les preferències del canal de Seguint" @@ -3919,36 +4815,53 @@ msgid "Opens the linked website" msgstr "Obre la web enllaçada" #: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "Obre la pàgina de configuració dels missatges" +#~ msgid "Opens the message settings page" +#~ msgstr "Obre la pàgina de configuració dels missatges" -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "Obre la pàgina de l'historial" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "Obre la pàgina de registres del sistema" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "Obre les preferències dels fils de debat" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "Obre aquest perfil" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "Opció {0} de {numItems}" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "Opcionalment, proporciona informació addicional a continuació:" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "O combina aquestes opcions:" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "O continua amb un altre compte." + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "O inicia sessió en un altre dels teus comptes." + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "Un altre" @@ -3960,11 +4873,15 @@ msgstr "Un altre compte" #~ msgid "Other service" #~ msgstr "Un altre servei" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "Un altre…" -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "Els nostres moderadors han revisat els informes i han decidit desactivar el teu accés als xats a Bluesky." + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Pàgina no trobada" @@ -3973,14 +4890,14 @@ msgstr "Pàgina no trobada" msgid "Page Not Found" msgstr "Pàgina no trobada" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "Contrasenya" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "Contrasenya canviada" @@ -3992,31 +4909,37 @@ msgstr "Contrasenya actualitzada" msgid "Password updated!" msgstr "Contrasenya actualitzada!" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "Posa en pausa" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "Gent" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "Persones seguides per @{0}" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "Persones seguint a @{0}" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." msgstr "Cal permís per a accedir al carret de la càmera." -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "S'ha denegat el permís per a accedir a la càmera. Activa'l a la configuració del teu sistema." -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "Canvi de persona" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "Mascotes" @@ -4024,24 +4947,32 @@ msgstr "Mascotes" #~ msgid "Phone number" #~ msgstr "Telèfon" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "Fotografia" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Imatges destinades a adults." -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "Fixa a l'inici" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "Fixa a l'Inici" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "Canals de notícies fixats" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "Fixat als teus canals" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" msgstr "Reprodueix" @@ -4049,7 +4980,12 @@ msgstr "Reprodueix" msgid "Play {0}" msgstr "Reprodueix {0}" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/screens/Messages/Settings.tsx:97 +#: src/screens/Messages/Settings.tsx:104 +#~ msgid "Play notification sounds" +#~ msgstr "Reprodueix els sons de notificació" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" msgstr "Reprodueix o posa en pausa el GIF" @@ -4062,15 +4998,16 @@ msgstr "Reprodueix el vídeo" msgid "Plays the GIF" msgstr "Reprodueix el GIF" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "Tria el teu identificador." -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "Tria la teva contrasenya." -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "Completa el captcha de verificació." @@ -4078,7 +5015,7 @@ msgstr "Completa el captcha de verificació." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Confirma el teu correu abans de canviar-lo. Aquest és un requisit temporal mentre no s'afegeixin eines per a actualitzar el correu. Aviat no serà necessari." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Introdueix un nom per a la contrasenya de la vostra aplicació. No es permeten tot en espais." @@ -4086,7 +5023,7 @@ msgstr "Introdueix un nom per a la contrasenya de la vostra aplicació. No es pe #~ msgid "Please enter a phone number that can receive SMS text messages." #~ msgstr "Introdueix un telèfon que pugui rebre missatges SMS" -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Introdueix un nom únic per aquesta contrasenya d'aplicació o fes servir un nom generat aleatòriament." @@ -4102,19 +5039,29 @@ msgstr "Introdueix una paraula, una etiqueta o una frase vàlida per a silenciar #~ msgid "Please enter the verification code sent to {phoneNumberFormatted}." #~ msgstr "Introdueix el codi de verificació enviat a {phoneNumberFormatted}" -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "Introdueix el teu correu." -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "Introdueix la teva contrasenya també:" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Explica per què creieu que aquesta etiqueta ha estat aplicada incorrectament per {0}" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "Expliqueu perquè creus que els teus xats s'han desactivat incorrectament" + #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" msgstr "Inicia sessió com a @{0}" @@ -4130,11 +5077,12 @@ msgstr "Inicia sessió com a @{0}" msgid "Please Verify Your Email" msgstr "Verifica el teu correu" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "Espera que es generi la targeta de l'enllaç" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "Política" @@ -4146,13 +5094,13 @@ msgstr "Pornografia" #~ msgid "Pornography" #~ msgstr "Pornografia" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "Publica" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" msgstr "Publicació" @@ -4163,35 +5111,35 @@ msgstr "Publicació" #~ msgid "Post" #~ msgstr "Publicació" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "Publicació per {0}" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "Publicació per @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "Publicació eliminada" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Publicació oculta" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" msgstr "Publicació amagada per una paraula silenciada" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" msgstr "Publicació amagada per tu" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "Idioma de la publicació" @@ -4199,8 +5147,8 @@ msgstr "Idioma de la publicació" msgid "Post Languages" msgstr "Idiomes de les publicacions" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Publicació no trobada" @@ -4208,7 +5156,8 @@ msgstr "Publicació no trobada" msgid "posts" msgstr "publicacions" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "Publicacions" @@ -4216,7 +5165,7 @@ msgstr "Publicacions" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Les publicacions es poder silenciar segons el seu text, etiquetes o ambdues." -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "Publicacions amagades" @@ -4224,14 +5173,22 @@ msgstr "Publicacions amagades" msgid "Potentially Misleading Link" msgstr "Enllaç potencialment enganyós" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "Prem per provar de connectar de nou" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "Prem per canviar el proveïdor d'allotjament" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "Prem per a tornar-ho a provar" @@ -4240,45 +5197,57 @@ msgstr "Prem per a tornar-ho a provar" #~ msgid "Press to Retry" #~ msgstr "Prem per a tornar-ho a provar" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "Prem per veure els seguidors d'aquest compte que també segueixes" + #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Imatge anterior" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "Idioma principal" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "Prioritza els usuaris que segueixes" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "Privacitat" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Política de privacitat" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "Xateja en privat amb altres usuaris." + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "Processant…" -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "perfil" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "Perfil" @@ -4286,11 +5255,11 @@ msgstr "Perfil" msgid "Profile updated" msgstr "Perfil actualitzat" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "Protegeix el teu compte verificant el teu correu." -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "Públic" @@ -4298,37 +5267,56 @@ msgstr "Públic" msgid "Public, shareable lists of users to mute or block in bulk." msgstr "Llistes d'usuaris per a silenciar o bloquejar en massa, públiques i per a compartir." -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." msgstr "Llistes que poden nodrir canals, públiques i per a compartir." -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "Publica" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "Publica la resposta" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "Codi QR copiat en memòria!" + +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "Codi QR descarregat!" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "Codi QR desat a la teva galeria" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "Cita la publicació" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 -msgid "Quote post" -msgstr "Cita la publicació" +#: src/view/com/modals/Repost.tsx:66 +#~ msgctxt "action" +#~ msgid "Quote post" +#~ msgstr "Cita la publicació" #: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "Cita la publicació" +#~ msgctxt "action" +#~ msgid "Quote Post" +#~ msgstr "Cita la publicació" #: src/view/com/modals/Repost.tsx:56 #~ msgid "Quote Post" #~ msgstr "Cita la publicació" -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "Aleatori (també conegut com a \"Poster's Roulette\")" @@ -4336,11 +5324,19 @@ msgstr "Aleatori (també conegut com a \"Poster's Roulette\")" msgid "Ratios" msgstr "Proporcions" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" -msgstr "" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" +msgstr "Torna a activar el teu compte" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "Raó:" + +#: src/components/dms/MessageReportDialog.tsx:149 +#~ msgid "Reason: {0}" +#~ msgstr "Raó: {0}" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "Cerques recents" @@ -4352,11 +5348,26 @@ msgstr "Cerques recents" #~ msgid "Recommended Users" #~ msgstr "Usuaris recomanats" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "Torna a connectar" + +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "Carrega les converses de nou" + #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Elimina" @@ -4365,11 +5376,15 @@ msgstr "Elimina" #~ msgid "Remove {0} from my feeds?" #~ msgstr "Vols eliminar {0} dels teus canals?" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "Elimina a {displayName} de l'starter pack" + #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Elimina el compte" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "Elimina l'avatar" @@ -4377,9 +5392,13 @@ msgstr "Elimina l'avatar" msgid "Remove Banner" msgstr "Elimina el bàner" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "Elimina l'incrustat" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "Elimina el canal" @@ -4387,15 +5406,16 @@ msgstr "Elimina el canal" msgid "Remove feed?" msgstr "Vols eliminar el canal?" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "Elimina dels meus canals" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "Vols eliminar-lo dels teus canals?" @@ -4403,7 +5423,7 @@ msgstr "Vols eliminar-lo dels teus canals?" msgid "Remove image" msgstr "Elimina la imatge" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "Elimina la visualització prèvia de la imatge" @@ -4411,11 +5431,20 @@ msgstr "Elimina la visualització prèvia de la imatge" msgid "Remove mute word from your list" msgstr "Elimina la paraula silenciada de la teva llista" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "Elimina el perfil" + +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "Elimina el perfil de l'historial de cerca" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 msgid "Remove quote" msgstr "Elimina la citació" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "Elimina la republicació" @@ -4431,48 +5460,60 @@ msgstr "Elimina aquest canal dels meus canals" #~ msgid "Remove this feed from your saved feeds?" #~ msgstr "Vols eliminar aquest canal dels teus canals desats?" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "Elimina de la llista" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" msgstr "Eliminat dels meus canals" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" msgstr "Eliminat dels teus canals" #: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "Elimina la miniatura per defecte de {0}" +#~ msgid "Removes default thumbnail from {0}" +#~ msgstr "Elimina la miniatura per defecte de {0}" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" msgstr "Elimina la publicació amb la citació" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 -msgid "Replace with Discover" +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" msgstr "" -#: src/view/screens/Profile.tsx:194 +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 +msgid "Replace with Discover" +msgstr "Canvia amb Discover" + +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "Respostes" -#: src/view/com/threadgate/WhoCanReply.tsx:98 +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "Respostes deshabilitades" + +#: src/view/com/threadgate/WhoCanReply.tsx:123 +#~ msgid "Replies on this thread are disabled" +#~ msgstr "Les respostes a aquest fil de debat estan deshabilitades" + +#: src/components/WhoCanReply.tsx:243 msgid "Replies to this thread are disabled" msgstr "Les respostes a aquest fil de debat estan deshabilitades" -#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "Respon" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "Filtres de resposta" @@ -4482,13 +5523,26 @@ msgstr "Filtres de resposta" #~ msgid "Reply to <0/>" #~ msgstr "Resposta a <0/>" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "Resposta a <0><1/>" -#: src/components/dms/MessageMenu.tsx:109 +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" +msgstr "Respon a una publicació bloquejada" + +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 msgid "Report" msgstr "Informa" @@ -4501,79 +5555,90 @@ msgstr "Informa" #~ msgid "Report account" #~ msgstr "Informa del compte" -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "Informa del compte" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" -msgstr "" +msgstr "Informa d'aquesta conversa" #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "Diàleg de l'informe" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "Informa del canal" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "Informa de la llista" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" msgstr "Informa del missatge" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "Informa de la publicació" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "Informa sobre l'starter pack" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "Informa d'aquest contingut" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "Informa d'aquest canal" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "Informa d'aquesta llista" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" -msgstr "" +msgstr "Informa d'aquest missatge" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "Informa d'aquesta publicació" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "Informa sobre aquest starter pack" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "Informa d'aquest usuari" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "Republica" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "Republica" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "Republica o cita la publicació" @@ -4585,7 +5650,7 @@ msgstr "Republica o cita la publicació" msgid "Reposted By" msgstr "Republicat per" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "Republicat per {0}" @@ -4597,15 +5662,20 @@ msgstr "Republicat per {0}" #~ msgid "Reposted by <0/>" #~ msgstr "Republicada per <0/>" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "Republicat per <0><1/>" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "ha republicat la teva publicació" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "Republicacions d'aquesta publicació" @@ -4618,20 +5688,20 @@ msgstr "Demana un canvi" #~ msgid "Request code" #~ msgstr "Demana un codi" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "Demana un codi" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "Requereix un text alternatiu abans de publicar" #: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" -msgstr "Sol·licita el codi de correu per iniciar sessió al teu compte" +msgstr "Sol·licita el codi de correu per a iniciar sessió al teu compte" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "Requerit per aquest proveïdor" @@ -4640,11 +5710,11 @@ msgstr "Requerit per aquest proveïdor" msgid "Resend email" msgstr "Torna a enviar el correu" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "Codi de restabliment" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "Codi de restabliment" @@ -4652,8 +5722,8 @@ msgstr "Codi de restabliment" #~ msgid "Reset onboarding" #~ msgstr "Restableix la incorporació" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "Restableix l'estat de la incorporació" @@ -4665,20 +5735,20 @@ msgstr "Restableix la contrasenya" #~ msgid "Reset preferences" #~ msgstr "Restableix les preferències" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "Restableix l'estat de les preferències" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "Restableix l'estat de la incorporació" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "Restableix l'estat de les preferències" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "Torna a intentar iniciar sessió" @@ -4687,15 +5757,16 @@ msgstr "Torna a intentar iniciar sessió" msgid "Retries the last action, which errored out" msgstr "Torna a intentar l'última acció, que ha donat error" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -4706,7 +5777,8 @@ msgstr "Torna-ho a provar" #~ msgstr "Torna-ho a provar" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "Torna a la pàgina anterior" @@ -4715,7 +5787,7 @@ msgid "Returns to home page" msgstr "Torna a la pàgina d'inici" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "Torna a la pàgina anterior" @@ -4724,21 +5796,23 @@ msgstr "Torna a la pàgina anterior" #~ msgstr "ENTORN DE PROVES. Les publicacions i els comptes no són permanents." #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Desa" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "Desa" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Desa el text alternatiu" @@ -4754,20 +5828,29 @@ msgstr "Desa els canvis" msgid "Save handle change" msgstr "Desa el canvi d'identificador" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "Desa la imatge" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "Desa la imatge retallada" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "Desa el codi QR" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" msgstr "Desa-ho als meus canals" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" msgstr "Canals desats" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" msgstr "S'ha desat a la teva galeria d'imatges" @@ -4775,8 +5858,8 @@ msgstr "S'ha desat a la teva galeria d'imatges" #~ msgid "Saved to your camera roll." #~ msgstr "S'ha desat a la teva galeria d'imatges." -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "S'ha desat als teus canals." @@ -4792,37 +5875,45 @@ msgstr "Desa el canvi d'identificador a {handle}" msgid "Saves image crop settings" msgstr "Desa la configuració de retall d'imatges" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "Digues hola!" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "Ciència" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "Desplaça't cap a dalt" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "Cerca" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "Cerca per \"{query}\"" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" msgstr "Cerca per \"{searchText}\"" @@ -4842,25 +5933,32 @@ msgstr "Cerca totes les publicacions amb l'etiqueta {displayTag}" #~ msgid "Search for all posts with tag {tag}" #~ msgstr "Cerca totes les publicacions amb l'etiqueta {tag}" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." -msgstr "Cerca algú amb qui començar una conversa." +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." +msgstr "Cerca canals que vulgueu suggerir als altres." + +#: src/components/dms/NewChat.tsx:226 +#~ msgid "Search for someone to start a conversation with." +#~ msgstr "Cerca algú amb qui començar una conversa." -#: src/view/com/auth/LoggedOut.tsx:105 #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "Cerca usuaris" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "Cerca GIF" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" msgstr "Cerca perfils" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "Cerca Tenor" @@ -4893,11 +5991,11 @@ msgstr "Mostra les publicacions amb <0>{displayTag} d'aquest usuari" #~ msgstr "Mostra les publicacions amb <0>{tag} d'aquest usuari" #: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "Mostra el perfil" +#: src/view/com/util/UserAvatar.tsx:402 +#~ msgid "See profile" +#~ msgstr "Mostra el perfil" -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "Consulta aquesta guia" @@ -4911,7 +6009,7 @@ msgstr "Selecciona {item}" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 msgid "Select a color" -msgstr "" +msgstr "Selecciona un color" #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" @@ -4919,11 +6017,11 @@ msgstr "Selecciona el compte" #: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 msgid "Select an avatar" -msgstr "" +msgstr "Selecciona un avatar" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 msgid "Select an emoji" -msgstr "" +msgstr "Selecciona un emoji" #: src/view/com/modals/ServerInput.tsx:75 #~ msgid "Select Bluesky Social" @@ -4933,15 +6031,15 @@ msgstr "" msgid "Select from an existing account" msgstr "Selecciona d'un compte existent" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" -msgstr "Tria GIF" +msgstr "Selecciona GIF" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" -msgstr "Tria GIF \"{0}\"" +msgstr "Selecciona GIF \"{0}\"" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "Selecciona els idiomes" @@ -4959,14 +6057,14 @@ msgstr "Selecciona l'opció {i} de {numItems}" #~ msgstr "Selecciona el servei" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "Selecciona alguns d'aquests comptes per a seguir-los" +#~ msgid "Select some accounts below to follow" +#~ msgstr "Selecciona alguns d'aquests comptes per a seguir-los" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" -msgstr "" +msgstr "Selecciona el {emojiName} emoji com al teu avatar" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "Selecciona els serveis de moderació als quals voleu informar" @@ -4975,14 +6073,18 @@ msgid "Select the service that hosts your data." msgstr "Selecciona el servei que allotja les teves dades." #: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" -msgstr "Selecciona els canals d'actualitat per a seguir d'aquesta llista" +#~ msgid "Select topical feeds to follow from the list below" +#~ msgstr "Selecciona els canals d'actualitat per a seguir d'aquesta llista" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" +msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "Selecciona què vols veure (o què no vols veure) i nosaltres farem la resta." +#~ msgid "Select what you want to see (or not see), and we’ll handle the rest." +#~ msgstr "Selecciona què vols veure (o què no vols veure) i nosaltres farem la resta." -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." msgstr "Selecciona quins idiomes vols que incloguin els canals a què estàs subscrit. Si no en selecciones cap, es mostraran tots." @@ -4990,15 +6092,15 @@ msgstr "Selecciona quins idiomes vols que incloguin els canals a què estàs sub #~ msgid "Select your app language for the default text to display in the app" #~ msgstr "Selecciona l'idioma de l'aplicació perquè el text predeterminat es mostri en aquesta" -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "Selecciona l'idioma de l'aplicació perquè el text predeterminat es mostri a l'aplicació." -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "Selecciona la teva data de naixement" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "Selecciona els teus interessos d'entre aquestes opcions" @@ -5006,28 +6108,32 @@ msgstr "Selecciona els teus interessos d'entre aquestes opcions" #~ msgid "Select your phone's country" #~ msgstr "Selecciona el país del teu telèfon" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." msgstr "Selecciona el teu idioma preferit per a les traduccions al teu canal." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "Selecciona els teus canals algorítmics primaris" +#~ msgid "Select your primary algorithmic feeds" +#~ msgstr "Selecciona els teus canals algorítmics primaris" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" -msgstr "Selecciona els teus canals algorítmics secundaris" +#~ msgid "Select your secondary algorithmic feeds" +#~ msgstr "Selecciona els teus canals algorítmics secundaris" + +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" +msgstr "Envia un lloc web net!" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Envia correu de confirmació" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "Envia correu" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "Envia correu" @@ -5036,20 +6142,23 @@ msgstr "Envia correu" #~ msgid "Send Email" #~ msgstr "Envia correu" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "Envia comentari" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" msgstr "Envia el missatge" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." +msgstr "Envia el missatge a..." + +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "Envia informe" @@ -5066,7 +6175,12 @@ msgstr "Envia informe a {0}" msgid "Send verification email" msgstr "Envia un correu de verificació" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "Envia per missatge directe" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "Envia un correu amb el codi de confirmació per l'eliminació del compte" @@ -5084,7 +6198,7 @@ msgstr "Adreça del servidor" #~ msgid "Set Age" #~ msgstr "Estableix l'edat" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "Estableix la data de naixement" @@ -5116,19 +6230,19 @@ msgstr "Estableix una nova contrasenya" #~ msgid "Set password" #~ msgstr "Estableix una contrasenya" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Posa \"No\" a aquesta opció per a amagar totes les publicacions citades del teu canal. Les republicacions encara seran visibles." -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Posa \"No\" a aquesta opció per a amagar totes les respostes del teu canal." -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Posa \"No\" a aquesta opció per a amagar totes les republicacions del teu canal." -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Posa \"Sí\" a aquesta opció per a mostrar les respostes en vista de fil de debat. Aquesta és una opció experimental." @@ -5136,7 +6250,7 @@ msgstr "Posa \"Sí\" a aquesta opció per a mostrar les respostes en vista de fi #~ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." #~ msgstr "Posa \"Sí\" a aquesta opció per a mostrar algunes publicacions dels teus canals en el teu canal de seguits. Aquesta és una opció experimental." -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Estableix aquesta configuració a \"Sí\" per a mostrar mostres dels teus canals desats al teu canal Seguint. Aquesta és una característica experimental." @@ -5148,23 +6262,23 @@ msgstr "Configura el teu compte" msgid "Sets Bluesky username" msgstr "Estableix un nom d'usuari de Bluesky" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "Estableix el tema a fosc" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "Estableix el tema a clar" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "Estableix el tema a la configuració del sistema" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "Estableix el tema fosc al tema fosc" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "Estableix el tema fosc al tema atenuat" @@ -5193,12 +6307,11 @@ msgstr "Estableix la relació d'aspecte de la imatge com a ampla" #~ msgid "Sets server for the Bluesky client" #~ msgstr "Estableix el servidor pel cient de Bluesky" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "Configuració" @@ -5210,45 +6323,86 @@ msgstr "Activitat sexual o nu eròtic." msgid "Sexually Suggestive" msgstr "Suggerent sexualment" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "Comparteix" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "Comparteix" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "Comparteix" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "Comparteix una història interessant!" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "Comparteix una dada divertida!" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "Comparteix de totes maneres" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "Comparteix el canal" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "Comparteix l'enllaç" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "Comparteix l'enllaç" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "Diàleg de compartició de l'enllaç" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "Comparteix el codi QR" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "Comparteix aquets starter pack" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "Comparteix aquets starter pack i ajuda a la gent de la teva comunitat a unir-se a Bluesky." + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "Comparteix el teu canal preferit!" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "Comparteix la web enllaçada" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "Mostra" @@ -5256,7 +6410,7 @@ msgstr "Mostra" #~ msgid "Show all replies" #~ msgstr "Mostra totes les respostes" -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" msgstr "Mostra el text alternatiu" @@ -5278,82 +6432,90 @@ msgstr "Mostra la insígnia i filtra-ho dels canals" #~ msgid "Show embeds from {0}" #~ msgstr "Mostra els incrustats de {0}" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "Mostra seguidors semblants a {0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "Mostra les respostes ocultes" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 msgid "Show less like this" msgstr "Mostra'n menys com aquest" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "Mostra més" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" msgstr "Mostra'n més com aquest" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "Mostra les respostes silenciades" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" msgstr "Mostra les publicacions dels meus canals" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "Mostra les publicacions citades" #: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "Mostra les publicacions citades en el canal Seguint" +#~ msgid "Show quote-posts in Following feed" +#~ msgstr "Mostra les publicacions citades en el canal Seguint" #: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "Mostra els citats a Seguint" +#~ msgid "Show quotes in Following" +#~ msgstr "Mostra els citats a Seguint" #: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "Mostra les republicacions al canal Seguint" +#~ msgid "Show re-posts in Following feed" +#~ msgstr "Mostra les republicacions al canal Seguint" -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "Mostra les respostes" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "Mostra les respostes dels comptes que segueixes abans que les altres." #: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "Mostra les respostes a Seguint" +#~ msgid "Show replies in Following" +#~ msgstr "Mostra les respostes a Seguint" #: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "Mostra les respostes al canal Seguint" +#~ msgid "Show replies in Following feed" +#~ msgstr "Mostra les respostes al canal Seguint" #: src/view/screens/PreferencesFollowingFeed.tsx:70 #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Mostra respostes amb almenys {value} {0}" -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "Mostra republicacions" #: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "Mostra les republicacions al canal Seguint" +#~ msgid "Show reposts in Following" +#~ msgstr "Mostra les republicacions al canal Seguint" -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "Mostra el contingut" #: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "Mostra usuaris" +#~ msgid "Show users" +#~ msgstr "Mostra usuaris" #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" @@ -5361,7 +6523,7 @@ msgstr "Mostra l'advertiment" #: src/lib/moderation/useLabelBehaviorDescription.ts:56 msgid "Show warning and filter from feeds" -msgstr "Mostra l'advertiment i filtra-ho del canals" +msgstr "Mostra l'advertiment i filtra-ho dels canals" #: src/view/com/profile/ProfileHeader.tsx:462 #~ msgid "Shows a list of users similar to this user." @@ -5375,17 +6537,17 @@ msgstr "Mostra les publicacions de {0} al teu canal" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -5408,7 +6570,7 @@ msgstr "Inicia sessió com a …" #: src/components/dialogs/Signin.tsx:75 msgid "Sign in or create your account to join the conversation!" -msgstr "Inicia sessió o crea el teu compte per unir-te a la conversa" +msgstr "Inicia sessió o crea el teu compte per a unir-te a la conversa" #: src/view/com/auth/login/LoginForm.tsx:140 #~ msgid "Sign into" @@ -5416,19 +6578,19 @@ msgstr "Inicia sessió o crea el teu compte per unir-te a la conversa" #: src/components/dialogs/Signin.tsx:46 msgid "Sign into Bluesky or create a new account" -msgstr "Inicia sessió o crea el teu compte per unir-te a la conversa" +msgstr "Inicia sessió o crea el teu compte per a unir-te a la conversa" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "Tanca sessió" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -5444,7 +6606,7 @@ msgstr "Registra't o inicia sessió per a unir-te a la conversa" msgid "Sign-in Required" msgstr "Es requereix iniciar sessió" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "S'ha iniciat sessió com a" @@ -5453,16 +6615,25 @@ msgstr "S'ha iniciat sessió com a" msgid "Signed in as @{0}" msgstr "S'ha iniciat sessió com a @{0}" +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "s'ha registrat amb el vostre starter pack" + #: src/view/com/modals/SwitchAccount.tsx:70 #~ msgid "Signs {0} out of Bluesky" #~ msgstr "Tanca la sessió de Bluesky de {0}" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "S'ha registrat sense cap starter pack" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "Salta aquest pas" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "Salta aquest flux" @@ -5470,59 +6641,84 @@ msgstr "Salta aquest flux" #~ msgid "SMS verification" #~ msgstr "Verificació per SMS" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "Desenvolupament de programari" -#: src/screens/Messages/Conversation/index.tsx:89 -msgid "Something went wrong" +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" msgstr "" +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "Algunes persones poden respondre" + +#: src/screens/StarterPack/Wizard/index.tsx:203 +#~ msgid "Some subtitle" +#~ msgstr "Algun subtítol" + +#: src/screens/Messages/Conversation/index.tsx:106 +msgid "Something went wrong" +msgstr "Alguna cosa ha fallat" + #: src/view/com/modals/ProfilePreview.tsx:62 #~ msgid "Something went wrong and we're not sure what." #~ msgstr "Alguna cosa ha fallat i no estem segurs de què." +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "Alguna cosa ha fallat, torna-ho a provar" + #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "Alguna cosa ha fallat, torna-ho a provar." -#: src/components/Lists.tsx:203 -#~ msgid "Something went wrong!" -#~ msgstr "Alguna cosa ha fallat." +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "Alguna cosa ha fallat." #: src/view/com/modals/Waitlist.tsx:51 #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "Alguna cosa ha fallat. Comprova el teu correu i torna-ho a provar." -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "La teva sessió ha caducat. Torna a iniciar-la." -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "Ordena les respostes" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "Ordena les respostes a la mateixa publicació per:" #: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" -msgstr "Font:" +#~ msgid "Source:" +#~ msgstr "Font:" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" +msgstr "Font: <0>{0}" + +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "Brossa" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "Brossa; excessives mencions o respostes" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "Esports" @@ -5534,15 +6730,50 @@ msgstr "Quadrat" #~ msgid "Staging" #~ msgstr "Posada en escena" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" msgstr "Comença un nou xat" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "Comença un xat amb {displayName}" + +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "Comença a xatejar" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "" + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "Starter pack" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "Starter pack de {0}" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "Aquest starter pack és invàlid" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "Starter packs" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." +msgstr "Els starter packs et permeten compartir els teus canals i persones preferides amb els teus amics." + #: src/view/screens/Settings/index.tsx:862 #~ msgid "Status page" #~ msgstr "Pàgina d'estat" -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" msgstr "Pàgina d'estat" @@ -5550,7 +6781,7 @@ msgstr "Pàgina d'estat" #~ msgid "Step" #~ msgstr "Pas" -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" msgstr "Pas {0} de {1}" @@ -5558,49 +6789,56 @@ msgstr "Pas {0} de {1}" #~ msgid "Step {0} of {numSteps}" #~ msgstr "Pas {0} de {numSteps}" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "L'emmagatzematge s'ha esborrat, cal que reinicieu l'aplicació ara." -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "Historial" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "Envia" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "Subscriure's" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "Subscriu-te a @{0} per a utilitzar aquestes etiquetes:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" -msgstr "Subscriu-te a l'Etiquetador" +msgstr "Subscriu-te a l'etiquetador" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "Subscriu-te al canal {0}" +#~ msgid "Subscribe to the {0} feed" +#~ msgstr "Subscriu-te al canal {0}" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "Subscriu-te a aquest etiquetador" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "Subscriure's a la llista" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "Usuaris suggerits per a seguir" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "Comptes suggerits" +#: src/view/screens/Search/Search.tsx:425 +#~ msgid "Suggested Follows" +#~ msgstr "Usuaris suggerits per a seguir" + +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Suggeriments per tu" @@ -5609,7 +6847,7 @@ msgstr "Suggeriments per tu" msgid "Suggestive" msgstr "Suggerent" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -5624,19 +6862,23 @@ msgstr "Suport" msgid "Switch Account" msgstr "Canvia el compte" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "Canvia a {0}" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "Canvia en compte amb el que tens iniciada la sessió" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "Registres del sistema" @@ -5656,29 +6898,51 @@ msgstr "Menú d'etiquetes: {displayTag}" msgid "Tall" msgstr "Alt" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "Toca per a veure-ho completament" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "Tecnologia" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "Explica un acudit!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "Explica'ns una mica més" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "Condicions" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Condicions del servei" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "Els termes utilitzats infringeixen els estàndards de la comunitat" @@ -5686,12 +6950,13 @@ msgstr "Els termes utilitzats infringeixen els estàndards de la comunitat" msgid "text" msgstr "text" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Camp d'introducció de text" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "Gràcies. El teu informe s'ha enviat." @@ -5699,12 +6964,21 @@ msgstr "Gràcies. El teu informe s'ha enviat." msgid "That contains the following:" msgstr "Això conté els següents:" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "Aquest identificador ja està agafat." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "No s'ha pogut trobar aquest starter pack." + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "El compte podrà interactuar amb tu després del desbloqueig." @@ -5720,15 +6994,24 @@ msgstr "Les directrius de la comunitat han estat traslladades a <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "La política de drets d'autoria ha estat traslladada a <0/>" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 -msgid "The feed has been replaced with Discover." +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "L'experiència és millor a l'aplicació. Baixa Bluesky ara i tornarem a començar on ho vas deixar." + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 +msgid "The feed has been replaced with Discover." +msgstr "S'ha canviat el canal per Discover." + +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "Les següents etiquetes s'han aplicat al teu compte." -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "Les següents etiquetes s'han aplicat als teus continguts." @@ -5736,8 +7019,8 @@ msgstr "Les següents etiquetes s'han aplicat als teus continguts." msgid "The following steps will help customize your Bluesky experience." msgstr "Els següents passos t'ajudaran a personalitzar la teva experiència a Bluesky." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "És possible que la publicació s'hagi esborrat." @@ -5745,6 +7028,10 @@ msgstr "És possible que la publicació s'hagi esborrat." msgid "The Privacy Policy has been moved to <0/>" msgstr "La política de privacitat ha estat traslladada a <0/>" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "L'starter pack que estàs provant de veure no és vàlid. En lloc d'això, podeu suprimir-lo." + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "El formulari de suport ha estat traslladat. Si necessites ajuda, <0/> o visita {HELP_DESK_URL} per a contactar amb nosaltres." @@ -5758,51 +7045,56 @@ msgid "The Terms of Service have been moved to" msgstr "Les condicions del servei han estat traslladades a" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" -msgstr "Hi ha molts canals per a provar:" +#~ msgid "There are many feeds to try:" +#~ msgstr "Hi ha molts canals per a provar:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." +msgstr "No hi ha límit de temps per a la desactivació del compte, torna quan vulguis." + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Hi ha hagut un problema per a contactar amb el servidor, comprova la teva connexió a internet i torna-ho a provar." -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Hi ha hagut un problema per a eliminar aquest canal, comprova la teva connexió a internet i torna-ho a provar." #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Hi ha hagut un problema per a actualitzar els teus canals, comprova la teva connexió a internet i torna-ho a provar." -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." -msgstr "Hi ha hagut un problema per connectar amb Tenor." +msgstr "Hi ha hagut un problema per a connectar amb Tenor." #: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "Hi ha hagut un problema per connectar al xat." +#~ msgid "There was an issue connecting to the chat." +#~ msgstr "Hi ha hagut un problema per a connectar al xat." -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "Hi ha hagut un problema per a contactar amb el servidor" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "Hi ha hagut un problema per a contactar amb el teu servidor" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Hi ha hagut un problema en obtenir les notificacions. Toca aquí per a tornar-ho a provar." -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Hi ha hagut un problema en obtenir les notificacions. Toca aquí per a tornar-ho a provar." @@ -5810,51 +7102,53 @@ msgstr "Hi ha hagut un problema en obtenir les notificacions. Toca aquí per a t msgid "There was an issue fetching the list. Tap here to try again." msgstr "Hi ha hagut un problema en obtenir la llista. Toca aquí per a tornar-ho a provar." -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Hi ha hagut un problema en obtenir les teves llistes. Toca aquí per a tornar-ho a provar." -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "S'ha produït un problema en enviar el teu informe. Comprova la teva connexió a Internet." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "Hi ha hagut un problema en sincronitzar les teves preferències amb el servidor" +#~ msgid "There was an issue syncing your preferences with the server" +#~ msgstr "Hi ha hagut un problema en sincronitzar les teves preferències amb el servidor" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Hi ha hagut un problema en obtenir les teves contrasenyes d'aplicació" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "Hi ha hagut un problema! {0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "Hi ha hagut un problema. Comprova la teva connexió a internet i torna-ho a provar." -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "S'ha produït un problema inesperat a l'aplicació. Fes-nos saber si això t'ha passat a tu!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "Hi ha hagut una gran quantitat d'usuaris nous a Bluesky! Activarem el teu compte tan aviat com puguem." @@ -5863,8 +7157,8 @@ msgstr "Hi ha hagut una gran quantitat d'usuaris nous a Bluesky! Activarem el te #~ msgstr "Aquest telèfon és erroni. Tria el teu país i introdueix el teu telèfon complert" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "Aquests són alguns comptes populars que et poden agradar:" +#~ msgid "These are popular accounts you might like:" +#~ msgstr "Aquests són alguns comptes populars que et poden agradar:" #~ msgid "This {0} has been labeled." #~ msgstr "Aquest {0} ha estat etiquetat." @@ -5877,13 +7171,25 @@ msgstr "Aquesta {screenDescription} ha estat etiquetada:" msgid "This account has requested that users sign in to view their profile." msgstr "Aquest compte ha sol·licitat que els usuaris estiguin registrats per a veure el seu perfil." -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "Aquest compte està bloquejat per una o més de les teves llistes de moderació. Per desbloquejar-lo, visita les llistes directament i elimina aquest usuari." + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "Aquesta apel·lació s'enviarà a <0>{0}." +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." +msgstr "Aquesta apel·lació s'enviarà al servei de moderació de Bluesky." + +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "Aquest xat s'ha desconnectat" + #: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." -msgstr "Aquest xat s'ha desconnectat degut a un problema de xarxa." +#~ msgid "This chat was disconnected due to a network error." +#~ msgstr "Aquest xat s'ha desconnectat per culpa de un problema de xarxa." #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." @@ -5898,39 +7204,49 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Aquest contingut està allotjat a {0}. Vols habilitat els continguts externs?" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." -msgstr "Aquest contingut no està disponible degut a que un dels usuaris involucrats ha bloquejat a l'altre." +msgstr "Aquest contingut no està disponible per culpa de que un dels usuaris involucrats ha bloquejat a l'altre." -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "Aquest contingut no es pot veure sense un compte de Bluesky." +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "Aquesta conversa és amb un compte suprimit o desactivat. Prem per obtenir opcions." + #: src/view/screens/Settings/ExportCarDialog.tsx:75 #~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." #~ msgstr "Aquesta funcionalitat està en beta. En <0>aquesta entrada al blog tens més informació." -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "Aquesta funció està en versió beta. Podeu obtenir més informació sobre les exportacions de repositoris en <0>aquesta entrada de bloc." -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Aquest canal està rebent moltes visites actualment i està temporalment inactiu. Prova-ho més tard." #: src/screens/Profile/Sections/Feed.tsx:59 #: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "Aquest canal està buit!" +#: src/view/screens/ProfileList.tsx:729 +#~ msgid "This feed is empty!" +#~ msgstr "Aquest canal està buit!" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Aquest canal està buit! Necessites seguir més usuaris o modificar la teva configuració d'idiomes." -#: src/view/com/posts/FeedShutdownMsg.tsx:97 +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." +msgstr "Aquest canal és buit." + +#: src/view/com/posts/FeedShutdownMsg.tsx:99 msgid "This feed is no longer online. We are showing <0>Discover instead." -msgstr "" +msgstr "Aquest canal ja no està en línia. En el seu lloc et mostrem <0>Discover." #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." @@ -5957,10 +7273,14 @@ msgid "This label was applied by the author." msgstr "Aquesta etiqueta ha estat aplicada per l'autor." #: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" -msgstr "" +#~ msgid "This label was applied by you" +#~ msgstr "Aquesta etiqueta ha estat aplicada per tu" -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." +msgstr "Aquesta etiqueta ha estat aplicada per tu." + +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "Aquest etiquetador no ha declarat quines etiquetes publica i pot ser que no estigui actiu." @@ -5968,32 +7288,32 @@ msgstr "Aquest etiquetador no ha declarat quines etiquetes publica i pot ser que msgid "This link is taking you to the following website:" msgstr "Aquest enllaç et porta a la web:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "Aquesta llista està buida!" #: src/screens/Profile/ErrorState.tsx:40 msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." -msgstr "Aquest servei de moderació no està disponible. Mira a continuació per obtenir més detalls. Si aquest problema persisteix, posa't en contacte amb nosaltres." +msgstr "Aquest servei de moderació no està disponible. Mira a continuació per a obtenir més detalls. Si aquest problema persisteix, posa't en contacte amb nosaltres." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "Aquest nom ja està en ús" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "Aquesta publicació ha estat esborrada." -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Aquesta publicació només és visible per als usuaris que han iniciat sessió. No serà visible per a les persones que no hagin iniciat sessió." -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." -msgstr "Aqeusta publicació no es mostrarà als canals." +msgstr "Aquesta publicació no es mostrarà als canals." -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Aquest perfil només és visible per als usuaris que han iniciat sessió. No serà visible per a les persones que no hagin iniciat sessió." @@ -6009,8 +7329,12 @@ msgstr "Això hauria de crear un registre de domini a:" msgid "This user doesn't have any followers." msgstr "Aquest usuari no té cap seguidor." +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "Aquest usuari t'ha bloquejat" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "Aquest usuari t'ha bloquejat. No pots veure les seves publicacions." @@ -6038,6 +7362,10 @@ msgstr "Aquest usuari està inclòs a la llista <0>{0} que has silenciat." #~ msgid "This user is included the <0/> list which you have muted." #~ msgstr "Aquest usuari està inclós a la llista <0/> que tens silenciada" +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "Aquest usuari és nou aquí. Prem per obtenir més informació sobre quan es van unir." + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "Aquest usuari no segueix a ningú." @@ -6054,30 +7382,34 @@ msgstr "Això suprimirà {0} de les teves paraules silenciades. Sempre la pots t #~ msgid "This will hide this post from your feeds." #~ msgstr "Això amagarà aquesta publicació dels teus canals." -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" msgstr "Preferències dels fils de debat" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "Preferències dels fils de debat" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "Preferències dels fils de debat actualitzades" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "Mode fils de debat" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "Preferències dels fils de debat" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." -msgstr "Per desactivar el mètode 2FA de correu, verifica el teu accés a l'adreça de correu." +msgstr "per a desactivar el mètode 2FA de correu, verifica el teu accés a l'adreça de correu." -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." -msgstr "" +msgstr "Per informar d'una conversa, informa d'un dels seus missatges a través de la pantalla de conversa. Això permet als nostres moderadors entendre el context del teu problema." #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" @@ -6087,16 +7419,16 @@ msgstr "A qui vols enviar aquest informe?" msgid "Toggle between muted word options." msgstr "Commuta entre les opcions de paraules silenciades." -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "Commuta el menú desplegable" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" -msgstr "Communta per a habilitar o deshabilitar el contingut per adults" +msgstr "Commuta per a habilitar o deshabilitar el contingut per a adults" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "Superior" @@ -6104,10 +7436,12 @@ msgstr "Superior" msgid "Transformations" msgstr "Transformacions" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "Tradueix" @@ -6120,11 +7454,15 @@ msgstr "Torna-ho a provar" #~ msgid "Try again" #~ msgstr "Torna-ho a provar" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "TV" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "Autenticació de dos factors" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" msgstr "Escriu aquí el teu missatge" @@ -6132,53 +7470,65 @@ msgstr "Escriu aquí el teu missatge" msgid "Type:" msgstr "Tipus:" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "Desbloqueja la llista" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "Deixa de silenciar la llista" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "No es pot contactar amb el teu servei. Comprova la teva connexió a internet." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "No s'ha pogut eliminar" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "Desbloqueja" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "Desbloqueja" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "Desbloqueja el compte" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "Desbloqueja el compte" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" msgstr "Vols desbloquejar el compte?" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "Desfés la republicació" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "Deixa de seguir" @@ -6187,12 +7537,12 @@ msgstr "Deixa de seguir" msgid "Unfollow" msgstr "Deixa de seguir" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "Deixa de seguir a {0}" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "Deixa de seguir el compte" @@ -6204,12 +7554,12 @@ msgstr "Deixa de seguir el compte" #~ msgid "Unlike" #~ msgstr "Desfés el m'agrada" -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "Desfés el m'agrada a aquest canal" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "Deixa de silenciar" @@ -6217,8 +7567,8 @@ msgstr "Deixa de silenciar" msgid "Unmute {truncatedTag}" msgstr "Deixa de silenciar {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "Deixa de silenciar el compte" @@ -6230,50 +7580,58 @@ msgstr "Deixa de silenciar totes les publicacions amb {displayTag}" #~ msgid "Unmute all {tag} posts" #~ msgstr "Deixa de silenciar totes les publicacions amb {tag}" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" -msgstr "Deixa de silenciar les notificacions" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" +msgstr "Deixa de silenciar la conversa" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/components/dms/ConvoMenu.tsx:140 +#~ msgid "Unmute notifications" +#~ msgstr "Deixa de silenciar les notificacions" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" msgstr "Deixa de silenciar el fil de debat" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "Deixa de fixar" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "Deixa de fixar a l'inici" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "Desancora la llista de moderació" +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "Ja no està fix als teus canals" + #: src/view/screens/ProfileFeed.tsx:346 #~ msgid "Unsave" #~ msgstr "No desis" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Dona't de baixa" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "Dona't de baixa d'aquest etiquetador" #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" +#~ msgid "Unwanted sexual content" +#~ msgstr "Contingut sexual no desitjat" -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 +#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:85 msgid "Unwanted Sexual Content" -msgstr "Contingut sexual no dessitjat" +msgstr "Contingut sexual no desitjat" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "Actualitza {displayName} a les Llistes" @@ -6289,28 +7647,28 @@ msgstr "Actualitza a {handle}" msgid "Updating..." msgstr "Actualitzant…" -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" -msgstr "" +msgstr "Enlloc d'això, penja una foto" #: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Puja un fitxer de text a:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "Puja de la càmera" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "Puja dels Arxius" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -6320,7 +7678,7 @@ msgstr "Puja de la biblioteca" msgid "Use a file on your server" msgstr "Utilitza un fitxer del teu servidor" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utilitza les contrasenyes d'aplicació per a iniciar sessió en altres clients de Bluesky, sense haver de donar accés total al teu compte o contrasenya." @@ -6344,13 +7702,13 @@ msgstr "Utilitza el meu navegador predeterminat" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 msgid "Use recommended" -msgstr "" +msgstr "Utilitza els recomanats" #: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "Utilitza el panell de DNS" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Utilitza-ho per a iniciar sessió a l'altra aplicació, juntament amb el teu identificador." @@ -6363,19 +7721,23 @@ msgid "Used by:" msgstr "Utilitzat per:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "Usuari bloquejat" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr "Usuari bloquejat per \"{0}\"" +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "Usuari bloquejat per una llista" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "Usuari bloquejat per una llista" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "L'usuari t'ha bloquejat" @@ -6387,46 +7749,53 @@ msgstr "L'usuari t'ha bloquejat" #~ msgid "User handle" #~ msgstr "Identificador d'usuari" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "Llista d'usuaris per {0}" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "Llista d'usuaris feta per <0/>" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "Llista d'usuaris feta per tu" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "Llista d'usuaris creada" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "Llista d'usuaris actualitzada" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "Llistes d'usuaris" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "Nom d'usuari o correu" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "Usuaris" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "usuaris seguits per <0/>" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "Els usuaris als que segueixo" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "Usuaris a \"{0}\"" @@ -6450,15 +7819,15 @@ msgstr "Valor:" msgid "Verify DNS Record" msgstr "Verifica els registres de DNS" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "Verifica el correu" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "Verifica el meu correu" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "Verifica el meu correu" @@ -6479,31 +7848,44 @@ msgstr "Verifica el teu correu" #~ msgid "Version {0}" #~ msgstr "Versió {0}" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" msgstr "Versió {appVersion} {bundleInfo}" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "Videojocs" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "Veure l'avatar de {0}" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "Veure el perfil de {0}" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "Veure el perfil de l'usuari bloquejat" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "Veure el registre de depuració" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "Veure els detalls" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "Veure els detalls per a informar d'una infracció dels drets d'autor" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "Veure el fil de debat complet" @@ -6511,13 +7893,15 @@ msgstr "Veure el fil de debat complet" msgid "View information about these labels" msgstr "Mostra informació sobre aquestes etiquetes" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Veure el perfil" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "Veure l'avatar" @@ -6525,10 +7909,15 @@ msgstr "Veure l'avatar" msgid "View the labeling service provided by @{0}" msgstr "Veure el servei d'etiquetatge proporcionat per @{0}" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "Veure els usuaris a qui els agrada aquest canal" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "Veure el teus canals i descobreix-ne més" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -6537,7 +7926,6 @@ msgstr "Visita el lloc web" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Adverteix" @@ -6557,15 +7945,15 @@ msgstr "Adverteix del contingut i filtra-ho dels canals" msgid "We couldn't find any results for that hashtag." msgstr "No hem trobat cap resultat per a aquest hashtag." -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" -msgstr "" +msgstr "No hem pogut carregar aquesta conversa" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Calculem {estimatedTime} fins que el teu compte estigui llest." -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Esperem que t'ho passis pipa. Recorda que Bluesky és:" @@ -6578,22 +7966,22 @@ msgid "We recommend avoiding common words that appear in many posts, since it ca msgstr "Recomanem evitar les paraules habituals que apareixen en moltes publicacions, ja que pot provocar que no es mostri cap publicació." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "Et recomanem el nostre canal \"Discover\":" +#~ msgid "We recommend our \"Discover\" feed:" +#~ msgstr "Et recomanem el nostre canal \"Discover\":" #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "No hem pogut carregar les teves preferències de data de naixement. Torna-ho a provar." -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "En aquest moment no hem pogut carregar els teus etiquetadors configurats." -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "No ens hem pogut connectar. Torna-ho a provar per a continuar configurant el teu compte. Si continua fallant, pots ometre aquest flux." -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "T'informarem quan el teu compte estigui llest." @@ -6601,15 +7989,19 @@ msgstr "T'informarem quan el teu compte estigui llest." #~ msgid "We'll look into your appeal promptly." #~ msgstr "Analitzarem la teva apel·lació ràpidament." -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "Ho farem servir per a personalitzar la teva experiència." -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "Tenim problemes de xarxa, torna-ho a provar" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "Ens fa molta il·lusió que t'uneixis a nosaltres!" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Ho sentim, però no hem pogut resoldre aquesta llista. Si això continua, posa't en contacte amb el creador de la llista, @{handleOrDid}." @@ -6617,26 +8009,46 @@ msgstr "Ho sentim, però no hem pogut resoldre aquesta llista. Si això continua msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Ho sentim, però no hem pogut carregar les teves paraules silenciades en aquest moment. Torna-ho a provar." -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Ens sap greu, però la teva cerca no s'ha pogut fer. Prova-ho d'aquí una estona." -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "Ho sentim! La publicació a la qual estàs responent s'ha suprimit." + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Ens sap greu! No podem trobar la pàgina que estàs cercant." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." -msgstr "Ho sentim! Només et pots subscriure a deu etiquetadors i has arribat al teu límit de deu." +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 +#~ msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#~ msgstr "Ho sentim! Només et pots subscriure a deu etiquetadors i has arribat al teu límit de deu." + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "Ho sentim! Només pots subscriure't a vint etiquetadors i has arribat al teu límit de vint." + +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" +msgstr "Bentornat!" #: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Us donem la benvinguda a <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "Benvingut, col·lega!" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" -msgstr "Quins són els teus interesos?" +msgstr "Quins són els teus interessos?" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "Com vols anomenar al teu starter pack?" #: src/view/com/modals/report/Modal.tsx:169 #~ msgid "What is the issue with this {collectionName}?" @@ -6647,7 +8059,7 @@ msgstr "Quins són els teus interesos?" #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "Què hi ha de nou" @@ -6659,36 +8071,53 @@ msgstr "En quins idiomes està aquesta publicació?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Quins idiomes t'agradaria veure en els teus canals algorítmics?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "Qui et pot enviar missatges?" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "Qui hi pot respondre" -#: src/screens/Home/NoFeedsPinned.tsx:92 -msgid "Whoops!" -msgstr "" +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "Diàleg de qui pot respondre" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "Qui pot respondre?" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 +msgid "Whoops!" +msgstr "Vaja!" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "Per què s'hauria de revisar aquest contingut?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "Per què s'hauria de revisar aquest canal?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "Per què s'hauria de revisar aquesta llista?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" -msgstr "" +msgstr "Per què s'hauria de revisar aquest missatge?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "Per què s'hauria de revisar aquesta publicació?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "Per què s'hauria de revisar aquest starter pack?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "Per què s'hauria de revisar aquest usuari?" @@ -6696,21 +8125,22 @@ msgstr "Per què s'hauria de revisar aquest usuari?" msgid "Wide" msgstr "Amplada" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" msgstr "Escriu un missatge" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "Escriu una publicació" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "Escriu la teva resposta" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "Escriptors" @@ -6719,20 +8149,41 @@ msgstr "Escriptors" #~ msgstr "XXXXXX" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "Sí" -#: src/components/dms/MessageItem.tsx:158 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "Sí, desactiva'l" + +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "Sí, elimina aquest starter pack" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "Sí, torna a activar el meu compte" + +#: src/components/dms/MessageItem.tsx:182 msgid "Yesterday, {time}" msgstr "Ahir, {time}" -#: src/screens/Deactivated.tsx:136 +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "tu" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "Tu" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "Estàs a la cua." @@ -6740,33 +8191,53 @@ msgstr "Estàs a la cua." msgid "You are not following anyone." msgstr "No segueixes a ningú." -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "També pots descobrir nous canals personalitzats per a seguir." +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "També pots desactivar el teu compte temporalment i reactivar-lo en qualsevol moment." + #: src/view/com/auth/create/Step1.tsx:106 #~ msgid "You can change hosting providers at any time." #~ msgstr "Pots canviar el teu proveïdor d'allotjament quan vulguis." #: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." -msgstr "Pots canviar aquests paràmetres més endavant." +#~ msgid "You can change these settings later." +#~ msgstr "Pots canviar aquests paràmetres més endavant." + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "Pots canviar-ho quan vulguis." + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "Pots continuar les converses en curs independentment de la configuració que triïs." #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." msgstr "Ara pots iniciar sessió amb la nova contrasenya." +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "Pots reactivar el teu compte per continuar iniciant la sessió. El teu perfil i les publicacions seran visibles per a altres usuaris." + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "No tens cap seguidor." +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "No segueixes cap usuari que segueixi @{name}." + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Encara no tens codis d'invitació! Te n'enviarem quan portis una mica més de temps a Bluesky." -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." msgstr "No tens cap canal fixat." @@ -6774,28 +8245,32 @@ msgstr "No tens cap canal fixat." #~ msgid "You don't have any saved feeds!" #~ msgstr "No tens cap canal desat!" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." msgstr "No tens cap canal desat." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Has bloquejat l'autor o has estat bloquejat per ell." +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "Has bloquejat aquest usuari" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "Has bloquejat aquest usuari. No pots veure el seu contingut." #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Has entrat un codi invàlid. Hauria de ser tipus XXXXX-XXXXX." -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "Has amagat aquesta publicació" @@ -6804,11 +8279,11 @@ msgid "You have hidden this post." msgstr "Has amagat aquesta publicació." #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "Has silenciat aquest compte." -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "Has silenciat aquest usuari" @@ -6816,18 +8291,22 @@ msgstr "Has silenciat aquest usuari" #~ msgid "You have muted this user." #~ msgstr "Has silenciat aquest usuari." -#: src/view/com/feeds/ProfileFeedgens.tsx:144 +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "Encara no tens cap conversa. Comença'n una!" + +#: src/view/com/feeds/ProfileFeedgens.tsx:137 msgid "You have no feeds." msgstr "No tens canals." -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." msgstr "No tens llistes." #: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "Encara no tens missatges. Comença una conversa amb algú!" +#~ msgid "You have no messages yet. Start a conversation with someone!" +#~ msgstr "Encara no tens missatges. Comença una conversa amb algú!" #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." @@ -6837,7 +8316,7 @@ msgstr "Encara no has bloquejat cap compte. Per a bloquejar un compte, ves al se #~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." #~ msgstr "Encara no has bloquejat cap compte. Per a fer-ho, ves al seu perfil i selecciona \"Bloqueja el compte\" en el menú del seu compte." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Encara no has creat cap contrasenya d'aplicació. Pots fer-ho amb el botó d'aquí sota." @@ -6849,39 +8328,71 @@ msgstr "Encara no has silenciat cap compte. per a silenciar un compte, ves al se #~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." #~ msgstr "Encara no has silenciat cap compte. Per a fer-ho, al seu perfil i selecciona \"Silencia compte\" en el menú del seu compte." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "Has arribat al final" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "Encara no has creat cap starter pack!" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Encara no has silenciat cap paraula ni etiqueta" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." -msgstr "" +msgstr "Pots apel·lar les etiquetes que no són pròpies si creus que s'han col·locat per error." -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Pots apel·lar aquestes etiquetes si creus que s'han col·locat per error." +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "Només pots afegir 50 canals" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "Només pots afegir 50 perfils" + #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." -msgstr "Has de tenir 13 anys o més per registrar-te" +msgstr "Has de tenir 13 anys o més per a registrar-te" #: src/view/com/modals/ContentFilteringSettings.tsx:175 #~ msgid "You must be 18 or older to enable adult content." #~ msgstr "Has de tenir 18 anys o més per a habilitar el contingut per a adults." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" -msgstr "Has de tenir 18 anys o més per a habilitar el contingut per a adults" +#~ msgid "You must be 18 years or older to enable adult content" +#~ msgstr "Has de tenir 18 anys o més per a habilitar el contingut per a adults" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." +msgstr "Has de seguir almenys set persones més per generar un starter pack." + +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "Has de concedir accés a la teva galeria per desar un codi QR" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "Has de concedir accés a la teva galeria per desar la imatge." + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "Has d'escollir almenys un etiquetador per a un informe" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "Abans has desactivat @{0}." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "Ja no rebràs més notificacions d'aquest debat" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "Ara rebràs notificacions d'aquest debat" @@ -6889,60 +8400,98 @@ msgstr "Ara rebràs notificacions d'aquest debat" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Rebràs un correu amb un \"codi de restabliment\". Introdueix aquí el codi i després la teva contrasenya nova." -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" msgstr "Tu: {0}" -#: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "Tu tens el control" +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "Tu: {defaultEmbeddedContentMessage}" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "Tu: {short}" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "Seguiràs els usuaris i els canals suggerits un cop hagis acabat de crear el teu compte!" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "Seguiràs els usuaris suggerits un cop hagis acabat de crear el teu compte!" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "Seguiràs aquestes persones i {0} altres" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "Seguiràs a aquesta gent de seguida" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" +msgstr "Estaràs al dia amb aquests canals" + +#: src/screens/Onboarding/StepModeration/index.tsx:60 +#~ msgid "You're in control" +#~ msgstr "Tu tens el control" + +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "Estàs a la cua" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "Has iniciat sessió amb una contrasenya d'aplicació. Inicia sessió amb la teva contrasenya principal per continuar la desactivació del teu compte." + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "Ja està tot llest!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "Has triat amagar una paraula o una etiqueta d'aquesta publicació." -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Has arribat al final del vostre cabal! Cerca alguns comptes més per a seguir." -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "El teu compte" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "El teu compte s'ha eliminat" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "El repositori del teu compte, que conté tots els registres de dades públiques, es pot baixar com a fitxer \"CAR\". Aquest fitxer no inclou incrustacions multimèdia, com ara imatges, ni les teves dades privades, que s'han d'obtenir per separat." -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "La teva data de naixement" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "Els teus xats s'han desactivat" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "La teva elecció es desarà, però es pot canviar més endavant a la configuració." #: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "El teu canal per defecte és \"Seguint\"" +#~ msgid "Your default feed is \"Following\"" +#~ msgstr "El teu canal per defecte és \"Seguint\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "El teu correu no sembla vàlid." @@ -6958,11 +8507,15 @@ msgstr "El teu correu s'ha actualitzat, però no ha estat verificat. En el pas s msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "El teu correu encara no s'ha verificat. Et recomanem fer-ho per seguretat." -#: src/view/com/posts/FollowingEmptyState.tsx:47 +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:43 msgid "Your following feed is empty! Follow more users to see what's happening." msgstr "El teu canal de seguint està buit! Segueix a més usuaris per a saber què està passant." -#: src/screens/Signup/StepHandle.tsx:73 +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "El teu identificador complet serà" @@ -6984,30 +8537,34 @@ msgstr "El teu identificador complet serà <0>@{0}" msgid "Your muted words" msgstr "Les teves paraules silenciades" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "S'ha canviat la teva contrasenya!" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "S'ha publicat" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Les teves publicacions, m'agrades i bloquejos són públics. Els comptes silenciats són privats." -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "El teu perfil" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "El teu perfil, publicacions, fonts i llistes ja no seran visibles per a altres usuaris de Bluesky. Pots reactivar el teu compte en qualsevol moment iniciant sessió." + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "S'ha publicat la teva resposta" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" -msgstr "" +msgstr "El teu informe s'enviarà al servei de moderació de Bluesky" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "El teu identificador d'usuari" diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index 3033e6d425..23cd6f692d 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -8,208 +8,254 @@ msgstr "" "Language: de\n" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-03-12 13:00+0000\n" -"Last-Translator: \n" -"Language-Team: Translators in PR 2319, PythooonUser, cdfzo\n" +"PO-Revision-Date: 2024-07-06 17:45+0100\n" +"Last-Translator: surfdude29\n" +"Language-Team: Translators in PR 2319, surfdude29, PythooonUser, cdfzo, imbstt\n" "Plural-Forms: \n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "(enthält eingebettete Inhalte)" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(keine E-Mail)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" -msgstr "" +msgstr "{0, plural, one {{formattedCount} anderer} other {{formattedCount} andere}}" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" -msgstr "" +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" +msgstr "{0, plural, one {# Label wurde auf dieses Konto platziert} other {# Labels wurden auf dieses Konto platziert}}" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" -msgstr "" +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" +msgstr "{0, plural, one {# Label wurde auf diesen Inhalt gesetzt} other {# Labels wurden auf diesen Inhalt gesetzt}}" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" -msgstr "" +msgstr "{0, plural, one {# Repost} other {# Reposts}}" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" -msgstr "" +msgstr "{0, plural, one {Follower} other {Follower}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" -msgstr "" +msgstr "{0, plural, one {Folge ich} other {Folge ich}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" -msgstr "" +msgstr "{0, plural, one {Liken (# Like)} other {Liken (# Likes)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" -msgstr "" +msgstr "{0, plural, one {Like} other {Likes}}" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{0, plural, one {Von # Konto geliked} other {Von # Konten geliked}}" #: src/screens/Profile/Header/Metrics.tsx:59 msgid "{0, plural, one {post} other {posts}}" -msgstr "" +msgstr "{0, plural, one {Beitrag} other {Beiträge}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" -msgstr "" +msgstr "{0, plural, one {Antworten (# Antwort)} other {Antworten (# Antworten)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" -msgstr "" +msgstr "{0, plural, one {Repost} other {Reposts}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" -msgstr "" +msgstr "{0, plural, one {Like aufheben (# Like)} other {Like aufheben (# Likes)}}" -#: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" -msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "{0} sind diese Woche beigetreten" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "{0} Personen haben dieses Startpaket bereits verwendet!" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "Der Avatar von {0}" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "Die Lieblings-Feeds und -Leute von {0} – mach mit!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" +msgstr "Startpaket von {0}" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{count, plural, one {Geliked von # Konto} other {Geliked von # Konten}}" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "{diff, plural, one {Tag} other {Tage}}" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "{diff, plural, one {Stunde} other {Stunden}}" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "{diff, plural, one {Minute} other {Minuten}}" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "{diff, plural, one {Monat} other {Monate}}" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "{diffSeconds, plural, one {Sekunde} other {Sekunden}}" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "Startpaket von {displayName}" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" -msgstr "" +msgstr "{estimatedTimeHrs, plural, one {Stunde} other {Stunden}}" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" -msgstr "" +msgstr "{estimatedTimeMins, plural, one {Minute} other {Minuten}}" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" -msgstr "{following} folge ich" +msgstr "{following} Folge ich" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "{handle} kann keine Nachricht gesendet werden" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{likeCount, plural, one {Geliked von # Konto} other {Geliked von # Konten}}" -#: src/view/shell/Drawer.tsx:461 +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} ungelesen" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "{profileName} ist vor {0} Bluesky beigetreten" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "{profileName} ist vor {0} Bluesky mit einem Startpaket beigetreten" + #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" -msgstr "" +msgstr "{value, plural, =0 {Alle Antworten anzeigen} one {Antworten mit mindestens # Like anzeigen} other {Antworten mit mindestens # Likes anzeigen}}" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "<0/> Mitglieder" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}, <1>{1} und {2, plural, one {# weitere Person} other {# weitere Personen}} sind in deinem Startpaket enthalten" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}, <1>{1} und {2, plural, one {# weiterer Feed} other {# weitere Feeds}} sind in deinem Startpaket enthalten" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" -msgstr "" +msgstr "<0>{0} {1, plural, one {Follower} other {Follower}}" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" -msgstr "" +msgstr "<0>{0} {1, plural, one {Folge ich} other {Folge ich}}" -#: src/view/shell/Drawer.tsx:96 -#~ msgid "<0>{0} following" -#~ msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "<0>{0} und<1> <2>{1} sind in deinem Startpaket enthalten" -#: src/components/ProfileHoverCard/index.web.tsx:437 -#~ msgid "<0>{followers} <1>{pluralizedFollowers}" -#~ msgstr "" - -#: src/components/ProfileHoverCard/index.web.tsx:449 -#: src/screens/Profile/Header/Metrics.tsx:45 -#~ msgid "<0>{following} <1>following" -#~ msgstr "<0>{following} <1>folge ich" - -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:31 -#~ msgid "<0>Choose your<1>Recommended<2>Feeds" -#~ msgstr "<0>Wähle deine<1>empfohlenen<2>Feeds" - -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:38 -#~ msgid "<0>Follow some<1>Recommended<2>Users" -#~ msgstr "<0>Folge einigen<1>empfohlenen<2>Nutzern" +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "<0>{0} ist in deinem Startpaket enthalten" #: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." -msgstr "" +msgstr "<0>Unzutreffend. Diese Warnung ist nur für Beiträge mit angehängten Medien verfügbar." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:21 -#~ msgid "<0>Welcome to<1>Bluesky" -#~ msgstr "<0>Willkommen bei<1>Bluesky" +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "<0>Du und<1> <2>{0} seid in deinem Startpaket enthalten" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "⚠Ungültiger Handle" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" -msgstr "" +msgstr "2FA Bestätigung" -#: src/view/com/util/moderation/LabelInfo.tsx:45 -#~ msgid "A content warning has been applied to this {0}." -#~ msgstr "Diese Seite wurde mit einer Inhaltswarnung versehen {0}." +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "Ein Hilfe-Tooltip" -#: src/lib/hooks/useOTAUpdate.ts:16 -#~ msgid "A new version of the app is available. Please update to continue using the app." -#~ msgstr "Eine neue Version der App ist verfügbar. Bitte aktualisiere die App, um sie weiter nutzen zu können." - -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "Zugriff auf Navigationslinks und Einstellungen" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "Zugang zum Profil und anderen Navigationslinks" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "Barrierefreiheit" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" -msgstr "" +msgstr "Einstellungen für Barrierefreiheit" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" -msgstr "" +msgstr "Einstellungen für Barrierefreiheit" -#: src/components/moderation/LabelsOnMe.tsx:42 -#~ msgid "account" -#~ msgstr "" - -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "Konto" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "Konto blockiert" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" -msgstr "" +msgstr "Konto gefolgt" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "Konto stummgeschaltet" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "Konto stummgeschaltet" @@ -225,37 +271,46 @@ msgstr "Kontoeinstellungen" msgid "Account removed from quick access" msgstr "Konto aus dem Schnellzugriff entfernt" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "Konto entblockiert" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "Konto entfolgt" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "Stummschaltung für Konto aufgehoben" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "Hinzufügen" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "Füge {0} weitere hinzu, um fortzufahren" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "Füge {displayName} zum Startpaket hinzu" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" -msgstr "Eine Inhaltswarnung hinzufügen" +msgstr "Inhaltswarnung hinzufügen" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" -msgstr "Einen Nutzer zu dieser Liste hinzufügen" +msgstr "Einen Benutzer zu dieser Liste hinzufügen" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "Konto hinzufügen" @@ -264,108 +319,108 @@ msgstr "Konto hinzufügen" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Alt-Text hinzufügen" -#: src/view/com/composer/GifAltText.tsx:175 -#~ msgid "Add ALT text" -#~ msgstr "" - -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "App-Passwort hinzufügen" -#: src/view/com/modals/report/InputIssueDetails.tsx:41 -#: src/view/com/modals/report/Modal.tsx:191 -#~ msgid "Add details" -#~ msgstr "Details hinzufügen" - -#: src/view/com/modals/report/Modal.tsx:194 -#~ msgid "Add details to report" -#~ msgstr "Details zum Report hinzufügen" - -#: src/view/com/composer/Composer.tsx:467 -#~ msgid "Add link card" -#~ msgstr "Link-Karte hinzufügen" - -#: src/view/com/composer/Composer.tsx:472 -#~ msgid "Add link card:" -#~ msgstr "Link-Karte hinzufügen:" - #: src/components/dialogs/MutedWords.tsx:157 msgid "Add mute word for configured settings" msgstr "Stummgeschaltetes Wort für konfigurierte Einstellungen hinzufügen" #: src/components/dialogs/MutedWords.tsx:86 msgid "Add muted words and tags" -msgstr "Füge stummgeschaltete Wörter und Tags hinzu" +msgstr "Stummgeschaltete Wörter und Tags hinzufügen" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" -msgstr "" +msgstr "Empfohlene Feeds hinzufügen" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" +msgstr "Füge deinem Startpaket einige Feeds hinzu!" + +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" -msgstr "" +msgstr "Füge den Standard-Feed nur von Personen, denen du folgst, hinzu" #: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Füge den folgenden DNS-Eintrag zu deiner Domain hinzu:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "Füge diesen Feed zu deinen Feeds hinzu" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "Zu Listen hinzufügen" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" msgstr "Zu meinen Feeds hinzufügen" -#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:139 -#~ msgid "Added" -#~ msgstr "Hinzugefügt" - -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "Zur Liste hinzugefügt" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" msgstr "Zu meinen Feeds hinzugefügt" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Passe die Anzahl der Likes an, die eine Antwort haben muss, um in deinem Feed angezeigt zu werden." #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Inhalt für Erwachsene" -#: src/view/com/modals/ContentFilteringSettings.tsx:141 -#~ msgid "Adult content can only be enabled via the Web at <0/>." -#~ msgstr "Inhalte für Erwachsene können nur über das Web unter <0/> aktiviert werden." +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "Inhalte für Erwachsene können nur über das Web unter <0>bsky.app aktiviert werden." #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." -msgstr "" +msgstr "Inhalte für Erwachsene sind deaktiviert." -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "Erweitert" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "Das Trainieren des Algorithmus ist abgeschlossen!" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "Allen Konten wurden gefolgt!" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." msgstr "All deine gespeicherten Feeds an einem Ort." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "Erlaube den Zugriff auf deine Direktnachrichten" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "Erlaube neue Nachrichten von" + #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "Hast du bereits einen Code?" @@ -375,23 +430,23 @@ msgstr "Bereits angemeldet als @{0}" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" msgstr "Alt-Text" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" -msgstr "" +msgstr "Alt-Text" #: src/view/com/composer/photos/Gallery.tsx:224 msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." -msgstr "Alt-Text beschreibt Bilder für blinde und sehbehinderte Nutzer und hilft, den Kontext für alle zu vermitteln." +msgstr "Alt-Text beschreibt Bilder für blinde und sehbehinderte Benutzer und hilft, den Kontext für alle zu vermitteln." #: src/view/com/modals/VerifyEmail.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 @@ -400,136 +455,151 @@ msgstr "Eine E-Mail wurde an {0} gesendet. Sie enthält einen Bestätigungscode, #: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." -msgstr "Eine E-Mail wurde an deine vorherige Adresse {0} gesendet. Sie enthält einen Bestätigungscode, den du unten eingeben kannst." +msgstr "Eine E-Mail wurde an deine vorherige Adresse, {0}, gesendet. Sie enthält einen Bestätigungscode, den du unten eingeben kannst." -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" -msgstr "" +msgstr "Ein Fehler ist aufgetreten" -#: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." -msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" +msgstr "Beim Generieren deines Startpakets ist ein Fehler aufgetreten. Möchtest du es erneut versuchen?" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "Beim Speichern des QR-Codes ist ein Fehler aufgetreten!" + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "Beim Versuch, allen zu folgen, ist ein Fehler aufgetreten." + +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "Ein Problem, das hier nicht aufgelistet ist" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." -msgstr "Es ist ein Problem aufgetreten, bitte versuche es erneut." +msgstr "Ein Problem ist aufgetreten, bitte versuche es erneut." -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" -msgstr "" +msgstr "Ein unbekannter Fehler ist aufgetreten" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "und" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "Tiere" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" -msgstr "" +msgstr "Animiertes GIF" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "Asoziales Verhalten" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "App-Sprache" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "App-Passwort gelöscht" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "App-Passwortnamen dürfen nur Buchstaben, Zahlen, Leerzeichen, Bindestriche und Unterstriche enthalten." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "App-Passwortnamen müssen mindestens 4 Zeichen lang sein." -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "App-Passwort-Einstellungen" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "App-Passwörter" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" -msgstr "" +msgstr "Anfechten" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" -msgstr "Kennzeichnung \"{0}\" anfechten" +msgstr "Kennzeichnung „{0}” anfechten" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#~ msgid "Appeal content warning" -#~ msgstr "Inhaltswarnungseinspruch" - -#: src/view/com/modals/AppealLabel.tsx:65 -#~ msgid "Appeal Content Warning" -#~ msgstr "Inhaltswarnungseinspruch" - -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" -msgstr "" +msgstr "Anfechtung gesendet" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 -#~ msgid "Appeal submitted." -#~ msgstr "Anfechtung abgeschickt." +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "Einspruch gegen diese Entscheidung" -#: src/view/com/util/moderation/LabelInfo.tsx:52 -#~ msgid "Appeal this decision" -#~ msgstr "Einspruch gegen diese Entscheidung" - -#: src/view/com/util/moderation/LabelInfo.tsx:56 -#~ msgid "Appeal this decision." -#~ msgstr "Einspruch gegen diese Entscheidung." - -#: src/view/screens/Settings/index.tsx:430 +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "Erscheinungsbild" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" -msgstr "" +msgstr "Standardmäßig empfohlene Feeds anwenden" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" -msgstr "Bist du sicher, dass du das App-Passwort \"{name}\" löschen möchtest?" +msgstr "Bist du sicher, dass du das App-Passwort „{name}” löschen möchtest?" -#: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." -msgstr "" +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." +msgstr "Möchtest du diese Nachricht wirklich löschen? Die Nachricht wird für dich gelöscht, nicht jedoch für den anderen Teilnehmer." -#: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." -msgstr "" +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" +msgstr "Möchtest du dieses Startpaket wirklich löschen?" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." +msgstr "Möchtest du diese Konversation wirklich verlassen? Deine Nachrichten werden für dich gelöscht, nicht jedoch für den anderen Teilnehmer." + +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Bist du sicher, dass du {0} von deinen Feeds entfernen möchtest?" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "Bist du sicher, dass du dies von deinen Feeds entfernen möchtest?" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "Bist du sicher, dass du diesen Entwurf verwerfen möchtest?" @@ -537,15 +607,12 @@ msgstr "Bist du sicher, dass du diesen Entwurf verwerfen möchtest?" msgid "Are you sure?" msgstr "Bist du sicher?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:322 -#~ msgid "Are you sure? This cannot be undone." -#~ msgstr "Bist du sicher? Dies kann nicht rückgängig gemacht werden." - #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" msgstr "Schreibst du auf <0>{0}?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "Kunst" @@ -553,37 +620,31 @@ msgstr "Kunst" msgid "Artistic or non-erotic nudity." msgstr "Künstlerische oder nicht-erotische Nacktheit." -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "Mindestens 3 Zeichen" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "Zurück" -#: src/view/com/post-thread/PostThread.tsx:480 -#~ msgctxt "action" -#~ msgid "Back" -#~ msgstr "Zurück" - -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "Ausgehend von deinem Interesse an {interestsText}" - -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "Grundlagen" @@ -591,60 +652,56 @@ msgstr "Grundlagen" msgid "Birthday" msgstr "Geburtstag" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "Geburtstag:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "Blockieren" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" -msgstr "" +msgstr "Konto blockieren" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "Konto blockieren" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "Konto blockieren?" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "Konten blockieren" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "Blockliste" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "Diese Konten blockieren?" -#: src/view/screens/ProfileList.tsx:320 -#~ msgid "Block this List" -#~ msgstr "Diese Liste blockieren" - -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "Blockiert" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "Blockierte Konten" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "Blockierte Konten" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Blockierte Konten können nicht in deinen Threads antworten, dich erwähnen oder anderweitig mit dir interagieren." @@ -652,19 +709,19 @@ msgstr "Blockierte Konten können nicht in deinen Threads antworten, dich erwäh msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Blockierte Konten können nicht in deinen Threads antworten, dich erwähnen oder anderweitig mit dir interagieren. Du wirst ihre Inhalte nicht sehen und sie werden daran gehindert, deine zu sehen." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "Blockierter Beitrag." -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Blockieren hindert diesen Kennzeichnungsdienst nicht daran, Kennzeichnungen zu deinem Konto hinzuzufügen." -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Die Blockierung ist öffentlich. Blockierte Konten können nicht in deinen Threads antworten, dich erwähnen oder anderweitig mit dir interagieren." -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." msgstr "Blockieren verhindert nicht, dass Kennzeichnungen zu deinem Konto hinzugefügt werden, verhindert aber, dass dieses Konto in deinen Threads antworten oder interagieren kann." @@ -681,24 +738,17 @@ msgstr "Bluesky" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "Bluesky ist ein offenes Netzwerk, in dem du deinen Hosting-Anbieter wählen kannst. Benutzerdefiniertes Hosting ist jetzt in der Beta-Phase für Entwickler verfügbar." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 -#~ msgid "Bluesky is flexible." -#~ msgstr "Bluesky ist flexibel." +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "Mit Freunden ist Bluesky besser!" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 -#~ msgid "Bluesky is open." -#~ msgstr "Bluesky ist offen." +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "Bluesky wählt eine Reihe von empfohlenen Konten von Personen in deinem Netzwerk aus." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 -#~ msgid "Bluesky is public." -#~ msgstr "Bluesky ist öffentlich." - -#: src/screens/Moderation/index.tsx:533 +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." -msgstr "Bluesky zeigt dein Profil und deine Beiträge nicht für abgemeldete Nutzer an. Andere Apps kommen dieser Aufforderung möglicherweise nicht nach." +msgstr "Bluesky zeigt dein Profil und deine Beiträge nicht für abgemeldete Benutzer an. Andere Apps kommen dieser Aufforderung möglicherweise nicht nach." #: src/lib/moderation/useLabelBehaviorDescription.ts:53 msgid "Blur images" @@ -708,40 +758,47 @@ msgstr "Bilder verwischen" msgid "Blur images and filter from feeds" msgstr "Bilder verwischen und aus Feeds herausfiltern" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "Bücher" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 -msgid "Browse other feeds" -msgstr "" +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" +msgstr "Stöbere auf der Seite „Explore” nach weiteren Konten" -#: src/view/screens/Settings/index.tsx:893 -#~ msgid "Build version {0} {1}" -#~ msgstr "Build-Version {0} {1}" +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "Stöbere auf der Seite „Explore” in weiteren Feeds" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "Weitere Vorschläge anzeigen" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "Stöbere auf der Seite „Explore” nach weiteren Vorschlägen" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 +msgid "Browse other feeds" +msgstr "Andere Feeds durchsuchen" #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "Business" -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "von —" -#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:100 -#~ msgid "by {0}" -#~ msgstr "von {0}" - #: src/components/LabelingServiceCard/index.tsx:56 msgid "By {0}" msgstr "Von {0}" -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" - -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "von <0/>" @@ -749,7 +806,7 @@ msgstr "von <0/>" msgid "By creating an account you agree to the {els}." msgstr "Mit dem Erstellen des Kontos akzeptierst du die {els}." -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "von dir" @@ -757,7 +814,7 @@ msgstr "von dir" msgid "Camera" msgstr "Kamera" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Darf nur Buchstaben, Zahlen, Leerzeichen, Bindestriche und Unterstriche enthalten. Muss mindestens 4 Zeichen lang sein, darf aber nicht länger als 32 Zeichen sein." @@ -765,14 +822,15 @@ msgstr "Darf nur Buchstaben, Zahlen, Leerzeichen, Bindestriche und Unterstriche #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -780,29 +838,29 @@ msgstr "Darf nur Buchstaben, Zahlen, Leerzeichen, Bindestriche und Unterstriche #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "Abbrechen" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "Abbrechen" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" -msgstr "Konto-Löschung abbrechen" +msgstr "Kontolöschung abbrechen" #: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" -msgstr "Handle ändern abbrechen" +msgstr "Handle-Änderung abbrechen" #: src/view/com/modals/crop-image/CropImage.web.tsx:159 msgid "Cancel image crop" @@ -812,34 +870,38 @@ msgstr "Bildbeschneidung abbrechen" msgid "Cancel profile editing" msgstr "Profilbearbeitung abbrechen" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "Beitrag zitieren abbrechen" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "Reaktivierung abbrechen und abmelden" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "Suche abbrechen" #: src/view/com/modals/LinkWarning.tsx:106 msgid "Cancels opening the linked website" -msgstr "" +msgstr "Bricht das Öffnen der verlinkten Website ab" #: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" -msgstr "" +msgstr "Ändern" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "Ändern" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "Handle ändern" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "Handle ändern" @@ -847,160 +909,176 @@ msgstr "Handle ändern" msgid "Change my email" msgstr "Meine E-Mail ändern" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "Passwort ändern" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" -msgstr "Passwort Ändern" +msgstr "Passwort ändern" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:73 msgid "Change post language to {0}" -msgstr "Beitragssprache in {0} ändern" - -#: src/view/screens/Settings/index.tsx:733 -#~ msgid "Change your Bluesky password" -#~ msgstr "Ändere dein Bluesky-Passwort" +msgstr "Beitragssprache auf {0} ändern" #: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "Deine E-Mail ändern" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" -msgstr "" +msgstr "Chat" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" -msgstr "" +msgstr "Chat stummgeschaltet" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" -msgstr "" +msgstr "Chat-Einstellungen" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "Chat-Einstellungen" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" -msgstr "" +msgstr "Chatstummschaltung aufgehoben" -#: src/screens/Messages/Conversation/index.tsx:26 -#~ msgid "Chat with {chatId}" -#~ msgstr "" - -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "Meinen Status prüfen" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:122 -#~ msgid "Check out some recommended feeds. Tap + to add them to your list of pinned feeds." -#~ msgstr "Schau dir einige empfohlene Feeds an. Tippe auf +, um sie zu deiner Liste der angehefteten Feeds hinzuzufügen." - -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:186 -#~ msgid "Check out some recommended users. Follow them to see similar users." -#~ msgstr "Schau dir einige empfohlene Nutzer an. Folge ihnen, um ähnliche Nutzer zu sehen." - -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." -msgstr "" +msgstr "Schau in deinem E-Mail-Postfach nach einem Anmeldecode und gib ihn hier ein." -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Überprüfe deinen Posteingang auf eine E-Mail mit dem Bestätigungscode, den du unten eingeben musst:" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "Wähle \"Alle\" oder \"Niemand\"" +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "Wähle 3 oder mehr aus:" -#: src/view/screens/Settings/index.tsx:697 -#~ msgid "Choose a new Bluesky username or create" -#~ msgstr "Wähle oder erstelle einen neuen Bluesky-Benutzernamen" +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "Wähle mindestens {0} weitere aus" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "Feeds wählen" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "Wähle für mich" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "Menschen auswählen" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "Service wählen" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." msgstr "Wähle die Algorithmen aus, welche deine benutzerdefinierten Feeds generieren." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 -#~ msgid "Choose the algorithms that power your experience with custom feeds." -#~ msgstr "Wähle die Algorithmen aus, welche dein Erlebnis mit benutzerdefinierten Feeds unterstützen." - #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 msgid "Choose this color as your avatar" -msgstr "" +msgstr "Wähle diese Farbe als Avatar" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "Wähle deine Haupt-Feeds" +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" +msgstr "Wähle aus, wer antworten darf" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "Wähle dein Passwort" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "Alle alten Speicherdaten löschen" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "Alle alten Speicherdaten löschen (danach neu starten)" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "Alle Speicherdaten löschen" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "Alle Speicherdaten löschen (danach neu starten)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "Suchanfrage löschen" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" -msgstr "" +msgstr "Löscht alle veralteten Speicherdaten" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" -msgstr "" +msgstr "Löscht alle Speicherdaten" #: src/view/screens/Support.tsx:40 msgid "click here" msgstr "hier klicken" -#: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." -msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" +msgstr "Klicke hier, um weitere Informationen zur Deaktivierung deines Kontos zu erhalten" + +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "Klicke hier für weitere Informationen." #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Klicke hier, um das Tag-Menü für {tag} zu öffnen" -#: src/components/RichText.tsx:198 -#~ msgid "Click here to open tag menu for #{tag}" -#~ msgstr "Klicke hier, um das Tag-Menü für #{tag} zu öffnen" +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "Klicke hier, um die fehlgeschlagene Nachricht erneut zu senden" -#: src/screens/Onboarding/index.tsx:47 +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "Klima" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "Klipp 🐴 klapp 🐴" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "Schließen" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "Aktiven Dialog schließen" @@ -1012,13 +1090,14 @@ msgstr "Meldung schließen" msgid "Close bottom drawer" msgstr "Untere Schublade schließen" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" -msgstr "" +msgstr "Dialog schließen" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" -msgstr "" +msgstr "GIF-Dialog schließen" #: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" @@ -1028,6 +1107,10 @@ msgstr "Bild schließen" msgid "Close image viewer" msgstr "Bildbetrachter schließen" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "Modalfenster schließen" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "Fußzeile der Navigation schließen" @@ -1045,7 +1128,7 @@ msgstr "Schließt die untere Navigationsleiste" msgid "Closes password update alert" msgstr "Schließt die Kennwortaktualisierungsmeldung" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "Schließt den Beitragsverfasser und verwirft den Beitragsentwurf" @@ -1053,43 +1136,45 @@ msgstr "Schließt den Beitragsverfasser und verwirft den Beitragsentwurf" msgid "Closes viewer for header image" msgstr "Schließt den Betrachter für das Banner" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "Liste der Benutzer einklappen" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "Klappt die Liste der Benutzer für eine bestimmte Meldung zusammen" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "Komödie" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "Comics" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Community-Richtlinien" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "Schließe das Onboarding ab und nutze dein Konto" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" -msgstr "Beende die Herausforderung" +msgstr "Schließe die Herausforderung ab" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Verfasse Beiträge mit einer Länge von bis zu {MAX_GRAPHEME_LENGTH} Zeichen" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "Antwort verfassen" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "Inhaltsfilterungseinstellung der Kategorie {0} konfigurieren" - #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" msgstr "Konfiguriere die Inhaltsfilterung für die Kategorie: {name}" @@ -1098,24 +1183,16 @@ msgstr "Konfiguriere die Inhaltsfilterung für die Kategorie: {name}" msgid "Configured in <0>moderation settings." msgstr "Konfiguriert in <0>Moderationseinstellungen" -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "Bestätigen" -#: src/view/com/modals/Confirm.tsx:75 -#: src/view/com/modals/Confirm.tsx:78 -#~ msgctxt "action" -#~ msgid "Confirm" -#~ msgstr "Bestätigen" - #: src/view/com/modals/ChangeEmail.tsx:188 #: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" @@ -1125,232 +1202,237 @@ msgstr "Änderung bestätigen" msgid "Confirm content language settings" msgstr "Bestätige die Spracheinstellungen für den Inhalt" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "Bestätige das Löschen des Kontos" -#: src/view/com/modals/ContentFilteringSettings.tsx:156 -#~ msgid "Confirm your age to enable adult content." -#~ msgstr "Bestätige dein Alter, um Inhalte für Erwachsene zu aktivieren." - -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "Bestätige dein Alter:" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "Bestätige dein Geburtsdatum" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Bestätigungscode" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." -msgstr "Verbinden..." +msgstr "Verbinden…" -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "Support kontaktieren" -#: src/components/moderation/LabelsOnMe.tsx:42 -#~ msgid "content" -#~ msgstr "" - #: src/lib/moderation/useGlobalLabelStrings.ts:18 msgid "Content Blocked" msgstr "Inhalt blockiert" -#: src/view/screens/Moderation.tsx:83 -#~ msgid "Content filtering" -#~ msgstr "Inhaltsfilterung" - -#: src/view/com/modals/ContentFilteringSettings.tsx:44 -#~ msgid "Content Filtering" -#~ msgstr "Inhaltsfilterung" - -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "Inhaltsfilterung" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "Inhaltssprachen" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "Inhalt nicht verfügbar" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "Inhaltswarnung" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "Inhaltswarnungen" #: src/components/Menu/index.web.tsx:83 msgid "Context menu backdrop, click to close the menu." -msgstr "Hintergrund des Kontextmenüs, klicken, um das Menü zu schließen" +msgstr "Hintergrund des Kontextmenüs; klicken, um das Menü zu schließen" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "Fortfahren" #: src/components/AccountList.tsx:113 msgid "Continue as {0} (currently signed in)" -msgstr "Fortfahren mit {0} (aktuell angemeldet)" +msgstr "Fortfahren als {0} (noch angemeldet)" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "Thread fortsetzen…" + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "Weiter zum nächsten Schritt" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "Weiter zum nächsten Schritt" +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" +msgstr "Konversation gelöscht" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" -msgstr "Fahre mit dem nächsten Schritt fort, ohne Konten zu folgen" - -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "Kochen" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Kopiert" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "Die Build-Version wurde in die Zwischenablage kopiert" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "In die Zwischenablage kopiert" #: src/components/dialogs/Embed.tsx:134 msgid "Copied!" -msgstr "" +msgstr "Kopiert!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Kopiert das App-Passwort" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Kopieren" #: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" -msgstr "{} kopieren" +msgstr "{0} kopieren" #: src/components/dialogs/Embed.tsx:120 #: src/components/dialogs/Embed.tsx:139 msgid "Copy code" -msgstr "" +msgstr "Kopiere den Code" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "Link kopieren" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "Link kopieren" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "Link zur Liste kopieren" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "Link zum Beitrag kopieren" -#: src/view/com/profile/ProfileHeader.tsx:295 -#~ msgid "Copy link to profile" -#~ msgstr "Link zum Profil kopieren" - -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" -msgstr "" +msgstr "Nachrichtentext kopieren" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "Beitragstext kopieren" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "QR-Code kopieren" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Urheberrechtsbestimmungen" -#: src/components/dms/ConvoMenu.tsx:80 -msgid "Could not leave chat" +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" msgstr "" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/components/dms/LeaveConvoPrompt.tsx:39 +msgid "Could not leave chat" +msgstr "Du konntest den Chat nicht verlassen" + +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" msgstr "Feed konnte nicht geladen werden" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "Liste konnte nicht geladen werden" -#: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "" - -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" -msgstr "" +msgstr "Chat konnte nicht stummgeschaltet werden" -#: src/components/dms/ConvoMenu.tsx:68 -#~ msgid "Could not unmute chat" -#~ msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "Erstellen" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" -msgstr "Ein neues Konto erstellen" +msgstr "Neues Konto erstellen" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" -msgstr "Erstelle ein neues Bluesky-Konto" +msgstr "Neues Bluesky-Konto erstellen" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "QR-Code für ein Startpaket erstellen" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "Ein Startpaket erstellen" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "Ein Startpaket für mich erstellen" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "Konto erstellen" #: src/components/dialogs/Signin.tsx:86 #: src/components/dialogs/Signin.tsx:88 msgid "Create an account" -msgstr "" +msgstr "Ein Konto erstellen" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" -msgstr "" +msgstr "Stattdessen einen Avatar erstellen" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" +msgstr "Ein weiteres erstellen" + +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "App-Passwort erstellen" @@ -1359,27 +1441,16 @@ msgstr "App-Passwort erstellen" msgid "Create new account" msgstr "Neues Konto erstellen" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "Meldung für {0} erstellen" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "Erstellt {0}" -#: src/view/screens/ProfileFeed.tsx:616 -#~ msgid "Created by <0/>" -#~ msgstr "Erstellt von <0/>" - -#: src/view/screens/ProfileFeed.tsx:614 -#~ msgid "Created by you" -#~ msgstr "Erstellt von dir" - -#: src/view/com/composer/Composer.tsx:469 -#~ msgid "Creates a card with a thumbnail. The card links to {url}" -#~ msgstr "Erzeugt eine Karte mit Vorschaubild und verlinkt auf {url}" - -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "Kultur" @@ -1392,8 +1463,8 @@ msgstr "Benutzerdefiniert" msgid "Custom domain" msgstr "Benutzerdefinierte Domain" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Benutzerdefinierte Feeds, die von der Community erstellt wurden, bringen dir neue Erfahrungen und helfen dir, die Inhalte zu finden, die du liebst." @@ -1401,8 +1472,8 @@ msgstr "Benutzerdefinierte Feeds, die von der Community erstellt wurden, bringen msgid "Customize media from external sites." msgstr "Passe die Einstellungen für Medien von externen Websites an." -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "Dunkel" @@ -1410,96 +1481,122 @@ msgstr "Dunkel" msgid "Dark mode" msgstr "Dunkelmodus" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" -msgstr "Dunkles Thema" +msgstr "Dunkelmodus" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" -msgstr "" +msgstr "Geburtsdatum" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "Konto deaktivieren" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "Mein Konto deaktivieren" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" -msgstr "" +msgstr "Debug-Moderation" #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "Debug-Panel" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "Löschen" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "Konto löschen" -#: src/view/com/modals/DeleteAccount.tsx:87 -#~ msgid "Delete Account" -#~ msgstr "Konto löschen" - -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" -msgstr "" +msgstr "Konto <0>„<1>{0}<2>” löschen" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "App-Passwort löschen" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "App-Passwort löschen?" -#: src/components/dms/MessageMenu.tsx:101 -msgid "Delete for me" -msgstr "" +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "Datensatz für die Chat-Erklärung löschen" -#: src/view/screens/ProfileList.tsx:466 +#: src/components/dms/MessageMenu.tsx:124 +msgid "Delete for me" +msgstr "Für mich löschen" + +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "Liste löschen" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" -msgstr "" +msgstr "Nachricht löschen" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" -msgstr "" +msgstr "Nachricht für mich löschen" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "Mein Konto löschen" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" -msgstr "Mein Konto Löschen…" +msgstr "Mein Konto löschen…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "Beitrag löschen" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "Startpaket löschen" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "Startpaket löschen?" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "Diese Liste löschen?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "Diesen Beitrag löschen?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "Gelöscht" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." msgstr "Gelöschter Beitrag." -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "Löscht den Datensatz für die Chat-Erklärung" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1507,69 +1604,79 @@ msgstr "Beschreibung" #: src/view/com/composer/GifAltText.tsx:140 msgid "Descriptive alt text" -msgstr "" +msgstr "Beschreibender Alt-Text" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "Wolltest du etwas sagen?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" -msgstr "Dimmen" +msgstr "Gedimmt" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "Direktnachrichten sind da!" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" -msgstr "" +msgstr "Automatische Wiedergabe für GIFs deaktivieren" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" -msgstr "" +msgstr "Zwei-Faktor-Authentifizierung per E-Mail deaktivieren" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" -msgstr "" - -#: src/view/screens/Settings/index.tsx:697 -#~ msgid "Disable haptics" -#~ msgstr "" - -#: src/view/screens/Settings/index.tsx:697 -#~ msgid "Disable vibrations" -#~ msgstr "" +msgstr "Haptische Rückmeldung deaktivieren" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "Deaktiviert" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "Verwerfen" -#: src/view/com/composer/Composer.tsx:145 -#~ msgid "Discard draft" -#~ msgstr "Entwurf verwerfen" - -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" -msgstr "Entwurf löschen?" +msgstr "Entwurf verwerfen?" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "Apps daran hindern, abgemeldeten Nutzern mein Konto zu zeigen" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "„Discover” lernt beim Browsen, welche Beiträge dir gefallen." + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" msgstr "Entdecke neue benutzerdefinierte Feeds" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "Entdecke neue Feeds" + +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "Entdecke neue Feeds" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "Anleitung zum Einstieg schließen" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "Größere Alt-Text-Badges zeigen" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "Anzeigename" @@ -1580,19 +1687,19 @@ msgstr "Anzeigename" #: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" -msgstr "" +msgstr "DNS-Panel" #: src/lib/moderation/useGlobalLabelStrings.ts:39 msgid "Does not include nudity." msgstr "Beinhaltet keine Nacktheit." -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "Beginnt oder endet nicht mit einem Bindestrich" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" -msgstr "" +msgstr "Domain-Wert" #: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" @@ -1600,125 +1707,131 @@ msgstr "Domain verifiziert!" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" -msgstr "Erledigt" +msgstr "Fertig" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" -msgstr "Erledigt" +msgstr "Fertig" #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:43 msgid "Done{extraText}" -msgstr "Erledigt{extraText}" +msgstr "Fertig{extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:46 -#~ msgid "Double tap to sign in" -#~ msgstr "Doppeltippen zum Anmelden" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "Bluesky herunterladen" #: src/view/screens/Settings/index.tsx:755 #~ msgid "Download Bluesky account data (repository)" #~ msgstr "Öffnet ein Modal zum Herunterladen deiner Bluesky-Kontodaten (Kontodepot)" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "CAR-Datei herunterladen" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" -msgstr "Ablegen zum Hinzufügen von Bildern" - -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "Aufgrund der Apple-Richtlinien können Inhalte für Erwachsene erst nach Abschluss der Registrierung auf der Website aktiviert werden." +msgstr "Zum Hinzufügen Bilder ablegen" #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" -msgstr "z.B. alice" +msgstr "z. B. alice" #: src/view/com/modals/EditProfile.tsx:186 msgid "e.g. Alice Roberts" -msgstr "z.B. Alice Roberts" +msgstr "z. B. Alice Roberts" #: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" -msgstr "z.B. alice.com" +msgstr "z. B. alice.com" #: src/view/com/modals/EditProfile.tsx:204 msgid "e.g. Artist, dog-lover, and avid reader." -msgstr "z.B. Künstlerin, Hundeliebhaberin und begeisterte Leserin." +msgstr "z. B. Künstlerin, Hundeliebhaberin und begeisterte Leserin." #: src/lib/moderation/useGlobalLabelStrings.ts:43 msgid "E.g. artistic nudes." -msgstr "Z.B. künstlerische Nacktheit" +msgstr "z. B. künstlerische Nacktheit" -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" -msgstr "z.B. Großartige Poster" +msgstr "z. B. Großartige Poster" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" -msgstr "z.B. Spammer" +msgstr "z. B. Spammer" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." -msgstr "z.B. Die Poster, die immer ins Schwarze treffen." +msgstr "z. B. Die Poster, die immer ins Schwarze treffen." -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." -msgstr "z.B. Nutzer, die wiederholt mit Werbung antworten." +msgstr "z. B. Benutzer, die wiederholt mit Werbung antworten." #: src/view/com/modals/InviteCodes.tsx:97 msgid "Each code works once. You'll receive more invite codes periodically." msgstr "Jeder Code funktioniert einmal. Du erhältst regelmäßig neue Einladungscodes." +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "Bearbeiten" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "Bearbeiten" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "Avatar bearbeiten" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "Feeds bearbeiten" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "Bild bearbeiten" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "Details der Liste bearbeiten" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "Moderationsliste bearbeiten" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" msgstr "Meine Feeds bearbeiten" @@ -1726,25 +1839,32 @@ msgstr "Meine Feeds bearbeiten" msgid "Edit my profile" msgstr "Mein Profil bearbeiten" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "Personen bearbeiten" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "Profil bearbeiten" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "Profil bearbeiten" -#: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "Gespeicherte Feeds bearbeiten" +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "Startpaket bearbeiten" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "Benutzerliste bearbeiten" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "Bearbeiten, wer antworten kann" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "Bearbeite deinen Anzeigenamen" @@ -1753,18 +1873,27 @@ msgstr "Bearbeite deinen Anzeigenamen" msgid "Edit your profile description" msgstr "Bearbeite deine Profilbeschreibung" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "Dein Startpaket bearbeiten" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "Bildung" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "Wähle entweder „Alle” oder „Niemand” aus" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "E-Mail" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" -msgstr "" +msgstr "2FA per E-Mail wurde deaktiviert" #: src/screens/Login/ForgotPasswordForm.tsx:99 msgid "Email address" @@ -1783,55 +1912,47 @@ msgstr "E-Mail aktualisiert" msgid "Email verified" msgstr "E-Mail verifiziert" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "E-Mail:" #: src/components/dialogs/Embed.tsx:112 msgid "Embed HTML code" -msgstr "" +msgstr "HTML-Code einbetten" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" -msgstr "" +msgstr "Beitrag einbetten" #: src/components/dialogs/Embed.tsx:101 msgid "Embed this post in your website. Simply copy the following snippet and paste it into the HTML code of your website." -msgstr "" +msgstr "Bette diesen Beitrag in deine Website ein. Kopiere einfach den folgenden Code und füge ihn in den HTML-Code deiner Website ein." #: src/components/dialogs/EmbedConsent.tsx:101 msgid "Enable {0} only" msgstr "Nur {0} aktivieren" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "Inhalte für Erwachsene aktivieren" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "Inhalte für Erwachsene aktivieren" - -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "Aktiviere Inhalte für Erwachsene in deinen Feeds" - #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 msgid "Enable external media" msgstr "Externe Medien aktivieren" -#: src/view/com/modals/EmbedConsent.tsx:97 -#~ msgid "Enable External Media" -#~ msgstr "Externe Medien aktivieren" - -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" -msgstr "Aktiviere Medienplayer für" +msgstr "Medienplayer aktivieren für" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "Aktiviere diese Einstellung, um nur Antworten von Personen zu sehen, denen du folgst." @@ -1839,7 +1960,9 @@ msgstr "Aktiviere diese Einstellung, um nur Antworten von Personen zu sehen, den msgid "Enable this source only" msgstr "Nur von dieser Seite erlauben" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "Aktiviert" @@ -1847,9 +1970,13 @@ msgstr "Aktiviert" msgid "End of feed" msgstr "Ende des Feeds" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "Ende des Onboarding-Tour-Fensters. Nicht weitergehen. Gehe stattdessen zurück, um weitere Optionen zu sehen, oder drücke, um zu überspringen." + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" -msgstr "Gebe einen Namen für dieses App-Passwort ein" +msgstr "Gib einen Namen für dieses App-Passwort ein" #: src/screens/Login/SetNewPasswordForm.tsx:139 msgid "Enter a password" @@ -1864,9 +1991,9 @@ msgstr "Gib ein Wort oder einen Tag ein" msgid "Enter Confirmation Code" msgstr "Bestätigungscode eingeben" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." -msgstr "Gib den Code ein, welchen du erhalten hast, um dein Passwort zu ändern." +msgstr "Gib den Code ein, den du erhalten hast, um dein Passwort zu ändern." #: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" @@ -1881,7 +2008,7 @@ msgid "Enter your birth date" msgstr "Gib dein Geburtsdatum ein" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "Gib deine E-Mail-Adresse ein" @@ -1897,38 +2024,51 @@ msgstr "Gib unten deine neue E-Mail-Adresse ein." msgid "Enter your username and password" msgstr "Gib deinen Benutzernamen und dein Passwort ein" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" -msgstr "" +msgstr "Beim Speichern der Datei ist ein Fehler aufgetreten" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "Fehler beim Empfang der Captcha-Antwort." -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "Fehler:" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "Alle" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "Alle können antworten" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "Alle" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "Übermäßig viele Erwähnungen oder Antworten" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" -msgstr "" +msgstr "Übermäßige oder unerwünschte Nachrichten" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "Verlässt den Vorgang der Accountlöschung" #: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" -msgstr "Verlässt den Vorgang des Handle-Wechsels" +msgstr "Verlässt den Vorgang der Handle-Änderung" #: src/view/com/modals/crop-image/CropImage.web.tsx:160 msgid "Exits image cropping process" @@ -1938,8 +2078,8 @@ msgstr "Verlässt den Vorgang des Bildzuschneidens" msgid "Exits image view" msgstr "Verlässt die Bildansicht" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "Verlässt die Eingabe der Suchanfrage" @@ -1947,27 +2087,35 @@ msgstr "Verlässt die Eingabe der Suchanfrage" msgid "Expand alt text" msgstr "Alt-Text erweitern" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "Liste der Benutzer erweitern" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "Erweitere oder reduziere den gesamten Beitrag, auf den du antwortest" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." -msgstr "" +msgstr "Explizite oder potenziell verstörende Medien." #: src/lib/moderation/useGlobalLabelStrings.ts:35 msgid "Explicit sexual images." -msgstr "" +msgstr "Explizite sexuelle Bilder." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" -msgstr "Exportiere meine Daten" +msgstr "Meine Daten exportieren" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" -msgstr "Exportiere meine Daten" +msgstr "Meine Daten exportieren" #: src/components/dialogs/EmbedConsent.tsx:55 #: src/components/dialogs/EmbedConsent.tsx:59 @@ -1975,149 +2123,188 @@ msgid "External Media" msgstr "Externe Medien" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "Externe Medien können es Websites ermöglichen, Informationen über dich und dein Gerät zu sammeln. Es werden keine Informationen gesendet oder angefordert, bis du die Schaltfläche \"Abspielen\" drückst." -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "Externe Medienpräferenzen" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "Externe Medienpräferenzen" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "Das App-Passwort konnte nicht erstellt werden." -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "Startpaket konnte nicht erstellt werden" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "Die Liste konnte nicht erstellt werden. Überprüfe deine Internetverbindung und versuche es erneut." -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" -msgstr "" +msgstr "Nachricht konnte nicht gelöscht werden" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "Beitrag konnte nicht gelöscht werden, bitte versuche es erneut" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "Startpaket konnte nicht gelöscht werden" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "Fehler beim Laden der Einstellungen für Feeds" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" -msgstr "" +msgstr "GIFs konnten nicht geladen werden" -#: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." -msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" +msgstr "Es konnten keine vorherigen Nachrichten geladen werden" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:110 -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:143 -#~ msgid "Failed to load recommended feeds" -#~ msgstr "Empfohlene Feeds konnten nicht geladen werden" +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "Die vorgeschlagenen Feeds konnten nicht geladen werden." -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "Die vorgeschlagenen Konten, denen du folgen solltest, konnten nicht geladen werden" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "Das Speichern des Bildes ist fehlgeschlagen: {0}" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "Konnte nicht gesendet werden" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "Anfechtung nicht eingereicht. Bitte versuche es erneut." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "Du konntest die Stummschaltung des Threads nicht aktivieren oder deaktivieren. Bitte versuche es erneut" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "Aktualisierung der Feeds fehlgeschlagen" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "Einstellungen konnten nicht aktualisiert werden" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "Feed" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "Feed von {0}" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "Feed offline" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "Feed-Umschalter" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "Feedback" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" msgstr "Feeds" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:58 -#~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." -#~ msgstr "Feeds werden von Nutzern erstellt, um Inhalte zu kuratieren. Wähle einige Feeds aus, die du interessant findest." - -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." -msgstr "Feeds sind benutzerdefinierte Algorithmen, die Nutzer mit ein wenig Programmierkenntnisse erstellen. <0/> für mehr Informationen." +msgstr "Feeds sind benutzerdefinierte Algorithmen, die Benutzer mit ein wenig Programmierkenntnisse erstellen. <0/> für mehr Informationen." -#: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" -msgstr "Die Feeds können auch auf einem Thema basieren!" +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" +msgstr "Feeds aktualisiert!" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Dateiinhalt" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" -msgstr "" +msgstr "Datei erfolgreich gespeichert!" #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Aus Feeds filtern" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "Abschließen" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "Konten zum Folgen finden" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "Finde weitere Feeds und Konten, denen du folgen kannst, auf der „Explore” Seite." + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" -msgstr "" +msgstr "Finde Beiträge und Nutzer auf Bluesky" -#: src/view/screens/Search/Search.tsx:589 -#~ msgid "Find users on Bluesky" -#~ msgstr "Nutzer auf Bluesky finden" - -#: src/view/screens/Search/Search.tsx:587 -#~ msgid "Find users with the search tool on the right" -#~ msgstr "Finde Nutzer mit der Suchfunktion auf der rechten Seite" - -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 -#~ msgid "Finding similar accounts..." -#~ msgstr "Suche nach ähnlichen Konten..." - -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." -msgstr "Passe die Inhalte auf Deinem Following-Feed an." +msgstr "Passe die Inhalte deines Following-Feeds an." -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." -msgstr "Passe die Diskussionsstränge an." +msgstr "Passe die Diskussions-Threads an." -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "Beenden" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "Tour beenden und mit der Nutzung der Anwendung beginnen" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "Fitness" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "Flexibel" @@ -2130,137 +2317,173 @@ msgstr "Horizontal drehen" msgid "Flip vertically" msgstr "Vertikal drehen" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "Folgen" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "Folgen" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "{0} folgen" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 -msgid "Follow Account" -msgstr "Accounts folgen" +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "{name} folgen" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "Folge 7 Konten" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 +msgid "Follow Account" +msgstr "Konto folgen" + +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" msgstr "Allen folgen" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "Zurückfolgen" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" -msgstr "Ausgewählten Konten folgen und mit dem nächsten Schritt fortfahren" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "Folge weiteren Konten, um dich mit deinen Interessen zu verbinden und dein Netzwerk aufzubauen." -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:65 -#~ msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." -#~ msgstr "Folge einigen Nutzern, um loszulegen. Wir können dir weitere Nutzer empfehlen, je nachdem, wen du interessant findest." +#: src/view/com/profile/ProfileCard.tsx:190 +#~ msgid "Followed by {0}" +#~ msgstr "Gefolgt von {0}" -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" -msgstr "Gefolgt von {0}" +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" +msgstr "Gefolgt von <0>{0}" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "Gefolgt von <0>{0} und {1, plural, one {# anderer} other {# andere}}" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "Gefolgt von <0>{0} und <1>{1}" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "Gefolgt von <0>{0}, <1>{1} und {1, plural, one {# anderer} other {# andere}}" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "Benutzer, denen ich folge" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "Nur Benutzer, denen ich folge" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "folgte dir" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "ist dir gefolgt" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Follower" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "Follower von @{0}, die du kennst" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "Follower, die du kennst" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "Folge ich" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" -msgstr "ich folge {0}" +msgstr "Ich folge {0}" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "Ich folge {name}" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" -msgstr "" +msgstr "Following-Feed-Einstellungen" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" msgstr "Following-Feed-Einstellungen" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "„Following” zeigt die neuesten Beiträge von Personen, denen du folgst." + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "Folgt dir" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "Folgt dir" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "Essen" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Aus Sicherheitsgründen müssen wir dir einen Bestätigungscode an deine E-Mail-Adresse schicken." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Aus Sicherheitsgründen kannst du dies nicht erneut ansehen. Wenn du dieses Passwort verlierst, musst du ein neues generieren." -#: src/view/com/auth/login/LoginForm.tsx:244 -#~ msgid "Forgot" -#~ msgstr "Vergessen" - -#: src/view/com/auth/login/LoginForm.tsx:241 -#~ msgid "Forgot password" -#~ msgstr "Passwort vergessen" - #: src/screens/Login/index.tsx:129 #: src/screens/Login/index.tsx:144 msgid "Forgot Password" msgstr "Passwort vergessen" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "Passwort vergessen?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "Vergessen?" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "Postet oft unerwünschte Inhalte" @@ -2268,56 +2491,85 @@ msgstr "Postet oft unerwünschte Inhalte" msgid "From @{sanitizedAuthor}" msgstr "Von @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" -msgstr "Aus <0/>" +msgstr "Von <0/>" #: src/view/com/composer/photos/SelectPhotoBtn.tsx:39 msgid "Gallery" msgstr "Galerie" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Los geht's" -#: src/screens/Onboarding/StepProfile/index.tsx:228 +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" +msgstr "" + +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 msgid "Give your profile a face" msgstr "" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "Eklatante Verstöße gegen Gesetze oder Nutzungsbedingungen" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" -msgstr "Gehe zurück" +msgstr "Zurückgehen" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" -msgstr "Gehe zurück" +msgstr "Zurückgehen" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:189 +#~ msgid "Go back to previous screen" +#~ msgstr "" + +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" -msgstr "Zum vorherigen Schritt zurückkehren" +msgstr "Zum vorherigen Schritt zurückgehen" + +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "" #: src/view/screens/NotFound.tsx:55 msgid "Go home" @@ -2330,18 +2582,26 @@ msgstr "" #: src/view/screens/Search/Search.tsx:827 #: src/view/shell/desktop/Search.tsx:263 #~ msgid "Go to @{queryMaybeHandle}" -#~ msgstr "Gehe zu @{queryMaybeHandle}" +#~ msgstr "Zu @{queryMaybeHandle} gehen" + +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" -msgstr "Gehe zum nächsten" +msgstr "Zum nächsten gehen" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" msgstr "" @@ -2349,88 +2609,90 @@ msgstr "" msgid "Graphic Media" msgstr "" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Handle" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" msgstr "" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "Hashtag" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "Hashtag: #{tag}" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "Hast du Probleme?" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "Hilfe" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "Hier sind einige Konten, denen du folgen könntest" +#~ msgid "Here are some accounts for you to follow" +#~ msgstr "Hier sind einige Konten, denen du folgen könntest" #: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "Hier sind einige beliebte thematische Feeds. Du kannst so vielen folgen, wie du möchtest." +#~ msgid "Here are some popular topical feeds. You can choose to follow as many as you like." +#~ msgstr "Hier sind einige beliebte thematische Feeds. Du kannst so vielen folgen, wie du möchtest." #: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "Hier sind einige thematische Feeds, die auf deinen Interessen basieren: {interestsText}. Du kannst so vielen Feeds folgen, wie du möchtest." +#~ msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." +#~ msgstr "Hier sind einige thematische Feeds, die auf deinen Interessen basieren: {interestsText}. Du kannst so vielen Feeds folgen, wie du möchtest." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Hier ist dein App-Passwort." -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "Ausblenden" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "Ausblenden" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "Beitrag ausblenden" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "Den Inhalt ausblenden" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "Diesen Beitrag ausblenden?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "Benutzerliste ausblenden" @@ -2438,27 +2700,27 @@ msgstr "Benutzerliste ausblenden" #~ msgid "Hides posts from {0} in your feed" #~ msgstr "Blendet Beiträge von {0} in Deinem Feed aus" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Hmm, beim Kontakt mit dem Feed-Server ist ein Problem aufgetreten. Bitte informiere den Eigentümer des Feeds über dieses Problem." -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Hmm, der Feed-Server scheint falsch konfiguriert zu sein. Bitte informiere den Eigentümer des Feeds über dieses Problem." -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Hmm, der Feed-Server scheint offline zu sein. Bitte informiere den Eigentümer des Feeds über dieses Problem." -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Hmm, der Feed-Server hat eine schlechte Antwort gegeben. Bitte informiere den Eigentümer des Feeds über dieses Problem." -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, wir haben Probleme, diesen Feed zu finden. Möglicherweise wurde er gelöscht." -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." msgstr "" @@ -2466,11 +2728,12 @@ msgstr "" msgid "Hmmmm, we couldn't load that moderation service." msgstr "" -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "Home" @@ -2479,8 +2742,8 @@ msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Hosting-Anbieter" @@ -2503,7 +2766,8 @@ msgstr "Ich habe einen Bestätigungscode" msgid "I have my own domain" msgstr "Ich habe meine eigene Domain" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" msgstr "" @@ -2519,27 +2783,31 @@ msgstr "Wenn keine ausgewählt werden, sind sie für alle Altersgruppen geeignet msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "" -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "Wenn du diese Liste löschst, kannst du sie nicht wiederherstellen." -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "Wenn du diesen Post löschst, kannst du ihn nicht wiederherstellen." -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Wenn du dein Passwort ändern möchtest, senden wir dir einen Code, um zu bestätigen, dass es sich um dein Konto handelt." -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "Illegal und dringend" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "Bild" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Bild-Alt-Text" @@ -2548,15 +2816,23 @@ msgstr "Bild-Alt-Text" #~ msgid "Image options" #~ msgstr "Bild-Optionen" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "Gib den Code ein, den du per E-Mail erhalten hast, um dein Passwort zurückzusetzen." -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "Bestätigungscode für die Kontolöschung eingeben" @@ -2568,7 +2844,7 @@ msgstr "Bestätigungscode für die Kontolöschung eingeben" #~ msgid "Input invite code to proceed" #~ msgstr "Einladungscode eingeben, um fortzufahren" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Namen für das App-Passwort eingeben" @@ -2576,23 +2852,23 @@ msgstr "Namen für das App-Passwort eingeben" msgid "Input new password" msgstr "Neues Passwort eingeben" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "Passwort für die Kontolöschung eingeben" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "Passwort, das an {identifier} gebunden ist, eingeben" +#: src/screens/Login/LoginForm.tsx:221 +#~ msgid "Input the password tied to {identifier}" +#~ msgstr "Passwort, das an {identifier} gebunden ist, eingeben" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the username or email address you used at signup" msgstr "Benutzernamen oder E-Mail-Adresse eingeben, die du bei der Anmeldung verwendet hast" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "Gib dein Passwort ein" @@ -2600,20 +2876,24 @@ msgstr "Gib dein Passwort ein" msgid "Input your preferred hosting provider" msgstr "" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "Gib deinen Handle ein" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "Ungültiger oder nicht unterstützter Beitragrekord" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "Ungültiger Benutzername oder Passwort" @@ -2621,11 +2901,11 @@ msgstr "Ungültiger Benutzername oder Passwort" msgid "Invite a Friend" msgstr "Einen Freund einladen" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "Einladungscode" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Einladungscode nicht akzeptiert. Überprüfe, ob du ihn richtig eingegeben hast und versuche es erneut." @@ -2637,15 +2917,43 @@ msgstr "Einladungscodes: {0} verfügbar" msgid "Invite codes: 1 available" msgstr "Einladungscodes: 1 verfügbar" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." -msgstr "Es zeigt die Beiträge der Personen an, denen du folgst, sobald sie erscheinen." +#~ msgid "It shows posts from the people you follow as they happen." +#~ msgstr "Es zeigt die Beiträge der Personen an, denen du folgst, sobald sie erscheinen." + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." +msgstr "" #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "Jobs" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "" + +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "Journalismus" @@ -2653,19 +2961,19 @@ msgstr "Journalismus" #~ msgid "label has been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "" -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "" -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "" @@ -2673,28 +2981,28 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "Sprachauswahl" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "Spracheinstellungen" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "Spracheinstellungen" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "Sprachen" @@ -2703,7 +3011,7 @@ msgstr "Sprachen" #~ msgstr "Letzter Schritt!" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "" @@ -2715,31 +3023,38 @@ msgstr "" msgid "Learn More" msgstr "Mehr erfahren" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Erfahre mehr über diese Warnung" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "Erfahre mehr darüber, was auf Bluesky öffentlich ist." -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "" -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" msgstr "" @@ -2751,20 +3066,25 @@ msgstr "Lass alle Kontrollkästchen deaktiviert, um alle Sprachen zu sehen." msgid "Leaving Bluesky" msgstr "Bluesky verlassen" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "noch übrig." -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Der Legacy-Speicher wurde gelöscht, du musst die App jetzt neu starten." +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "Lass uns dein Passwort zurücksetzen!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "Los geht's!" @@ -2773,22 +3093,31 @@ msgstr "Los geht's!" #~ msgid "Library" #~ msgstr "Bibliothek" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" -msgstr "Licht" +msgstr "Hell" #: src/view/com/util/post-ctrls/PostCtrls.tsx:197 #~ msgid "Like" #~ msgstr "Liken" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "" + +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "Diesen Feed liken" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "Geliked von" @@ -2804,7 +3133,7 @@ msgstr "Geliked von" #: src/components/LabelingServiceCard/index.tsx:72 #~ msgid "Liked by {count} {0}" -#~ msgstr "Geliked von {count} {0}" +#~ msgstr "Von {count} {0} geliked" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:287 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:301 @@ -2812,80 +3141,97 @@ msgstr "Geliked von" #~ msgid "Liked by {likeCount} {0}" #~ msgstr "Von {likeCount} {0} geliked" -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" msgstr "hat deinen benutzerdefinierten Feed geliked" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" msgstr "hat deinen Beitrag geliked" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "Likes" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "Likes für diesen Beitrag" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "Liste" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "Listenbild" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "Liste blockiert" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "Liste von {0}" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "Liste gelöscht" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "Liste stummgeschaltet" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "Name der Liste" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "Liste entblockiert" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "Listenstummschaltung aufgehoben" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "Listen" +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "" + #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 #~ msgid "Load more posts" #~ msgstr "Mehr Beiträge laden" -#: src/view/screens/Notifications.tsx:159 +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "Neue Mitteilungen laden" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "Neue Beiträge laden" @@ -2893,26 +3239,31 @@ msgstr "Neue Beiträge laden" msgid "Loading..." msgstr "Wird geladen..." -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "Systemprotokoll" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "Abmelden" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "Sichtbarkeit für abgemeldete Benutzer" #: src/components/AccountList.tsx:58 msgid "Login to account that is not listed" -msgstr "Anmeldung bei einem Konto, das nicht aufgelistet ist" +msgstr "Bei einem Konto anmelden, das nicht aufgelistet ist" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" msgstr "" @@ -2924,12 +3275,20 @@ msgstr "Im Format XXXXX-XXXXX" msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" msgstr "" #: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." +#~ msgid "Looks like you're missing a following feed." +#~ msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" msgstr "" #: src/view/com/modals/LinkWarning.tsx:79 @@ -2940,8 +3299,8 @@ msgstr "Vergewissere dich, dass du auch wirklich dorthin gehen willst!" msgid "Manage your muted words and tags" msgstr "Verwalte deine stummgeschalteten Wörter und Tags" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" msgstr "" @@ -2953,26 +3312,30 @@ msgstr "" #~ msgid "May only contain letters and numbers" #~ msgstr "Darf nur Buchstaben und Zahlen enthalten" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "Medien" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "erwähnte Benutzer" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "Erwähnte Benutzer" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "Menü" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" msgstr "" @@ -2980,40 +3343,37 @@ msgstr "" msgid "Message from server: {0}" msgstr "Nachricht vom Server: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" #: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "" +#~ msgid "Messaging settings" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "Irreführender Account" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "Moderation" @@ -3021,56 +3381,57 @@ msgstr "Moderation" msgid "Moderation details" msgstr "" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" msgstr "Moderationsliste von {0}" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "Moderationsliste von <0/>" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "Moderationsliste von dir" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "Moderationsliste erstellt" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "Moderationsliste aktualisiert" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "Moderationslisten" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Moderationslisten" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "Moderationseinstellungen" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "Moderationswerkzeuge" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "Der Moderator hat beschlossen, eine allgemeine Warnung vor dem Inhalt auszusprechen." -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "Mehr" @@ -3078,14 +3439,22 @@ msgstr "Mehr" msgid "More feeds" msgstr "Mehr Feeds" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "Mehr Optionen" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "Beliebteste Antworten zuerst" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:122 #~ msgid "Must be at least 3 characters" #~ msgstr "Muss mindestens 3 Zeichen lang sein" @@ -3098,12 +3467,12 @@ msgstr "Stummschalten" msgid "Mute {truncatedTag}" msgstr "{truncatedTag} stummschalten" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "Konto stummschalten" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "Konten stummschalten" @@ -3111,6 +3480,11 @@ msgstr "Konten stummschalten" msgid "Mute all {displayTag} posts" msgstr "Alle {displayTag}-Beiträge stummschalten" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" msgstr "Nur in Tags stummschalten" @@ -3119,16 +3493,16 @@ msgstr "Nur in Tags stummschalten" msgid "Mute in text & tags" msgstr "In Text und Tags stummschalten" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "Liste stummschalten" #: src/components/dms/ConvoMenu.tsx:136 #: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "" +#~ msgid "Mute notifications" +#~ msgstr "" -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "Diese Konten stummschalten?" @@ -3144,25 +3518,25 @@ msgstr "Dieses Wort in Beitragstexten und Tags stummschalten" msgid "Mute this word in tags only" msgstr "Dieses Wort nur in Tags stummschalten" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" msgstr "Thread stummschalten" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "Wörter und Tags stummschalten" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "Stummgeschaltet" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "Stummgeschaltete Konten" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "Stummgeschaltete Konten" @@ -3171,15 +3545,15 @@ msgstr "Stummgeschaltete Konten" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Bei stummgeschalteten Konten werden dazugehörige Beiträge aus deinem Feed und deinen Mitteilungen entfernt. Stummschaltungen sind völlig privat." -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "Stummgeschaltet über \"{0}\"" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "Stummgeschaltete Wörter und Tags" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Stummschaltung ist privat. Stummgeschaltete Konten können mit dir interagieren, aber du siehst ihre Beiträge nicht und erhältst keine Mitteilungen von ihnen." @@ -3188,19 +3562,19 @@ msgstr "Stummschaltung ist privat. Stummgeschaltete Konten können mit dir inter msgid "My Birthday" msgstr "Mein Geburtstag" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" msgstr "Meine Feeds" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "Mein Profil" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" msgstr "Meine gespeicherten Feeds" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" msgstr "Meine gespeicherten Feeds" @@ -3208,36 +3582,46 @@ msgstr "Meine gespeicherten Feeds" #~ msgid "my-server.com" #~ msgstr "mein-server.de" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "Name" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "Name ist erforderlich" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "Natur" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "Navigiert zum nächsten Bildschirm" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" -msgstr "Navigiert zu Deinem Profil" +msgstr "Navigiert zu deinem Profil" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "" @@ -3251,7 +3635,7 @@ msgstr "" #~ msgid "Never lose access to your followers and data." #~ msgstr "Verliere nie den Zugriff auf deine Follower und Daten." -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "Verliere nie den Zugriff auf deine Follower oder Daten." @@ -3263,7 +3647,7 @@ msgstr "Verliere nie den Zugriff auf deine Follower oder Daten." msgid "Nevermind, create a handle for me" msgstr "" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "Neu" @@ -3272,88 +3656,102 @@ msgstr "Neu" msgid "New" msgstr "Neu" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "Neue Moderationsliste" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "Neues Passwort" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "Neues Passwort" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "Neuer Beitrag" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "Neuer Beitrag" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "Neuer Beitrag" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "Neue Benutzerliste" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "Neueste Antworten zuerst" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "Aktuelles" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" -msgstr "Nächste" +msgstr "Weiter" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:103 #~ msgctxt "action" #~ msgid "Next" -#~ msgstr "Nächste" +#~ msgstr "Weiter" #: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "Nächstes Bild" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "Nein" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "Keine Beschreibung" @@ -3361,68 +3759,102 @@ msgstr "Keine Beschreibung" msgid "No DNS Panel" msgstr "" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "" + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "{0} wird nicht mehr gefolgt" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "Nicht länger als 253 Zeichen" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" msgstr "" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "Noch keine Mitteilungen!" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "" + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Kein Ergebnis" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Keine Ergebnisse gefunden" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "Keine Ergebnisse für \"{query}\" gefunden" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "Keine Ergebnisse für {query} gefunden" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." msgstr "" #: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "" +#~ msgid "No search results found for \"{searchText}\"." +#~ msgstr "" #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "Nein danke" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "Niemand" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "Nicht-sexuelle Nacktheit" @@ -3431,37 +3863,67 @@ msgstr "Nicht-sexuelle Nacktheit" #~ msgid "Not Applicable." #~ msgstr "Unzutreffend." -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "Nicht gefunden" #: src/view/com/modals/VerifyEmail.tsx:254 #: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" -msgstr "Im Moment nicht" +msgstr "Nicht jetzt" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Hinweis: Bluesky ist ein offenes und öffentliches Netzwerk. Diese Einstellung schränkt lediglich die Sichtbarkeit deiner Inhalte in der Bluesky-App und auf der Website ein. Andere Apps respektieren diese Einstellung möglicherweise nicht. Deine Inhalte werden abgemeldeten Nutzern möglicherweise weiterhin in anderen Apps und Websites angezeigt." -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "Mitteilungen" -#: src/components/dms/MessageItem.tsx:145 +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" +msgstr "" + +#: src/components/dms/MessageItem.tsx:169 msgid "Now" msgstr "" @@ -3469,7 +3931,7 @@ msgstr "" msgid "Nudity" msgstr "Nacktheit" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "" @@ -3485,17 +3947,17 @@ msgstr "" msgid "Off" msgstr "Aus" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "Oh nein!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "Oh nein, da ist etwas schief gelaufen." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "OK" @@ -3503,45 +3965,68 @@ msgstr "OK" msgid "Okay" msgstr "Okay" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "Älteste Antworten zuerst" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "Onboarding zurücksetzen" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "Bei einem oder mehreren Bildern fehlt der Alt-Text." -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." -msgstr "Nur {0} kann antworten." +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" +msgstr "" -#: src/screens/Signup/StepHandle.tsx:98 +#: src/view/com/threadgate/WhoCanReply.tsx:100 +#~ msgid "Only {0} can reply." +#~ msgstr "Nur {0} kann antworten." + +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "Enthält nur Buchstaben, Nummern und Bindestriche" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" -msgstr "Ups, da ist etwas schief gelaufen!" +msgstr "Huch, da ist etwas schief gelaufen!" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "Huch!" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "Öffnen" -#: src/screens/Onboarding/StepProfile/index.tsx:280 +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:277 msgid "Open avatar creator" msgstr "" @@ -3549,20 +4034,29 @@ msgstr "" #~ msgid "Open content filtering settings" #~ msgstr "Inhaltsfiltereinstellungen öffnen" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "Emoji-Picker öffnen" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "Links mit In-App-Browser öffnen" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "Einstellungen für stummgeschaltete Wörter und Tags öffnen" @@ -3570,48 +4064,60 @@ msgstr "Einstellungen für stummgeschaltete Wörter und Tags öffnen" #~ msgid "Open muted words settings" #~ msgstr "Einstellungen für stummgeschaltete Wörter öffnen" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "Navigation öffnen" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "Beitragsoptionsmenü öffnen" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 -msgid "Open storybook page" -msgstr "Geschichtenbuch öffnen" +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 +msgid "Open storybook page" +msgstr "Storybook öffnen" + +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "Öffnet {numItems} Optionen" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "Öffnet zusätzliche Details für einen Debug-Eintrag" #: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "Öffnet eine erweiterte Liste der Benutzer in dieser Mitteilung" +#~ msgid "Opens an expanded list of users in this notification" +#~ msgstr "Öffnet eine erweiterte Liste der Benutzer in dieser Mitteilung" #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "Öffnet die Kamera auf dem Gerät" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "Öffnet den Beitragsverfasser" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "Öffnet die konfigurierbaren Spracheinstellungen" @@ -3621,21 +4127,21 @@ msgstr "Öffnet die Gerätefotogalerie" #: src/view/com/profile/ProfileHeader.tsx:420 #~ msgid "Opens editor for profile display name, avatar, background image, and description" -#~ msgstr "Öffnet den Editor für Profilanzeige, Avatar, Hintergrundbild und Beschreibung" +#~ msgstr "Öffnet den Editor für Anzeigename, Avatar, Hintergrundbild und Beschreibung" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "Öffnet die Einstellungen für externe eingebettete Medien" #: src/view/com/auth/SplashScreen.tsx:50 #: src/view/com/auth/SplashScreen.web.tsx:99 msgid "Opens flow to create a new Bluesky account" -msgstr "Öffnet den Vorgang, einen neuen Bluesky account anzulegen" +msgstr "Öffnet den Vorgang, ein neuen Bluesky Konto anzulegen" #: src/view/com/auth/SplashScreen.tsx:65 #: src/view/com/auth/SplashScreen.web.tsx:114 msgid "Opens flow to sign into your existing Bluesky account" -msgstr "Öffnet den Vorgang, sich mit einen bestehenden Bluesky Account anzumelden" +msgstr "Öffnet den Vorgang, sich mit einem bestehenden Bluesky Konto anzumelden" #: src/view/com/profile/ProfileHeader.tsx:575 #~ msgid "Opens followers list" @@ -3645,7 +4151,7 @@ msgstr "Öffnet den Vorgang, sich mit einen bestehenden Bluesky Account anzumeld #~ msgid "Opens following list" #~ msgstr "Öffnet folgende Liste" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" msgstr "" @@ -3653,7 +4159,11 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Öffnet die Liste der Einladungscodes" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3661,19 +4171,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Öffnet ein Modal, um die Löschung des Kontos zu bestätigen. Erfordert einen E-Mail-Code." -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "" @@ -3681,24 +4191,24 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Öffnet das Modal für die Verwendung einer benutzerdefinierten Domain" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" msgstr "Öffnet die Moderationseinstellungen" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "Öffnet das Formular zum Zurücksetzen des Passworts" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "Öffnet den Bildschirm zum Bearbeiten gespeicherten Feeds" +#: src/view/screens/Feeds.tsx:417 +#~ msgid "Opens screen to edit Saved Feeds" +#~ msgstr "Öffnet den Bildschirm zum Bearbeiten gespeicherten Feeds" -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" msgstr "Öffnet den Bildschirm mit allen gespeicherten Feeds" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "" @@ -3706,7 +4216,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "Öffnet die Einstellungsseite für das App-Passwort" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" msgstr "" @@ -3719,36 +4229,53 @@ msgid "Opens the linked website" msgstr "" #: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "" +#~ msgid "Opens the message settings page" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" -msgstr "Öffnet die Geschichtenbuch" +msgstr "Öffnet die Storybook-Seite" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "Öffnet die Systemprotokollseite" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "Öffnet die Thread-Einstellungen" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "Option {0} von {numItems}" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "Oder kombiniere diese Optionen:" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "" + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "" @@ -3756,11 +4283,15 @@ msgstr "" msgid "Other account" msgstr "Anderes Konto" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "Andere..." -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "" + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Seite nicht gefunden" @@ -3769,14 +4300,14 @@ msgstr "Seite nicht gefunden" msgid "Page Not Found" msgstr "Seite nicht gefunden" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "Passwort" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "" @@ -3788,52 +4319,66 @@ msgstr "Passwort aktualisiert" msgid "Password updated!" msgstr "Passwort aktualisiert!" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "Personen gefolgt von @{0}" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "Personen, die @{0} folgen" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." msgstr "Die Erlaubnis zum Zugriff auf die Kamerarolle ist erforderlich." -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "Die Berechtigung zum Zugriff auf die Kamerarolle wurde verweigert. Bitte aktiviere sie in deinen Systemeinstellungen." -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "Haustiere" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Bilder, die für Erwachsene bestimmt sind." -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "An die Startseite anheften" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "Angeheftete Feeds" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" msgstr "" @@ -3841,7 +4386,12 @@ msgstr "" msgid "Play {0}" msgstr "{0} abspielen" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/screens/Messages/Settings.tsx:97 +#: src/screens/Messages/Settings.tsx:104 +#~ msgid "Play notification sounds" +#~ msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" msgstr "" @@ -3854,15 +4404,16 @@ msgstr "Video abspielen" msgid "Plays the GIF" msgstr "Spielt das GIF ab" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "Bitte wähle deinen Handle." -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "Bitte wähle dein Passwort." -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "Bitte fülle das Verifizierungs-Captcha aus." @@ -3870,11 +4421,11 @@ msgstr "Bitte fülle das Verifizierungs-Captcha aus." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Bitte bestätige deine E-Mail, bevor du sie änderst. Dies ist eine vorübergehende Anforderung, während E-Mail-Aktualisierungstools hinzugefügt werden, und wird bald wieder entfernt." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Bitte gib einen Namen für dein App-Passwort ein. Nur Leerzeichen sind nicht erlaubt." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Bitte gib einen eindeutigen Namen für dieses App-Passwort ein oder verwende unseren zufällig generierten Namen." @@ -3882,19 +4433,29 @@ msgstr "Bitte gib einen eindeutigen Namen für dieses App-Passwort ein oder verw msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Bitte gib ein gültiges Wort, einen Tag oder eine Phrase zum Stummschalten ein" -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "Bitte gib deine E-Mail ein." -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "Bitte gib auch dein Passwort ein:" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "" + #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" msgstr "" @@ -3907,11 +4468,12 @@ msgstr "" msgid "Please Verify Your Email" msgstr "Bitte verifiziere deine E-Mail" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "Bitte warte, bis deine Link-karte vollständig geladen ist" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "Politik" @@ -3923,46 +4485,46 @@ msgstr "Porno" #~ msgid "Pornography" #~ msgstr "" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "Beitrag" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" msgstr "Beitrag" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "Beitrag von {0}" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "Beitrag von @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "Beitrag gelöscht" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Beitrag ausgeblendet" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" msgstr "" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "Beitragssprache" @@ -3970,8 +4532,8 @@ msgstr "Beitragssprache" msgid "Post Languages" msgstr "Beitragssprachen" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Beitrag nicht gefunden" @@ -3979,7 +4541,8 @@ msgstr "Beitrag nicht gefunden" msgid "posts" msgstr "Beiträge" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "Beiträge" @@ -3987,7 +4550,7 @@ msgstr "Beiträge" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Beiträge können basierend auf ihrem Text, ihren Tags oder beidem stummgeschaltet werden." -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "Ausgeblendete Beiträge" @@ -3995,14 +4558,22 @@ msgstr "Ausgeblendete Beiträge" msgid "Potentially Misleading Link" msgstr "Potenziell irreführender Link" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "" @@ -4011,45 +4582,57 @@ msgstr "" #~ msgid "Press to Retry" #~ msgstr "" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Vorheriges Bild" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "Primäre Sprache" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "Priorisiere deine Follower" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "Privatsphäre" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Datenschutzerklärung" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "Wird bearbeitet..." -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "Profil" @@ -4057,57 +4640,84 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil aktualisiert" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "Schütze dein Konto, indem du deine E-Mail bestätigst." -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "Öffentlich" #: src/view/screens/ModerationModlists.tsx:61 msgid "Public, shareable lists of users to mute or block in bulk." -msgstr "Öffentliche, gemeinsam nutzbare Listen von Nutzern, die du stummschalten oder blockieren kannst." +msgstr "Öffentliche, gemeinsam nutzbare Listen von Nutzern, die du sta­pel­wei­se stummschalten oder blockieren kannst." -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." msgstr "Öffentliche, gemeinsam nutzbare Listen, die Feeds steuern können." -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "Beitrag veröffentlichen" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "Antwort veröffentlichen" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "Beitrag zitieren" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 -msgid "Quote post" -msgstr "Beitrag zitieren" +#: src/view/com/modals/Repost.tsx:66 +#~ msgctxt "action" +#~ msgid "Quote post" +#~ msgstr "Beitrag zitieren" #: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "Beitrag zitieren" +#~ msgctxt "action" +#~ msgid "Quote Post" +#~ msgstr "Beitrag zitieren" -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" -msgstr "Zufällig (alias \"Poster's Roulette\")" +msgstr "Zufällig (\"Poster's Roulette\")" #: src/view/com/modals/EditImage.tsx:237 msgid "Ratios" msgstr "Verhältnisse" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" msgstr "" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "" + +#: src/components/dms/MessageReportDialog.tsx:149 +#~ msgid "Reason: {0}" +#~ msgstr "" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "" @@ -4117,13 +4727,28 @@ msgstr "" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:181 #~ msgid "Recommended Users" -#~ msgstr "Empfohlene Nutzer" +#~ msgstr "Empfohlene Benutzer" + +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "" + +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Entfernen" @@ -4132,11 +4757,15 @@ msgstr "Entfernen" #~ msgid "Remove {0} from my feeds?" #~ msgstr "{0} aus meinen Feeds entfernen?" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "" + #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Konto entfernen" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "" @@ -4144,9 +4773,13 @@ msgstr "" msgid "Remove Banner" msgstr "" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "Feed entfernen" @@ -4154,15 +4787,16 @@ msgstr "Feed entfernen" msgid "Remove feed?" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "Aus meinen Feeds entfernen" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "" @@ -4170,7 +4804,7 @@ msgstr "" msgid "Remove image" msgstr "Bild entfernen" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "Bildvorschau entfernen" @@ -4178,11 +4812,20 @@ msgstr "Bildvorschau entfernen" msgid "Remove mute word from your list" msgstr "Stummgeschaltetes Wort aus deiner Liste entfernen" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "" + +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 msgid "Remove quote" msgstr "" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "Repost entfernen" @@ -4198,48 +4841,60 @@ msgstr "" #~ msgid "Remove this feed from your saved feeds?" #~ msgstr "Diesen Feed aus deinen gespeicherten Feeds entfernen?" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "Aus der Liste entfernt" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" msgstr "Aus meinen Feeds entfernt" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" msgstr "" #: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "Entfernt Standard-Miniaturansicht von {0}" +#~ msgid "Removes default thumbnail from {0}" +#~ msgstr "Entfernt Standard-Miniaturansicht von {0}" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" msgstr "" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 msgid "Replace with Discover" msgstr "" -#: src/view/screens/Profile.tsx:194 +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "Antworten" -#: src/view/com/threadgate/WhoCanReply.tsx:98 +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "" + +#: src/view/com/threadgate/WhoCanReply.tsx:123 +#~ msgid "Replies on this thread are disabled" +#~ msgstr "" + +#: src/components/WhoCanReply.tsx:243 msgid "Replies to this thread are disabled" msgstr "Antworten auf diesen Thread sind deaktiviert" -#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "Antworten" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "Antwortfilter" @@ -4249,13 +4904,26 @@ msgstr "Antwortfilter" #~ msgid "Reply to <0/>" #~ msgstr "Antwort an <0/>" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "" -#: src/components/dms/MessageMenu.tsx:109 +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" +msgstr "" + +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 msgid "Report" msgstr "" @@ -4268,14 +4936,14 @@ msgstr "" #~ msgid "Report account" #~ msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "Konto melden" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" msgstr "" @@ -4283,64 +4951,75 @@ msgstr "" msgid "Report dialog" msgstr "" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "Feed melden" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "Liste melden" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "Beitrag melden" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "Repost" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "Erneut veröffentlichen" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "Reposten oder Beitrag zitieren" @@ -4348,7 +5027,7 @@ msgstr "Reposten oder Beitrag zitieren" msgid "Reposted By" msgstr "Repostet von" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "Repostet von {0}" @@ -4356,15 +5035,20 @@ msgstr "Repostet von {0}" #~ msgid "Reposted by <0/>" #~ msgstr "Repostet von <0/>" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "hat deinen Beitrag repostet" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "Reposts von diesem Beitrag" @@ -4373,20 +5057,20 @@ msgstr "Reposts von diesem Beitrag" msgid "Request Change" msgstr "Änderung anfordern" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" -msgstr "Einen Code anfordern" +msgstr "Code anfordern" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" -msgstr "Alt-Text vor der Veröffentlichung erforderlich machen" +msgstr "Alt-Text vor der Beitragsveröffentlichung erforderlich machen" #: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" -msgstr "" +msgstr "E-Mail-Code zum Anmelden erforderlich machen" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "Für diesen Anbieter erforderlich" @@ -4395,11 +5079,11 @@ msgstr "Für diesen Anbieter erforderlich" msgid "Resend email" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "Code zurücksetzen" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "Code zurücksetzen" @@ -4407,10 +5091,10 @@ msgstr "Code zurücksetzen" #~ msgid "Reset onboarding" #~ msgstr "Onboarding zurücksetzen" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" -msgstr "Onboarding-Status zurücksetzen" +msgstr "Onboardingstatus zurücksetzen" #: src/screens/Login/ForgotPasswordForm.tsx:86 msgid "Reset password" @@ -4420,20 +5104,20 @@ msgstr "Passwort zurücksetzen" #~ msgid "Reset preferences" #~ msgstr "Einstellungen zurücksetzen" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "Einstellungen zurücksetzen" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" -msgstr "Setzt den Onboarding-Status zurück" +msgstr "Setzt den Onboardingstatus zurück" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "Einstellungen zurücksetzen" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "Versucht die Anmeldung erneut" @@ -4442,15 +5126,16 @@ msgstr "Versucht die Anmeldung erneut" msgid "Retries the last action, which errored out" msgstr "Wiederholung der letzten Aktion, bei der ein Fehler aufgetreten ist" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -4461,7 +5146,8 @@ msgstr "Wiederholen" #~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "Zurück zur vorherigen Seite" @@ -4470,26 +5156,28 @@ msgid "Returns to home page" msgstr "" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Speichern" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "Speichern" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Alt-Text speichern" @@ -4505,20 +5193,29 @@ msgstr "Änderungen speichern" msgid "Save handle change" msgstr "Handle-Änderung speichern" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "Bildausschnitt speichern" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" msgstr "" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" msgstr "Gespeicherte Feeds" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" msgstr "" @@ -4526,8 +5223,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "" @@ -4543,37 +5240,45 @@ msgstr "Speichert Handle-Änderung in {handle}" msgid "Saves image crop settings" msgstr "" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "Wissenschaft" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "Zum Anfang blättern" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "Suche" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" -msgstr "Suche nach \"{query}\"" +msgstr "Nach \"{query}\" suchen" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" msgstr "" @@ -4585,25 +5290,32 @@ msgstr "Nach allen Beiträgen von @{authorHandle} mit dem Tag {displayTag} suche msgid "Search for all posts with tag {displayTag}" msgstr "Nach allen Beiträgen mit dem Tag {displayTag} suchen" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." msgstr "" -#: src/view/com/auth/LoggedOut.tsx:105 +#: src/components/dms/NewChat.tsx:226 +#~ msgid "Search for someone to start a conversation with." +#~ msgstr "" + #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "Nach Nutzern suchen" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" msgstr "" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "" @@ -4628,11 +5340,11 @@ msgid "See <0>{displayTag} posts by this user" msgstr "Siehe <0>{displayTag}-Beiträge von diesem Benutzer" #: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "" +#: src/view/com/util/UserAvatar.tsx:402 +#~ msgid "See profile" +#~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "Siehe diesen Leitfaden" @@ -4664,15 +5376,15 @@ msgstr "" msgid "Select from an existing account" msgstr "Von einem bestehenden Konto auswählen" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" msgstr "" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" msgstr "" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "" @@ -4690,14 +5402,14 @@ msgstr "Wähle Option {i} von {numItems}" #~ msgstr "Service auswählen" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "Wähle unten einige Konten aus, denen du folgen möchtest" +#~ msgid "Select some accounts below to follow" +#~ msgstr "Wähle unten einige Konten aus, denen du folgen möchtest" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4706,14 +5418,18 @@ msgid "Select the service that hosts your data." msgstr "Wähle den Dienst aus, der deine Daten hostet." #: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" -msgstr "Wähle aus der folgenden Liste die themenbezogenen Feeds aus, die du verfolgen möchtest" +#~ msgid "Select topical feeds to follow from the list below" +#~ msgstr "Wähle aus der folgenden Liste die themenbezogenen Feeds aus, die du verfolgen möchtest" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" +msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "Wähle aus, was du sehen (oder nicht sehen) möchtest, und wir kümmern uns um den Rest." +#~ msgid "Select what you want to see (or not see), and we’ll handle the rest." +#~ msgstr "Wähle aus, was du sehen (oder nicht sehen) möchtest, und wir kümmern uns um den Rest." -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." msgstr "Wähle aus, welche Sprachen deine abonnierten Feeds enthalten sollen. Wenn du keine Sprachen auswählst, werden alle Sprachen angezeigt." @@ -4721,58 +5437,65 @@ msgstr "Wähle aus, welche Sprachen deine abonnierten Feeds enthalten sollen. We #~ msgid "Select your app language for the default text to display in the app" #~ msgstr "Wählen deine App-Sprache für den Standardtext aus, der in der App angezeigt werden soll" -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "Wähle aus den folgenden Optionen deine Interessen aus" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." -msgstr "Wähle deine bevorzugte Sprache für die Übersetzungen in deinem Feed aus." +msgstr "Wähle deine bevorzugte Sprache für Übersetzungen in deinem Feed aus." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "Wähle deine primären algorithmischen Feeds" +#~ msgid "Select your primary algorithmic feeds" +#~ msgstr "Wähle deine primären algorithmischen Feeds" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" -msgstr "Wähle deine sekundären algorithmischen Feeds" +#~ msgid "Select your secondary algorithmic feeds" +#~ msgstr "Wähle deine sekundären algorithmischen Feeds" + +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" +msgstr "" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Bestätigungs-E-Mail senden" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "E-Mail senden" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "E-Mail senden" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "Feedback senden" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." +msgstr "" + +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "" @@ -4789,7 +5512,12 @@ msgstr "" msgid "Send verification email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "Sendet eine E-Mail mit Bestätigungscode für die Kontolöschung" @@ -4807,7 +5535,7 @@ msgstr "Server-Adresse" #~ msgid "Set Age" #~ msgstr "Alter festlegen" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "" @@ -4825,11 +5553,11 @@ msgstr "" #: src/view/screens/Settings/index.tsx:514 #~ msgid "Set dark theme to the dark theme" -#~ msgstr "Dunkles Thema auf das dunkle Thema einstellen" +#~ msgstr "Dunkelmodus auf den dunklen Modus setzen" #: src/view/screens/Settings/index.tsx:507 #~ msgid "Set dark theme to the dim theme" -#~ msgstr "Dunkles Thema auf das gedämpfte Thema einstellen" +#~ msgstr "Dunkelmodus auf den gedimmten Modus setzen" #: src/screens/Login/SetNewPasswordForm.tsx:102 msgid "Set new password" @@ -4839,23 +5567,23 @@ msgstr "Neues Passwort festlegen" #~ msgid "Set password" #~ msgstr "Passwort festlegen" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Setze diese Einstellung auf \"Nein\", um alle Zitatbeiträge aus deinem Feed auszublenden. Reposts sind weiterhin sichtbar." -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Setze diese Einstellung auf \"Nein\", um alle Antworten aus deinem Feed auszublenden." -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Setze diese Einstellung auf \"Nein\", um alle Reposts aus deinem Feed auszublenden." -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Setze diese Einstellung auf \"Ja\", um Antworten in einer Thread-Ansicht anzuzeigen. Dies ist eine experimentelle Funktion." -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Setze diese Einstellung auf \"Ja\", um Beispiele für deine gespeicherten Feeds in deinem Following-Feed anzuzeigen. Dies ist eine experimentelle Funktion." @@ -4867,23 +5595,23 @@ msgstr "Dein Konto einrichten" msgid "Sets Bluesky username" msgstr "Legt deinen Bluesky-Benutzernamen fest" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4912,12 +5640,11 @@ msgstr "" #~ msgid "Sets server for the Bluesky client" #~ msgstr "Setzt den Server für den Bluesky-Client" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "Einstellungen" @@ -4929,53 +5656,90 @@ msgstr "Sexuelle Aktivitäten oder erotische Nacktheit." msgid "Sexually Suggestive" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "Teilen" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "Teilen" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "Teilen" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "Feed teilen" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "Anzeigen" -#: src/view/screens/PreferencesFollowingFeed.tsx:68 -#~ msgid "Show all replies" -#~ msgstr "Alle Antworten anzeigen" - -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" msgstr "" @@ -4997,82 +5761,86 @@ msgstr "" #~ msgid "Show embeds from {0}" #~ msgstr "Eingebettete Medien von {0} anzeigen" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "Zeige ähnliche Konten wie {0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 msgid "Show less like this" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "Mehr anzeigen" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" msgstr "Beiträge aus meinen Feeds anzeigen" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" -msgstr "Zitierte Beiträge anzeigen" +msgstr "Zitatbeiträge anzeigen" #: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "Zitierte Beiträge im Following Feed anzeigen" +#~ msgid "Show quote-posts in Following feed" +#~ msgstr "Zitatbeiträge im Following-Feed anzeigen" #: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "Zitierte Beiträge im Following Feed anzeigen" +#~ msgid "Show quotes in Following" +#~ msgstr "Zitatbeiträge im Following-Feed anzeigen" #: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "Reposts im Following-Feed anzeigen" +#~ msgid "Show re-posts in Following feed" +#~ msgstr "Reposts im Following-Feed anzeigen" -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "Antworten anzeigen" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "Zeige Antworten von Personen, denen du folgst, vor allen anderen Antworten an." #: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "Antworten in folgendem Feed anzeigen" +#~ msgid "Show replies in Following" +#~ msgstr "Antworten in folgendem Feed anzeigen" #: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "Antworten in folgendem Feed anzeigen" +#~ msgid "Show replies in Following feed" +#~ msgstr "Antworten in folgendem Feed anzeigen" -#: src/view/screens/PreferencesFollowingFeed.tsx:70 -#~ msgid "Show replies with at least {value} {0}" -#~ msgstr "Antworten mit mindestens {value} {0} anzeigen" - -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "Reposts anzeigen" #: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "Reposts im Following-Feed anzeigen" +#~ msgid "Show reposts in Following" +#~ msgstr "Reposts im Following-Feed anzeigen" -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "Den Inhalt anzeigen" #: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "Nutzer anzeigen" +#~ msgid "Show users" +#~ msgstr "Benutzer anzeigen" #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" @@ -5094,17 +5862,17 @@ msgstr "Zeigt Beiträge von {0} in deinem Feed" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -5137,17 +5905,17 @@ msgstr "" msgid "Sign into Bluesky or create a new account" msgstr "" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "Abmelden" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -5163,7 +5931,7 @@ msgstr "Registriere dich oder melden dich an, um an der Diskussion teilzunehmen" msgid "Sign-in Required" msgstr "Anmelden erforderlich" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "Angemeldet als" @@ -5172,64 +5940,98 @@ msgstr "Angemeldet als" msgid "Signed in as @{0}" msgstr "Angemeldet als @{0}" +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "" + #: src/view/com/modals/SwitchAccount.tsx:70 #~ msgid "Signs {0} out of Bluesky" #~ msgstr "Meldet {0} von Bluesky ab" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "Überspringen" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "Diesen Schritt überspringen" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "Software-Entwicklung" -#: src/screens/Messages/Conversation/index.tsx:89 +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" +msgstr "" + +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:203 +#~ msgid "Some subtitle" +#~ msgstr "" + +#: src/screens/Messages/Conversation/index.tsx:106 msgid "Something went wrong" msgstr "" +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "" -#: src/components/Lists.tsx:203 -#~ msgid "Something went wrong!" -#~ msgstr "Es ist ein Fehler aufgetreten." +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "Es ist ein Fehler aufgetreten." -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "Entschuldigung! Deine Sitzung ist abgelaufen. Bitte logge dich erneut ein." -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "Antworten sortieren" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "Antworten auf denselben Beitrag sortieren nach:" #: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" +#~ msgid "Source:" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" msgstr "" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "Sport" @@ -5237,15 +6039,50 @@ msgstr "Sport" msgid "Square" msgstr "Quadratische" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" msgstr "" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "" + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." +msgstr "" + #: src/view/screens/Settings/index.tsx:862 #~ msgid "Status page" #~ msgstr "Status-Seite" -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" msgstr "" @@ -5253,7 +6090,7 @@ msgstr "" #~ msgid "Step" #~ msgstr "" -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" msgstr "" @@ -5261,49 +6098,56 @@ msgstr "" #~ msgid "Step {0} of {numSteps}" #~ msgstr "Schritt {0} von {numSteps}" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "Der Speicher wurde gelöscht, du musst die App jetzt neu starten." -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" -msgstr "Geschichtenbuch" +msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "Einreichen" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "Abonnieren" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "Abonniere den {0} Feed" +#~ msgid "Subscribe to the {0} feed" +#~ msgstr "Abonniere den {0} Feed" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "Abonniere diese Liste" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "Vorgeschlagene Follower" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "" +#: src/view/screens/Search/Search.tsx:425 +#~ msgid "Suggested Follows" +#~ msgstr "Vorgeschlagene Follower" + +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Vorgeschlagen für dich" @@ -5312,7 +6156,7 @@ msgstr "Vorgeschlagen für dich" msgid "Suggestive" msgstr "Suggestiv" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -5323,19 +6167,23 @@ msgstr "Support" msgid "Switch Account" msgstr "Konto wechseln" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "Wechseln zu {0}" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "Wechselt das Konto, in das du eingeloggt bist" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "System" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "Systemprotokoll" @@ -5351,29 +6199,51 @@ msgstr "Tag-Menü: {displayTag}" msgid "Tall" msgstr "Groß" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "Tippe, um die vollständige Ansicht anzuzeigen" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "Technik" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "Bedingungen" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Nutzungsbedingungen" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "" @@ -5381,12 +6251,13 @@ msgstr "" msgid "text" msgstr "Text" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Text-Eingabefeld" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "" @@ -5394,12 +6265,21 @@ msgstr "" msgid "That contains the following:" msgstr "" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "Dieser Handle ist bereits besetzt." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "Das Konto kann nach der Entblockiert mit dir interagieren." @@ -5415,15 +6295,24 @@ msgstr "Die Community-Richtlinien wurden nach <0/> verschoben" msgid "The Copyright Policy has been moved to <0/>" msgstr "Die Copyright-Richtlinie wurde nach <0/> verschoben" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "" @@ -5431,8 +6320,8 @@ msgstr "" msgid "The following steps will help customize your Bluesky experience." msgstr "Die folgenden Schritte helfen dir, dein Bluesky-Erlebnis anzupassen." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Möglicherweise wurde der Post gelöscht." @@ -5440,6 +6329,10 @@ msgstr "Möglicherweise wurde der Post gelöscht." msgid "The Privacy Policy has been moved to <0/>" msgstr "Die Datenschutzerklärung wurde nach <0/> verschoben" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "" + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "Das Support-Formular wurde verschoben. Wenn du Hilfe benötigst, wende dich bitte an <0/> oder besuche {HELP_DESK_URL}, um mit uns Kontakt aufzunehmen." @@ -5449,51 +6342,56 @@ msgid "The Terms of Service have been moved to" msgstr "Die Allgemeinen Geschäftsbedingungen wurden verschoben nach" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" -msgstr "Es gibt viele Feeds zum Ausprobieren:" +#~ msgid "There are many feeds to try:" +#~ msgstr "Es gibt viele Feeds zum Ausprobieren:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Es gab ein Problem bei der Kontaktaufnahme mit dem Server. Bitte überprüfe deine Internetverbindung und versuche es erneut." -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Es gab ein Problem beim Entfernen dieses Feeds. Bitte überprüfe deine Internetverbindung und versuche es erneut." #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Es gab ein Problem bei der Aktualisierung deines Feeds. Bitte überprüfe deine Internetverbindung und versuche es erneut." -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." msgstr "" #: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" +#~ msgid "There was an issue connecting to the chat." +#~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "Es gab ein Problem bei der Kontaktaufnahme mit dem Server" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "Es gab ein Problem bei der Kontaktaufnahme mit deinem Server" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Es gab ein Problem beim Abrufen von Mitteilungen. Tippe hier, um es erneut zu versuchen." -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Es gab ein Problem beim Abrufen der Beiträge. Tippe hier, um es erneut zu versuchen." @@ -5501,57 +6399,59 @@ msgstr "Es gab ein Problem beim Abrufen der Beiträge. Tippe hier, um es erneut msgid "There was an issue fetching the list. Tap here to try again." msgstr "Es gab ein Problem beim Abrufen der Liste. Tippe hier, um es erneut zu versuchen." -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Es gab ein Problem beim Abrufen deiner Listen. Tippe hier, um es erneut zu versuchen." -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "Es gab ein Problem bei der Synchronisierung deiner Einstellungen mit dem Server" +#~ msgid "There was an issue syncing your preferences with the server" +#~ msgstr "Es gab ein Problem bei der Synchronisierung deiner Einstellungen mit dem Server" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Es gab ein Problem beim Abrufen deiner App-Passwörter" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "Es gab ein Problem! {0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "Es ist ein Problem aufgetreten. Bitte überprüfe deine Internetverbindung und versuche es erneut." -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "Es gab ein unerwartetes Problem in der Anwendung. Bitte teile uns mit, wenn dies bei dir der Fall ist!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." -msgstr "Es gab einen Ansturm neuer Nutzer auf Bluesky! Wir werden dein Konto so schnell wie möglich aktivieren." +msgstr "Es gab einen Ansturm neuer Benutzer auf Bluesky! Wir werden dein Konto so schnell wie möglich aktivieren." #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "Dies sind beliebte Konten, die dir gefallen könnten:" +#~ msgid "These are popular accounts you might like:" +#~ msgstr "Dies sind beliebte Konten, die dir gefallen könnten:" #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" @@ -5561,14 +6461,26 @@ msgstr "Diese {screenDescription} wurde gekennzeichnet:" msgid "This account has requested that users sign in to view their profile." msgstr "Dieses Konto hat die Benutzer aufgefordert, sich anzumelden, um dein Profil zu sehen." -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:26 +#~ msgid "This chat was disconnected due to a network error." +#~ msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." msgstr "" @@ -5582,43 +6494,53 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Dieser Inhalt wird von {0} gehostet. Möchtest du externe Medien aktivieren?" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." -msgstr "Dieser Inhalt ist nicht verfügbar, weil einer der beteiligten Nutzer den anderen blockiert hat." +msgstr "Dieser Inhalt ist nicht verfügbar, weil einer der beteiligten Benutzer den anderen blockiert hat." -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "Dieser Inhalt ist ohne ein Bluesky-Konto nicht sichtbar." +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "" + #: src/view/screens/Settings/ExportCarDialog.tsx:75 #~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." #~ msgstr "Diese Funktion befindet sich in der Beta-Phase. Du kannst mehr über Kontodepot-Exporte in <0>diesem Blogpost lesen." -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Dieser Feed wird derzeit stark frequentiert und ist vorübergehend nicht verfügbar. Bitte versuche es später erneut." #: src/screens/Profile/Sections/Feed.tsx:59 #: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "Dieser Feed ist leer!" +#: src/view/screens/ProfileList.tsx:729 +#~ msgid "This feed is empty!" +#~ msgstr "Dieser Feed ist leer!" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Dieser Feed ist leer! Möglicherweise musst du mehr Benutzern folgen oder deine Spracheinstellungen anpassen." -#: src/view/com/posts/FeedShutdownMsg.tsx:97 +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:99 msgid "This feed is no longer online. We are showing <0>Discover instead." msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." -msgstr "Diese Informationen werden nicht an andere Nutzer weitergegeben." +msgstr "Diese Informationen werden nicht an andere Benutzer weitergegeben." #: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." @@ -5637,10 +6559,14 @@ msgid "This label was applied by the author." msgstr "" #: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" +#~ msgid "This label was applied by you" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "" @@ -5648,7 +6574,7 @@ msgstr "" msgid "This link is taking you to the following website:" msgstr "Dieser Link führt dich auf die folgende Website:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "Diese Liste ist leer!" @@ -5656,24 +6582,24 @@ msgstr "Diese Liste ist leer!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "Dieser Name ist bereits in Gebrauch" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "Dieser Beitrag wurde gelöscht." -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "" @@ -5689,8 +6615,12 @@ msgstr "" msgid "This user doesn't have any followers." msgstr "" +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "Dieser Benutzer hat dich blockiert. Du kannst deren Inhalte nicht sehen." @@ -5714,6 +6644,10 @@ msgstr "" msgid "This user is included in the <0>{0} list which you have muted." msgstr "" +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "" + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "" @@ -5730,20 +6664,24 @@ msgstr "Dies wird {0} aus deinen stummgeschalteten Wörtern löschen. Du kannst #~ msgid "This will hide this post from your feeds." #~ msgstr "Dadurch wird dieser Beitrag aus deinen Feeds ausgeblendet." -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "Thread-Einstellungen" -#: src/view/screens/PreferencesThreads.tsx:119 -msgid "Threaded Mode" -msgstr "Gewindemodus" +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "" -#: src/Navigation.tsx:276 +#: src/view/screens/PreferencesThreads.tsx:113 +msgid "Threaded Mode" +msgstr "Thread-Modus" + +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "Thread-Einstellungen" @@ -5751,7 +6689,7 @@ msgstr "Thread-Einstellungen" msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "" -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." msgstr "" @@ -5763,16 +6701,16 @@ msgstr "" msgid "Toggle between muted word options." msgstr "Zwischen den Optionen für stummgeschaltete Wörter wechseln." -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "Dieses Dropdown umschalten" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "" @@ -5780,10 +6718,12 @@ msgstr "" msgid "Transformations" msgstr "Verwandlungen" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "Übersetzen" @@ -5792,11 +6732,15 @@ msgctxt "action" msgid "Try again" msgstr "Erneut versuchen" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" msgstr "" @@ -5804,53 +6748,65 @@ msgstr "" msgid "Type:" msgstr "" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "Liste entblocken" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "Stummschaltung von Liste aufheben" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Es ist uns nicht gelungen, deinen Dienst zu kontaktieren. Bitte überprüfe deine Internetverbindung." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "Entblocken" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "Entblocken" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "Konto entblocken" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" msgstr "" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "Repost rückgängig machen" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "Nicht mehr folgen" @@ -5859,12 +6815,12 @@ msgstr "Nicht mehr folgen" msgid "Unfollow" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "{0} nicht mehr folgen" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "" @@ -5876,12 +6832,12 @@ msgstr "" #~ msgid "Unlike" #~ msgstr "Like aufheben" -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "Stummschaltung aufheben" @@ -5889,8 +6845,8 @@ msgstr "Stummschaltung aufheben" msgid "Unmute {truncatedTag}" msgstr "Stummschaltung von {truncatedTag} aufheben" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "Stummschaltung von Konto aufheben" @@ -5898,50 +6854,58 @@ msgstr "Stummschaltung von Konto aufheben" msgid "Unmute all {displayTag} posts" msgstr "Stummschaltung aller {displayTag}-Beiträge aufheben" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/components/dms/ConvoMenu.tsx:140 +#~ msgid "Unmute notifications" +#~ msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" msgstr "Stummschaltung von Thread aufheben" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "Anheften aufheben" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "Anheften der Moderationsliste aufheben" +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "" + #: src/view/screens/ProfileFeed.tsx:346 #~ msgid "Unsave" #~ msgstr "Speicherung aufheben" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "" #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" +#~ msgid "Unwanted sexual content" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 +#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:85 msgid "Unwanted Sexual Content" msgstr "" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "{displayName} in Listen aktualisieren" @@ -5955,9 +6919,9 @@ msgstr "" #: src/screens/Login/SetNewPasswordForm.tsx:186 msgid "Updating..." -msgstr "Aktualisieren..." +msgstr "Wird aktualisiert…" -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" msgstr "" @@ -5965,20 +6929,20 @@ msgstr "" msgid "Upload a text file to:" msgstr "Hochladen einer Textdatei auf:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -5988,9 +6952,9 @@ msgstr "" msgid "Use a file on your server" msgstr "" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." -msgstr "Verwende App-Passwörter, um dich bei anderen Bluesky-Clients anzumelden, ohne dass du vollen Zugriff auf deinen Account oder Passwort hast." +msgstr "Verwende App-Passwörter, um dich bei anderen Bluesky-Clients anzumelden, ohne vollen Zugriff auf deinen Account oder dein Passwort zu geben." #: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" @@ -6018,7 +6982,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Verwenden dies, um dich mit deinem Handle bei der anderen App einzuloggen." @@ -6027,19 +6991,23 @@ msgid "Used by:" msgstr "Verwendet von:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "Benutzer blockiert" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr "" +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "Benutzer durch der Liste blockiert" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "" @@ -6051,46 +7019,53 @@ msgstr "Benutzer blockiert dich" #~ msgid "User handle" #~ msgstr "Benutzerhandle" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "Benutzerliste von {0}" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "Benutzerliste von <0/>" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "Benutzerliste von dir" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "Benutzerliste erstellt" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "Benutzerliste aktualisiert" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "Benutzerlisten" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "Benutzername oder E-Mail-Adresse" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "Benutzer" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" -msgstr "Nutzer gefolgt von <0/>" +msgstr "Benutzer gefolgt von <0/>" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "Benutzer in \"{0}\"" @@ -6110,15 +7085,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "E-Mail bestätigen" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "Meine E-Mail bestätigen" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "Meine E-Mail bestätigen" @@ -6139,31 +7114,44 @@ msgstr "Überprüfe deine E-Mail" #~ msgid "Version {0}" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "Videospiele" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "Avatar von {0} ansehen" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "Debug-Eintrag anzeigen" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "Vollständigen Thread ansehen" @@ -6171,13 +7159,15 @@ msgstr "Vollständigen Thread ansehen" msgid "View information about these labels" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Profil ansehen" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "Avatar ansehen" @@ -6185,10 +7175,15 @@ msgstr "Avatar ansehen" msgid "View the labeling service provided by @{0}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -6197,7 +7192,6 @@ msgstr "Seite ansehen" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Warnen" @@ -6217,15 +7211,15 @@ msgstr "" msgid "We couldn't find any results for that hashtag." msgstr "Wir konnten keine Ergebnisse für diesen Hashtag finden." -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" msgstr "" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Wir schätzen {estimatedTime} bis dein Konto bereit ist." -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Wir hoffen, dass du eine schöne Zeit hast. Denke daran, Bluesky ist:" @@ -6238,22 +7232,22 @@ msgid "We recommend avoiding common words that appear in many posts, since it ca msgstr "Wir empfehlen, gebräuchliche Wörter zu vermeiden, die in vielen Beiträgen vorkommen, da dies dazu führen kann, dass keine Beiträge angezeigt werden." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "Wir empfehlen unser \"Discover\" Feed:" +#~ msgid "We recommend our \"Discover\" feed:" +#~ msgstr "Wir empfehlen unser \"Discover\" Feed:" #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "" -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Die Verbindung konnte nicht hergestellt werden. Bitte versuche es erneut, um mit der Einrichtung deines Kontos fortzufahren. Wenn der Versuch weiterhin fehlschlägt, kannst du diesen Schritt überspringen." -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "Wir werden dich benachrichtigen, wenn dein Konto bereit ist." @@ -6261,15 +7255,19 @@ msgstr "Wir werden dich benachrichtigen, wenn dein Konto bereit ist." #~ msgid "We'll look into your appeal promptly." #~ msgstr "Wir werden deinen Widerspruch unverzüglich prüfen." -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "Wir verwenden diese Informationen, um dein Erlebnis individuell zu gestalten." -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "Wir freuen uns sehr, dass du dabei bist!" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Es tut uns leid, aber wir waren nicht in der Lage, diese Liste aufzulösen. Wenn das Problem weiterhin besteht, kontaktiere bitte den Ersteller der Liste, @{handleOrDid}." @@ -6277,34 +7275,54 @@ msgstr "Es tut uns leid, aber wir waren nicht in der Lage, diese Liste aufzulös msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Es tut uns leid, aber wir konnten deine stummgeschalteten Wörter nicht laden. Bitte versuche es erneut." -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Es tut uns leid, aber deine Suche konnte nicht abgeschlossen werden. Bitte versuche es in ein paar Minuten erneut." -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "" + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Es tut uns leid! Wir können die Seite, nach der du gesucht hast, nicht finden." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 +#~ msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#~ msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "" + +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" msgstr "" #: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Willkommen bei <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" msgstr "Was sind deine Interessen?" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "" + #: src/view/com/modals/report/Modal.tsx:169 #~ msgid "What is the issue with this {collectionName}?" #~ msgstr "Was ist das Problem mit diesem {collectionName}?" #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "Was gibt's?" @@ -6316,36 +7334,53 @@ msgstr "Welche Sprachen werden in diesem Beitrag verwendet?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Welche Sprachen würdest du gerne in deinen algorithmischen Feeds sehen?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "Wer antworten kann" -#: src/screens/Home/NoFeedsPinned.tsx:92 +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "" + +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "" @@ -6353,39 +7388,61 @@ msgstr "" msgid "Wide" msgstr "Breit" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "Beitrag verfassen" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "Schreibe deine Antwort" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "Schriftsteller" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "Ja" -#: src/components/dms/MessageItem.tsx:158 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "" + +#: src/components/dms/MessageItem.tsx:182 msgid "Yesterday, {time}" msgstr "" -#: src/screens/Deactivated.tsx:136 +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "Du befindest dich in der Warteschlange." @@ -6393,29 +7450,49 @@ msgstr "Du befindest dich in der Warteschlange." msgid "You are not following anyone." msgstr "" -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "Du kannst auch neue benutzerdefinierte Feeds entdecken und ihnen folgen." +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." -msgstr "Du kannst diese Einstellungen später ändern." +#~ msgid "You can change these settings later." +#~ msgstr "Du kannst diese Einstellungen später ändern." + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "" + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." msgstr "Du kannst dich jetzt mit deinem neuen Passwort anmelden." +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "" +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Du hast noch keine Einladungscodes! Wir schicken dir welche, wenn du schon etwas länger bei Bluesky bist." -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." msgstr "Du hast keine angehefteten Feeds." @@ -6423,28 +7500,32 @@ msgstr "Du hast keine angehefteten Feeds." #~ msgid "You don't have any saved feeds!" #~ msgstr "Du hast keine gespeicherten Feeds!" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." msgstr "Du hast keine gespeicherten Feeds." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Du hast den Verfasser blockiert oder du wurdest vom Verfasser blockiert." +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "Du hast diesen Benutzer blockiert und kannst seine Inhalte nicht sehen." #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Du hast einen ungültigen Code eingegeben. Er sollte wie XXXXX-XXXXX aussehen." -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "" @@ -6453,11 +7534,11 @@ msgid "You have hidden this post." msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "" -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "" @@ -6465,18 +7546,22 @@ msgstr "" #~ msgid "You have muted this user." #~ msgstr "Du hast diesen Benutzer stummgeschaltet." -#: src/view/com/feeds/ProfileFeedgens.tsx:144 +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "" + +#: src/view/com/feeds/ProfileFeedgens.tsx:137 msgid "You have no feeds." msgstr "Du hast keine Feeds." -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." msgstr "Du hast keine Listen." #: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "" +#~ msgid "You have no messages yet. Start a conversation with someone!" +#~ msgstr "" #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." @@ -6486,7 +7571,7 @@ msgstr "" #~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." #~ msgstr "Du hast noch keine Konten blockiert. Um ein Konto zu blockieren, gehe auf dessen Profil und wähle \"Konto blockieren\" aus dem Menü des Kontos aus." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Du hast noch keine App-Passwörter erstellt. Du kannst eines erstellen, indem du auf die Schaltfläche unten klickst." @@ -6498,18 +7583,34 @@ msgstr "" #~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." #~ msgstr "Du hast noch keine Konten stummgeschaltet. Um ein Konto stumm zu schalten, gehe auf dessen Profil und wähle \"Konto stummschalten\" aus dem Menü des Kontos aus." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Du hast noch keine Wörter oder Tags stummgeschaltet" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "" + #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "" @@ -6519,18 +7620,34 @@ msgstr "" #~ msgstr "Du musst 18 Jahre oder älter sein, um Inhalte für Erwachsene zu aktivieren." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" -msgstr "Du musst 18 Jahre oder älter sein, um Inhalte für Erwachsene zu aktivieren." +#~ msgid "You must be 18 years or older to enable adult content" +#~ msgstr "Du musst 18 Jahre oder älter sein, um Inhalte für Erwachsene zu aktivieren." -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "" + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "Du wirst keine Mitteilungen mehr für diesen Thread erhalten" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "Du erhälst nun Mitteilungen für dieses Thread" @@ -6538,60 +7655,98 @@ msgstr "Du erhälst nun Mitteilungen für dieses Thread" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Du erhältst eine E-Mail mit einem \"Reset-Code\". Gib diesen Code hier ein und gib dann dein neues Passwort ein." -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" msgstr "" -#: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "Du hast die Kontrolle" +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" +msgstr "" + +#: src/screens/Onboarding/StepModeration/index.tsx:60 +#~ msgid "You're in control" +#~ msgstr "Du hast die Kontrolle" + +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "Du bist in der Warteschlange" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "" + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "Du kannst loslegen!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "" -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Du hast das Ende deines Feeds erreicht! Finde weitere Konten, denen du folgen kannst." -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "Dein Konto" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "Dein Konto wurde gelöscht" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "Dein Kontodepot, das alle öffentlichen Datensätze enthält, kann als \"CAR\"-Datei heruntergeladen werden. Diese Datei enthält keine Medieneinbettungen, wie z. B. Bilder, oder deine privaten Daten, welche separat abgerufen werden müssen." -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "Dein Geburtsdatum" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "Deine Wahl wird gespeichert, kann aber später in den Einstellungen geändert werden." #: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "Dein Standard-Feed ist \"Following\"" +#~ msgid "Your default feed is \"Following\"" +#~ msgstr "Dein Standard-Feed ist \"Following\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "Deine E-Mail scheint ungültig zu sein." @@ -6603,11 +7758,15 @@ msgstr "Deine E-Mail wurde aktualisiert, aber nicht bestätigt. Als nächsten Sc msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Deine E-Mail wurde noch nicht bestätigt. Dies ist ein wichtiger Sicherheitsschritt, den wir empfehlen." -#: src/view/com/posts/FollowingEmptyState.tsx:47 +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:43 msgid "Your following feed is empty! Follow more users to see what's happening." msgstr "Dein Following-Feed ist leer! Folge mehr Benutzern, um auf dem Laufenden zu bleiben." -#: src/screens/Signup/StepHandle.tsx:73 +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "Dein vollständiger Handle lautet" @@ -6619,30 +7778,34 @@ msgstr "Dein vollständiger Handle lautet <0>@{0}" msgid "Your muted words" msgstr "Deine stummgeschalteten Wörter" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "Dein Passwort wurde erfolgreich geändert!" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "Dein Beitrag wurde veröffentlicht" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Deine Beiträge, Likes und Blockierungen sind öffentlich. Stummschaltungen sind privat." -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "Dein Profil" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "" + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "Deine Antwort wurde veröffentlicht" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" msgstr "" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "Dein Benutzerhandle" diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index d3bc4014be..d2bc431e19 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -13,45 +13,62 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:55 +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" msgstr "" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/KnownFollowers.tsx:179 +#~ msgid "{0, plural, one {and # other} other {and # others}}" +#~ msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -59,69 +76,151 @@ msgstr "" msgid "{0, plural, one {post} other {posts}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "" + #: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" +#~ msgid "{0} your feeds" +#~ msgstr "" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" msgstr "" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" msgstr "" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:461 +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:485 +#~ msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:497 +#~ msgid "<0>{0}, <1>{1}, and {2} {3, plural, one {other} other {others}} are included in your starter pack" +#~ msgstr "" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "" + #: src/view/shell/Drawer.tsx:96 #~ msgid "<0>{0} following" #~ msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "" + #: src/components/ProfileHoverCard/index.web.tsx:437 #~ msgid "<0>{followers} <1>{pluralizedFollowers}" #~ msgstr "" @@ -147,34 +246,42 @@ msgstr "" #~ msgid "<0>Welcome to<1>Bluesky" #~ msgstr "" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" msgstr "" -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "" + +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" msgstr "" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" msgstr "" @@ -182,26 +289,26 @@ msgstr "" #~ msgid "account" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "" @@ -217,37 +324,46 @@ msgstr "" msgid "Account removed from quick access" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "" @@ -256,7 +372,7 @@ msgstr "" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "" @@ -264,9 +380,9 @@ msgstr "" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "" @@ -286,11 +402,19 @@ msgstr "" msgid "Add muted words and tags" msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/StarterPack/Wizard/index.tsx:197 +#~ msgid "Add people to your starter pack that you think others will enjoy following" +#~ msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" msgstr "" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" msgstr "" @@ -298,12 +422,16 @@ msgstr "" msgid "Add the following DNS record to your domain:" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" msgstr "" @@ -311,40 +439,66 @@ msgstr "" #~ msgid "Added" #~ msgstr "" -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "" #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "" +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "" + #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." msgstr "" -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." msgstr "" +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "" @@ -354,17 +508,17 @@ msgstr "" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" msgstr "" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" msgstr "" @@ -381,84 +535,113 @@ msgstr "" msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "" -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" msgstr "" -#: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/components/StarterPack/ShareDialog.tsx:79 +#~ msgid "An error occurred while saving the image." +#~ msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:134 +#~ msgid "An error occurred while trying to delete the message. Please try again." +#~ msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" msgstr "" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "" -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "" @@ -466,32 +649,59 @@ msgstr "" #~ msgid "Appeal submitted." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:430 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "" + +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +#~ msgid "Are you sure you want delete this starter pack?" +#~ msgstr "" + +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "" #: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgstr "" + +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" msgstr "" #: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgstr "" + +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "" @@ -503,7 +713,8 @@ msgstr "" msgid "Are you writing in <0>{0}?" msgstr "" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "" @@ -511,32 +722,35 @@ msgstr "" msgid "Artistic or non-erotic nudity." msgstr "" -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "" +#~ msgid "Based on your interest in {interestsText}" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "" @@ -544,56 +758,56 @@ msgstr "" msgid "Birthday" msgstr "" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "" @@ -601,19 +815,19 @@ msgstr "" msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "" -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." msgstr "" @@ -630,6 +844,10 @@ msgstr "" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "" +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "" + #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 #~ msgid "Bluesky is flexible." @@ -645,7 +863,11 @@ msgstr "" #~ msgid "Bluesky is public." #~ msgstr "" -#: src/screens/Moderation/index.tsx:533 +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "" + +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "" @@ -657,12 +879,31 @@ msgstr "" msgid "Blur images and filter from feeds" msgstr "" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 msgid "Browse other feeds" msgstr "" @@ -670,7 +911,7 @@ msgstr "" msgid "Business" msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "" @@ -683,10 +924,10 @@ msgid "By {0}" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" +#~ msgid "by @{0}" +#~ msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "" @@ -694,7 +935,7 @@ msgstr "" msgid "By creating an account you agree to the {els}." msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "" @@ -702,7 +943,7 @@ msgstr "" msgid "Camera" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "" @@ -710,14 +951,15 @@ msgstr "" #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -725,23 +967,23 @@ msgstr "" #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "" @@ -757,12 +999,16 @@ msgstr "" msgid "Cancel profile editing" msgstr "" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "" @@ -774,17 +1020,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "" @@ -792,12 +1038,12 @@ msgstr "" msgid "Change my email" msgstr "" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "" @@ -809,20 +1055,30 @@ msgstr "" msgid "Change Your Email" msgstr "" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" msgstr "" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" msgstr "" @@ -830,8 +1086,8 @@ msgstr "" #~ msgid "Chat with {chatId}" #~ msgstr "" -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "" @@ -843,23 +1099,43 @@ msgstr "" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" +#: src/view/com/modals/Threadgate.tsx:75 +#~ msgid "Choose \"Everybody\" or \"Nobody\"" +#~ msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" msgstr "" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." msgstr "" @@ -872,40 +1148,45 @@ msgstr "" msgid "Choose this color as your avatar" msgstr "" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 +#~ msgid "Choose your main feeds" +#~ msgstr "" + +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "" @@ -913,10 +1194,18 @@ msgstr "" msgid "click here" msgstr "" -#: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +#~ msgid "Click here to add one." +#~ msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "" @@ -925,19 +1214,33 @@ msgstr "" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:47 +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "" + +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "" @@ -949,11 +1252,12 @@ msgstr "" msgid "Close bottom drawer" msgstr "" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" msgstr "" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" msgstr "" @@ -965,6 +1269,10 @@ msgstr "" msgid "Close image viewer" msgstr "" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "" @@ -982,7 +1290,7 @@ msgstr "" msgid "Closes password update alert" msgstr "" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "" @@ -990,42 +1298,48 @@ msgstr "" msgid "Closes viewer for header image" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "" #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "" +#~ msgid "Configure content filtering setting for category: {0}" +#~ msgstr "" #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" @@ -1035,13 +1349,11 @@ msgstr "" msgid "Configured in <0>moderation settings." msgstr "" -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -1056,33 +1368,33 @@ msgstr "" msgid "Confirm content language settings" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "" -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "" -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "" @@ -1094,28 +1406,28 @@ msgstr "" msgid "Content Blocked" msgstr "" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "" @@ -1123,12 +1435,8 @@ msgstr "" msgid "Context menu backdrop, click to close the menu." msgstr "" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "" @@ -1136,41 +1444,47 @@ msgstr "" msgid "Continue as {0} (currently signed in)" msgstr "" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "" +#~ msgid "Continue to the next step" +#~ msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" +#~ msgid "Continue to the next step without following any accounts" +#~ msgstr "" + +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" msgstr "" -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "" @@ -1178,11 +1492,12 @@ msgstr "" msgid "Copied!" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "" @@ -1195,47 +1510,63 @@ msgstr "" msgid "Copy code" msgstr "" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "" -#: src/components/dms/ConvoMenu.tsx:80 +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" +msgstr "" + +#: src/components/dms/LeaveConvoPrompt.tsx:39 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" msgstr "" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "" #: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "" +#~ msgid "Could not load profiles. Please try again later." +#~ msgstr "" -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" msgstr "" @@ -1243,16 +1574,34 @@ msgstr "" #~ msgid "Could not unmute chat" #~ msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "" + #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "" @@ -1261,11 +1610,15 @@ msgstr "" msgid "Create an account" msgstr "" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "" @@ -1274,11 +1627,15 @@ msgstr "" msgid "Create new account" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/StarterPack/ShareDialog.tsx:158 +#~ msgid "Create QR code" +#~ msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "" @@ -1286,7 +1643,8 @@ msgstr "" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "" @@ -1299,8 +1657,8 @@ msgstr "" msgid "Custom domain" msgstr "" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "" @@ -1308,8 +1666,8 @@ msgstr "" msgid "Customize media from external sites." msgstr "" -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "" @@ -1317,15 +1675,24 @@ msgstr "" msgid "Dark mode" msgstr "" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" msgstr "" @@ -1333,14 +1700,17 @@ msgstr "" msgid "Debug panel" msgstr "" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "" @@ -1348,65 +1718,83 @@ msgstr "" #~ msgid "Delete Account" #~ msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "" -#: src/components/dms/MessageMenu.tsx:101 +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:124 msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:466 +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" msgstr "" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1416,15 +1804,19 @@ msgstr "" msgid "Descriptive alt text" msgstr "" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" msgstr "" @@ -1432,7 +1824,7 @@ msgstr "" msgid "Disable Email 2FA" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" msgstr "" @@ -1447,32 +1839,50 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" msgstr "" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "" + +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "" @@ -1489,7 +1899,7 @@ msgstr "" msgid "Does not include nudity." msgstr "" -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "" @@ -1503,30 +1913,27 @@ msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "" @@ -1535,18 +1942,22 @@ msgstr "" msgid "Done{extraText}" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "" +#~ msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." +#~ msgstr "" #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" @@ -1568,19 +1979,19 @@ msgstr "" msgid "E.g. artistic nudes." msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "" @@ -1588,32 +1999,45 @@ msgstr "" msgid "Each code works once. You'll receive more invite codes periodically." msgstr "" +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" msgstr "" @@ -1621,25 +2045,37 @@ msgstr "" msgid "Edit my profile" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" +#: src/view/screens/Feeds.tsx:416 +#~ msgid "Edit Saved Feeds" +#~ msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "" @@ -1648,11 +2084,20 @@ msgstr "" msgid "Edit your profile description" msgstr "" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "" @@ -1678,7 +2123,7 @@ msgstr "" msgid "Email verified" msgstr "" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "" @@ -1687,8 +2132,8 @@ msgid "Embed HTML code" msgstr "" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" msgstr "" @@ -1700,29 +2145,34 @@ msgstr "" msgid "Enable {0} only" msgstr "" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "" +#~ msgid "Enable Adult Content" +#~ msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "" +#~ msgid "Enable adult content in your feeds" +#~ msgstr "" #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 msgid "Enable external media" msgstr "" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "" @@ -1730,7 +2180,9 @@ msgstr "" msgid "Enable this source only" msgstr "" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "" @@ -1738,7 +2190,15 @@ msgstr "" msgid "End of feed" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/components/Lists.tsx:52 +#~ msgid "End of list" +#~ msgstr "" + +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "" @@ -1755,7 +2215,7 @@ msgstr "" msgid "Enter Confirmation Code" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "" @@ -1772,7 +2232,7 @@ msgid "Enter your birth date" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "" @@ -1788,32 +2248,45 @@ msgstr "" msgid "Enter your username and password" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" msgstr "" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "" @@ -1829,8 +2302,8 @@ msgstr "" msgid "Exits image view" msgstr "" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "" @@ -1838,11 +2311,19 @@ msgstr "" msgid "Expand alt text" msgstr "" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "" @@ -1851,12 +2332,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "" @@ -1866,83 +2347,143 @@ msgid "External Media" msgstr "" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "" -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:28 +#~ msgid "Failed to load past messages." +#~ msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:110 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:143 #~ msgid "Failed to load recommended feeds" #~ msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +#~ msgid "Failed to send message(s)." +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" +#: src/view/screens/Feeds.tsx:709 +#~ msgid "Feed offline" +#~ msgstr "" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" msgstr "" @@ -1950,19 +2491,23 @@ msgstr "" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "" #: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" +#~ msgid "Feeds can be topical as well!" +#~ msgstr "" + +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" msgstr "" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" msgstr "" @@ -1970,17 +2515,21 @@ msgstr "" msgid "Filter from feeds" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "" + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" msgstr "" @@ -1996,19 +2545,27 @@ msgstr "" #~ msgid "Finding similar accounts..." #~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." msgstr "" -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "" -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "" @@ -2021,112 +2578,172 @@ msgstr "" msgid "Flip vertically" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" msgstr "" +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 +#~ msgid "Follow All" +#~ msgstr "" + #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." msgstr "" +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 +#~ msgid "Follow selected accounts and continue to the next step" +#~ msgstr "" + #: src/view/com/auth/onboarding/RecommendedFollows.tsx:65 #~ msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." #~ msgstr "" -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" +#: src/components/KnownFollowers.tsx:169 +#~ msgid "Followed by" +#~ msgstr "" + +#: src/view/com/profile/ProfileCard.tsx:190 +#~ msgid "Followed by {0}" +#~ msgstr "" + +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" msgstr "" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" msgstr "" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" msgstr "" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "" @@ -2135,15 +2752,15 @@ msgstr "" msgid "Forgot Password" msgstr "" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "" @@ -2151,7 +2768,7 @@ msgstr "" msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "" @@ -2160,48 +2777,77 @@ msgstr "" msgid "Gallery" msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "" -#: src/screens/Onboarding/StepProfile/index.tsx:228 +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" +msgstr "" + +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 msgid "Give your profile a face" msgstr "" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:189 +#~ msgid "Go back to previous screen" +#~ msgstr "" + +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "" @@ -2215,16 +2861,24 @@ msgstr "" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" msgstr "" @@ -2232,112 +2886,114 @@ msgstr "" msgid "Graphic Media" msgstr "" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" msgstr "" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "" +#~ msgid "Here are some accounts for you to follow" +#~ msgstr "" #: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "" +#~ msgid "Here are some popular topical feeds. You can choose to follow as many as you like." +#~ msgstr "" #: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "" +#~ msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." +#~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "" -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." msgstr "" @@ -2345,11 +3001,12 @@ msgstr "" msgid "Hmmmm, we couldn't load that moderation service." msgstr "" -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "" @@ -2358,8 +3015,8 @@ msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "" @@ -2382,7 +3039,8 @@ msgstr "" msgid "I have my own domain" msgstr "" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" msgstr "" @@ -2398,43 +3056,55 @@ msgstr "" msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "" -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "" -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "" @@ -2442,23 +3112,23 @@ msgstr "" msgid "Input new password" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "" +#: src/screens/Login/LoginForm.tsx:221 +#~ msgid "Input the password tied to {identifier}" +#~ msgstr "" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the username or email address you used at signup" msgstr "" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "" @@ -2466,20 +3136,24 @@ msgstr "" msgid "Input your preferred hosting provider" msgstr "" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "" @@ -2487,11 +3161,11 @@ msgstr "" msgid "Invite a Friend" msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "" @@ -2503,15 +3177,43 @@ msgstr "" msgid "Invite codes: 1 available" msgstr "" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." +#~ msgid "It shows posts from the people you follow as they happen." +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." msgstr "" #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "" + +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "" @@ -2519,19 +3221,19 @@ msgstr "" #~ msgid "label has been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "" -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "" -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "" @@ -2539,33 +3241,33 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "" @@ -2573,31 +3275,38 @@ msgstr "" msgid "Learn More" msgstr "" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "" -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "" -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" msgstr "" @@ -2609,24 +3318,29 @@ msgstr "" msgid "Leaving Bluesky" msgstr "" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "" -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "" @@ -2634,14 +3348,23 @@ msgstr "" #~ msgid "Like" #~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "" + +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "" @@ -2665,75 +3388,92 @@ msgstr "" #~ msgid "Liked by {likeCount} {0}" #~ msgstr "" -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" msgstr "" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "" -#: src/view/screens/Notifications.tsx:159 +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "" @@ -2741,18 +3481,23 @@ msgstr "" msgid "Loading..." msgstr "" -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "" @@ -2760,7 +3505,7 @@ msgstr "" msgid "Login to account that is not listed" msgstr "" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" msgstr "" @@ -2772,12 +3517,20 @@ msgstr "" msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" msgstr "" #: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." +#~ msgid "Looks like you're missing a following feed." +#~ msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" msgstr "" #: src/view/com/modals/LinkWarning.tsx:79 @@ -2788,31 +3541,35 @@ msgstr "" msgid "Manage your muted words and tags" msgstr "" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" msgstr "" @@ -2820,40 +3577,37 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" #: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "" +#~ msgid "Messaging settings" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "" @@ -2861,56 +3615,57 @@ msgstr "" msgid "Moderation details" msgstr "" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "" @@ -2918,14 +3673,22 @@ msgstr "" msgid "More feeds" msgstr "" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "" + #: src/components/TagMenu/index.tsx:249 msgid "Mute" msgstr "" @@ -2934,12 +3697,12 @@ msgstr "" msgid "Mute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "" @@ -2947,6 +3710,11 @@ msgstr "" msgid "Mute all {displayTag} posts" msgstr "" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" msgstr "" @@ -2955,16 +3723,16 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "" #: src/components/dms/ConvoMenu.tsx:136 #: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "" +#~ msgid "Mute notifications" +#~ msgstr "" -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "" @@ -2976,25 +3744,25 @@ msgstr "" msgid "Mute this word in tags only" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "" @@ -3003,15 +3771,15 @@ msgstr "" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "" -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "" @@ -3020,52 +3788,62 @@ msgstr "" msgid "My Birthday" msgstr "" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" msgstr "" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "" @@ -3074,7 +3852,7 @@ msgstr "" #~ msgid "Never lose access to your followers and data." #~ msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "" @@ -3082,7 +3860,7 @@ msgstr "" msgid "Nevermind, create a handle for me" msgstr "" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "" @@ -3091,65 +3869,79 @@ msgstr "" msgid "New" msgstr "" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "" @@ -3162,17 +3954,17 @@ msgstr "" msgid "Next image" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "" @@ -3180,68 +3972,102 @@ msgstr "" msgid "No DNS Panel" msgstr "" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "" + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" msgstr "" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "" + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." msgstr "" #: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "" +#~ msgid "No search results found for \"{searchText}\"." +#~ msgstr "" #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "" @@ -3250,8 +4076,8 @@ msgstr "" #~ msgid "Not Applicable." #~ msgstr "" -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "" @@ -3260,27 +4086,57 @@ msgstr "" msgid "Not right now" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "" -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "" -#: src/components/dms/MessageItem.tsx:145 +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" +msgstr "" + +#: src/components/dms/MessageItem.tsx:169 msgid "Now" msgstr "" @@ -3288,7 +4144,7 @@ msgstr "" msgid "Nudity" msgstr "" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "" @@ -3300,17 +4156,17 @@ msgstr "" msgid "Off" msgstr "" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "" @@ -3318,107 +4174,151 @@ msgstr "" msgid "Okay" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "" -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" msgstr "" -#: src/screens/Signup/StepHandle.tsx:98 +#: src/view/com/threadgate/WhoCanReply.tsx:100 +#~ msgid "Only {0} can reply." +#~ msgstr "" + +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "" -#: src/screens/Onboarding/StepProfile/index.tsx:280 +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:277 msgid "Open avatar creator" msgstr "" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "" #: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "" +#~ msgid "Opens an expanded list of users in this notification" +#~ msgstr "" #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "" @@ -3426,7 +4326,7 @@ msgstr "" msgid "Opens device photo gallery" msgstr "" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "" @@ -3440,7 +4340,7 @@ msgstr "" msgid "Opens flow to sign into your existing Bluesky account" msgstr "" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" msgstr "" @@ -3448,23 +4348,27 @@ msgstr "" msgid "Opens list of invite codes" msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "" @@ -3472,28 +4376,28 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" msgstr "" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "" +#: src/view/screens/Feeds.tsx:417 +#~ msgid "Opens screen to edit Saved Feeds" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" msgstr "" @@ -3502,36 +4406,53 @@ msgid "Opens the linked website" msgstr "" #: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "" +#~ msgid "Opens the message settings page" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "" + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "" @@ -3539,11 +4460,15 @@ msgstr "" msgid "Other account" msgstr "" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "" -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "" + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "" @@ -3552,14 +4477,14 @@ msgstr "" msgid "Page Not Found" msgstr "" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "" @@ -3571,52 +4496,66 @@ msgstr "" msgid "Password updated!" msgstr "" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "" -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "" -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" msgstr "" @@ -3624,7 +4563,12 @@ msgstr "" msgid "Play {0}" msgstr "" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/screens/Messages/Settings.tsx:97 +#: src/screens/Messages/Settings.tsx:104 +#~ msgid "Play notification sounds" +#~ msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" msgstr "" @@ -3637,15 +4581,16 @@ msgstr "" msgid "Plays the GIF" msgstr "" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "" -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "" -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "" @@ -3653,11 +4598,11 @@ msgstr "" msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "" @@ -3665,19 +4610,29 @@ msgstr "" msgid "Please enter a valid word, tag, or phrase to mute" msgstr "" -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "" + #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" msgstr "" @@ -3685,11 +4640,12 @@ msgstr "" msgid "Please Verify Your Email" msgstr "" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "" @@ -3697,46 +4653,46 @@ msgstr "" msgid "Porn" msgstr "" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" msgstr "" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "" @@ -3744,8 +4700,8 @@ msgstr "" msgid "Post Languages" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "" @@ -3753,7 +4709,8 @@ msgstr "" msgid "posts" msgstr "" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "" @@ -3761,7 +4718,7 @@ msgstr "" msgid "Posts can be muted based on their text, their tags, or both." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "" @@ -3769,14 +4726,22 @@ msgstr "" msgid "Potentially Misleading Link" msgstr "" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "" @@ -3785,45 +4750,57 @@ msgstr "" #~ msgid "Press to Retry" #~ msgstr "" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "" -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "" @@ -3831,11 +4808,11 @@ msgstr "" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "" @@ -3843,33 +4820,52 @@ msgstr "" msgid "Public, shareable lists of users to mute or block in bulk." msgstr "" -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." msgstr "" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 -msgid "Quote post" -msgstr "" +#: src/view/com/modals/Repost.tsx:66 +#~ msgctxt "action" +#~ msgid "Quote post" +#~ msgstr "" #: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "" +#~ msgctxt "action" +#~ msgid "Quote Post" +#~ msgstr "" -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "" @@ -3877,11 +4873,19 @@ msgstr "" msgid "Ratios" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" msgstr "" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "" + +#: src/components/dms/MessageReportDialog.tsx:149 +#~ msgid "Reason: {0}" +#~ msgstr "" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "" @@ -3893,20 +4897,39 @@ msgstr "" #~ msgid "Recommended Users" #~ msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "" + +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "" + #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "" @@ -3914,9 +4937,13 @@ msgstr "" msgid "Remove Banner" msgstr "" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "" @@ -3924,15 +4951,16 @@ msgstr "" msgid "Remove feed?" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "" @@ -3940,7 +4968,7 @@ msgstr "" msgid "Remove image" msgstr "" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "" @@ -3948,11 +4976,20 @@ msgstr "" msgid "Remove mute word from your list" msgstr "" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "" + +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 msgid "Remove quote" msgstr "" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "" @@ -3960,48 +4997,60 @@ msgstr "" msgid "Remove this feed from your saved feeds" msgstr "" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" msgstr "" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" msgstr "" #: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "" +#~ msgid "Removes default thumbnail from {0}" +#~ msgstr "" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" msgstr "" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 msgid "Replace with Discover" msgstr "" -#: src/view/screens/Profile.tsx:194 +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:98 +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "" + +#: src/view/com/threadgate/WhoCanReply.tsx:123 +#~ msgid "Replies on this thread are disabled" +#~ msgstr "" + +#: src/components/WhoCanReply.tsx:243 msgid "Replies to this thread are disabled" msgstr "" -#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "" @@ -4011,13 +5060,26 @@ msgstr "" #~ msgid "Reply to <0/>" #~ msgstr "" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "" -#: src/components/dms/MessageMenu.tsx:109 +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" +msgstr "" + +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 msgid "Report" msgstr "" @@ -4026,14 +5088,14 @@ msgstr "" #~ msgid "Report account" #~ msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" msgstr "" @@ -4041,64 +5103,75 @@ msgstr "" msgid "Report dialog" msgstr "" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "" @@ -4106,7 +5179,7 @@ msgstr "" msgid "Reposted By" msgstr "" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "" @@ -4114,15 +5187,20 @@ msgstr "" #~ msgid "Reposted by <0/>" #~ msgstr "" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "" @@ -4131,12 +5209,12 @@ msgstr "" msgid "Request Change" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "" @@ -4144,7 +5222,7 @@ msgstr "" msgid "Require email code to log into your account" msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "" @@ -4153,16 +5231,16 @@ msgstr "" msgid "Resend email" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "" @@ -4170,20 +5248,20 @@ msgstr "" msgid "Reset password" msgstr "" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "" @@ -4192,15 +5270,16 @@ msgstr "" msgid "Retries the last action, which errored out" msgstr "" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -4211,7 +5290,8 @@ msgstr "" #~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "" @@ -4220,26 +5300,28 @@ msgid "Returns to home page" msgstr "" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "" @@ -4255,20 +5337,29 @@ msgstr "" msgid "Save handle change" msgstr "" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" msgstr "" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" msgstr "" @@ -4276,8 +5367,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "" @@ -4293,37 +5384,45 @@ msgstr "" msgid "Saves image crop settings" msgstr "" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" msgstr "" @@ -4335,25 +5434,32 @@ msgstr "" msgid "Search for all posts with tag {displayTag}" msgstr "" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." msgstr "" -#: src/view/com/auth/LoggedOut.tsx:105 +#: src/components/dms/NewChat.tsx:226 +#~ msgid "Search for someone to start a conversation with." +#~ msgstr "" + #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" msgstr "" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "" @@ -4378,11 +5484,11 @@ msgid "See <0>{displayTag} posts by this user" msgstr "" #: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "" +#: src/view/com/util/UserAvatar.tsx:402 +#~ msgid "See profile" +#~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "" @@ -4414,15 +5520,15 @@ msgstr "" msgid "Select from an existing account" msgstr "" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" msgstr "" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" msgstr "" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "" @@ -4435,14 +5541,14 @@ msgid "Select option {i} of {numItems}" msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "" +#~ msgid "Select some accounts below to follow" +#~ msgstr "" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4451,39 +5557,47 @@ msgid "Select the service that hosts your data." msgstr "" #: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" +#~ msgid "Select topical feeds to follow from the list below" +#~ msgstr "" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "" +#~ msgid "Select what you want to see (or not see), and we’ll handle the rest." +#~ msgstr "" -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." msgstr "" -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "" +#~ msgid "Select your primary algorithmic feeds" +#~ msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" +#~ msgid "Select your secondary algorithmic feeds" +#~ msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" msgstr "" #: src/view/com/modals/VerifyEmail.tsx:210 @@ -4491,29 +5605,32 @@ msgstr "" msgid "Send Confirmation Email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." +msgstr "" + +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "" @@ -4526,7 +5643,12 @@ msgstr "" msgid "Send verification email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "" @@ -4534,7 +5656,7 @@ msgstr "" msgid "Server address" msgstr "" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "" @@ -4542,23 +5664,23 @@ msgstr "" msgid "Set new password" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "" -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "" @@ -4570,23 +5692,23 @@ msgstr "" msgid "Sets Bluesky username" msgstr "" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4606,12 +5728,11 @@ msgstr "" msgid "Sets image aspect ratio to wide" msgstr "" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "" @@ -4623,45 +5744,86 @@ msgstr "" msgid "Sexually Suggestive" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "" @@ -4669,7 +5831,7 @@ msgstr "" #~ msgid "Show all replies" #~ msgstr "" -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" msgstr "" @@ -4687,82 +5849,90 @@ msgstr "" msgid "Show badge and filter from feeds" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 msgid "Show less like this" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "" +#~ msgid "Show quote-posts in Following feed" +#~ msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "" +#~ msgid "Show quotes in Following" +#~ msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "" +#~ msgid "Show re-posts in Following feed" +#~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "" +#~ msgid "Show replies in Following" +#~ msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "" +#~ msgid "Show replies in Following feed" +#~ msgstr "" #: src/view/screens/PreferencesFollowingFeed.tsx:70 #~ msgid "Show replies with at least {value} {0}" #~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "" +#~ msgid "Show reposts in Following" +#~ msgstr "" -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "" #: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "" +#~ msgid "Show users" +#~ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" @@ -4780,17 +5950,17 @@ msgstr "" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4813,17 +5983,17 @@ msgstr "" msgid "Sign into Bluesky or create a new account" msgstr "" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4839,7 +6009,7 @@ msgstr "" msgid "Sign-in Required" msgstr "" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "" @@ -4848,56 +6018,94 @@ msgstr "" msgid "Signed in as @{0}" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "" -#: src/screens/Messages/Conversation/index.tsx:89 +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" +msgstr "" + +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:203 +#~ msgid "Some subtitle" +#~ msgstr "" + +#: src/screens/Messages/Conversation/index.tsx:106 msgid "Something went wrong" msgstr "" +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "" -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "" + +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "" -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "" #: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" +#~ msgid "Source:" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" msgstr "" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "" @@ -4905,15 +6113,50 @@ msgstr "" msgid "Square" msgstr "" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" msgstr "" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "" + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." +msgstr "" + #: src/view/screens/Settings/index.tsx:862 #~ msgid "Status page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" msgstr "" @@ -4921,53 +6164,60 @@ msgstr "" #~ msgid "Step" #~ msgstr "" -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" msgstr "" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "" -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "Submit" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "" +#~ msgid "Subscribe to the {0} feed" +#~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" msgstr "" +#: src/view/screens/Search/Search.tsx:425 +#~ msgid "Suggested Follows" +#~ msgstr "" + +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "" @@ -4976,7 +6226,7 @@ msgstr "" msgid "Suggestive" msgstr "" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -4987,19 +6237,23 @@ msgstr "" msgid "Switch Account" msgstr "" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "" @@ -5015,29 +6269,51 @@ msgstr "" msgid "Tall" msgstr "" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "" @@ -5045,12 +6321,13 @@ msgstr "" msgid "text" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "" @@ -5058,12 +6335,21 @@ msgstr "" msgid "That contains the following:" msgstr "" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "" @@ -5079,15 +6365,24 @@ msgstr "" msgid "The Copyright Policy has been moved to <0/>" msgstr "" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "" @@ -5095,8 +6390,8 @@ msgstr "" msgid "The following steps will help customize your Bluesky experience." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "" @@ -5104,6 +6399,10 @@ msgstr "" msgid "The Privacy Policy has been moved to <0/>" msgstr "" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "" + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "" @@ -5113,51 +6412,56 @@ msgid "The Terms of Service have been moved to" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" +#~ msgid "There are many feeds to try:" +#~ msgstr "" + +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "" #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "" -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." msgstr "" #: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" +#~ msgid "There was an issue connecting to the chat." +#~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "" -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "" @@ -5165,57 +6469,59 @@ msgstr "" msgid "There was an issue fetching the list. Tap here to try again." msgstr "" -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "" -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "" +#~ msgid "There was an issue syncing your preferences with the server" +#~ msgstr "" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "" -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "" +#~ msgid "These are popular accounts you might like:" +#~ msgstr "" #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" @@ -5225,14 +6531,26 @@ msgstr "" msgid "This account has requested that users sign in to view their profile." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:26 +#~ msgid "This chat was disconnected due to a network error." +#~ msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." msgstr "" @@ -5246,33 +6564,43 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "" #: src/screens/Profile/Sections/Feed.tsx:59 #: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "" +#: src/view/screens/ProfileList.tsx:729 +#~ msgid "This feed is empty!" +#~ msgstr "" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "" -#: src/view/com/posts/FeedShutdownMsg.tsx:97 +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:99 msgid "This feed is no longer online. We are showing <0>Discover instead." msgstr "" @@ -5297,10 +6625,14 @@ msgid "This label was applied by the author." msgstr "" #: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" +#~ msgid "This label was applied by you" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "" @@ -5308,7 +6640,7 @@ msgstr "" msgid "This link is taking you to the following website:" msgstr "" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "" @@ -5316,24 +6648,24 @@ msgstr "" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "" @@ -5349,8 +6681,12 @@ msgstr "" msgid "This user doesn't have any followers." msgstr "" +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "" @@ -5366,6 +6702,10 @@ msgstr "" msgid "This user is included in the <0>{0} list which you have muted." msgstr "" +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "" + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "" @@ -5378,20 +6718,24 @@ msgstr "" msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "" @@ -5399,7 +6743,7 @@ msgstr "" msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "" -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." msgstr "" @@ -5411,16 +6755,16 @@ msgstr "" msgid "Toggle between muted word options." msgstr "" -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "" @@ -5428,10 +6772,12 @@ msgstr "" msgid "Transformations" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "" @@ -5440,11 +6786,15 @@ msgctxt "action" msgid "Try again" msgstr "" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" msgstr "" @@ -5452,53 +6802,65 @@ msgstr "" msgid "Type:" msgstr "" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" msgstr "" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "" @@ -5507,12 +6869,12 @@ msgstr "" msgid "Unfollow" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "" @@ -5520,12 +6882,12 @@ msgstr "" #~ msgid "Unlike" #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "" @@ -5533,8 +6895,8 @@ msgstr "" msgid "Unmute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "" @@ -5542,46 +6904,54 @@ msgstr "" msgid "Unmute all {displayTag} posts" msgstr "" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/components/dms/ConvoMenu.tsx:140 +#~ msgid "Unmute notifications" +#~ msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" msgstr "" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "" #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" +#~ msgid "Unwanted sexual content" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 +#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:85 msgid "Unwanted Sexual Content" msgstr "" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "" @@ -5593,7 +6963,7 @@ msgstr "" msgid "Updating..." msgstr "" -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" msgstr "" @@ -5601,20 +6971,20 @@ msgstr "" msgid "Upload a text file to:" msgstr "" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -5624,7 +6994,7 @@ msgstr "" msgid "Use a file on your server" msgstr "" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "" @@ -5654,7 +7024,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "" @@ -5663,19 +7033,23 @@ msgid "Used by:" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr "" +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "" @@ -5683,46 +7057,53 @@ msgstr "" msgid "User Blocks You" msgstr "" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "" @@ -5742,15 +7123,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "" @@ -5771,31 +7152,44 @@ msgstr "" #~ msgid "Version {0}" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "" @@ -5803,13 +7197,15 @@ msgstr "" msgid "View information about these labels" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "" @@ -5817,10 +7213,15 @@ msgstr "" msgid "View the labeling service provided by @{0}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -5829,7 +7230,6 @@ msgstr "" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "" @@ -5845,15 +7245,15 @@ msgstr "" msgid "We couldn't find any results for that hashtag." msgstr "" -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" msgstr "" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "" @@ -5866,34 +7266,38 @@ msgid "We recommend avoiding common words that appear in many posts, since it ca msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "" +#~ msgid "We recommend our \"Discover\" feed:" +#~ msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "" -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "" -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "" -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "" @@ -5901,30 +7305,50 @@ msgstr "" msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "" -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "" + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 +#~ msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#~ msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "" + +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" msgstr "" #: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 #~ msgid "Welcome to <0>Bluesky" #~ msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" msgstr "" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "" + #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "" @@ -5936,36 +7360,53 @@ msgstr "" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:92 +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "" + +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "" @@ -5973,39 +7414,61 @@ msgstr "" msgid "Wide" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "" -#: src/components/dms/MessageItem.tsx:158 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "" + +#: src/components/dms/MessageItem.tsx:182 msgid "Yesterday, {time}" msgstr "" -#: src/screens/Deactivated.tsx:136 +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "" @@ -6013,13 +7476,25 @@ msgstr "" msgid "You are not following anyone." msgstr "" -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." +#~ msgid "You can change these settings later." +#~ msgstr "" + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "" + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." msgstr "" #: src/screens/Login/index.tsx:158 @@ -6027,15 +7502,23 @@ msgstr "" msgid "You can now sign in with your new password." msgstr "" +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "" +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "" -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." msgstr "" @@ -6043,28 +7526,32 @@ msgstr "" #~ msgid "You don't have any saved feeds!" #~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "" +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "" #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "" -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "" @@ -6073,32 +7560,36 @@ msgid "You have hidden this post." msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "" -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "" -#: src/view/com/feeds/ProfileFeedgens.tsx:144 +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "" + +#: src/view/com/feeds/ProfileFeedgens.tsx:137 msgid "You have no feeds." msgstr "" -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." msgstr "" #: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "" +#~ msgid "You have no messages yet. Start a conversation with someone!" +#~ msgstr "" #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "" -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "" @@ -6106,35 +7597,67 @@ msgstr "" msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "" +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "" + #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" +#~ msgid "You must be 18 years or older to enable adult content" +#~ msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "" + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "" @@ -6142,60 +7665,98 @@ msgstr "" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" msgstr "" -#: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" msgstr "" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" +msgstr "" + +#: src/screens/Onboarding/StepModeration/index.tsx:60 +#~ msgid "You're in control" +#~ msgstr "" + +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "" + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "" -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "" -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "" +#~ msgid "Your default feed is \"Following\"" +#~ msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "" @@ -6207,11 +7768,15 @@ msgstr "" msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "" -#: src/view/com/posts/FollowingEmptyState.tsx:47 +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:43 msgid "Your following feed is empty! Follow more users to see what's happening." msgstr "" -#: src/screens/Signup/StepHandle.tsx:73 +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "" @@ -6223,30 +7788,34 @@ msgstr "" msgid "Your muted words" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "" -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "" + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" msgstr "" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index c7d7c41008..4fabbb41e5 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -9,53 +9,66 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "PO-Revision-Date: \n" -"Last-Translator: \n" -"Language-Team: \n" +"Last-Translator: brodieavoult\n" +"Language-Team: brodieavoult\n" "Plural-Forms: \n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" -msgstr "" +msgstr "(sin correo)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:168 -#~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" -#~ msgstr "{0, plural, one {# invite code available} other {# invite codes available}}" +#: src/components/moderation/LabelsOnMe.tsx:55 +#~ msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgstr "" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" msgstr "" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/KnownFollowers.tsx:179 +#~ msgid "{0, plural, one {and # other} other {and # others}}" +#~ msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -63,255 +76,303 @@ msgstr "" msgid "{0, plural, one {post} other {posts}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "" + #: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" +#~ msgid "{0} your feeds" +#~ msgstr "" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" msgstr "" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" msgstr "" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" +msgstr "{following} siguiendo" + +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:151 -#~ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" -#~ msgstr "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" - -#: src/view/screens/Settings.tsx:435 -#: src/view/shell/Drawer.tsx:664 -#~ msgid "{invitesAvailable} invite code available" -#~ msgstr "{invitesAvailable} código de invitación disponible" - -#: src/view/screens/Settings.tsx:437 -#: src/view/shell/Drawer.tsx:666 -#~ msgid "{invitesAvailable} invite codes available" -#~ msgstr "{invitesAvailable} códigos de invitación disponibles" - -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:461 +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" +msgstr "{numUnreadNotifications} sin leer" + +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" msgstr "" #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "<0/> miembros" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:485 +#~ msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:497 +#~ msgid "<0>{0}, <1>{1}, and {2} {3, plural, one {other} other {others}} are included in your starter pack" +#~ msgstr "" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "" + #: src/view/shell/Drawer.tsx:96 #~ msgid "<0>{0} following" -#~ msgstr "" +#~ msgstr "<0>{0} siguiendo" + +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "" #: src/components/ProfileHoverCard/index.web.tsx:437 #~ msgid "<0>{followers} <1>{pluralizedFollowers}" -#~ msgstr "" +#~ msgstr "<0>{followers} <1>seguidores" #: src/components/ProfileHoverCard/index.web.tsx:449 #: src/screens/Profile/Header/Metrics.tsx:45 #~ msgid "<0>{following} <1>following" -#~ msgstr "" - -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:31 -#~ msgid "<0>Choose your<1>Recommended<2>Feeds" -#~ msgstr "<0>Elige tus<1>publicaciones<2>recomendadas" - -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:38 -#~ msgid "<0>Follow some<1>Recommended<2>Users" -#~ msgstr "<0>Sigue a algunos<1>usuarios<2>recomendados" +#~ msgstr "<0>{following} <1>siguiendo" #: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:21 -#~ msgid "<0>Welcome to<1>Bluesky" -#~ msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" -msgstr "" +msgstr "⚠Nombre de usuario inválido" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" +msgstr "Confirmación 2FA" + +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" msgstr "" -#: src/view/com/util/moderation/LabelInfo.tsx:45 -#~ msgid "A content warning has been applied to this {0}." -#~ msgstr "Se ha aplicado una advertencia de contenido a este {0}." - -#: src/lib/hooks/useOTAUpdate.ts:16 -#~ msgid "A new version of the app is available. Please update to continue using the app." -#~ msgstr "Ya está disponible una nueva versión de la aplicación. Actualízala para seguir utilizándola." - -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "Accesibilidad" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" -msgstr "" +msgstr "Ajustes de accesibilidad" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" -msgstr "" +msgstr "Ajustes de accesibilidad" #: src/components/moderation/LabelsOnMe.tsx:42 #~ msgid "account" -#~ msgstr "" +#~ msgstr "cuenta" -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "Cuenta" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" -msgstr "" +msgstr "Cuenta bloqueada" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" -msgstr "" +msgstr "Cuenta bloqueada" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" -msgstr "" +msgstr "Cuenta muteada" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" -msgstr "" +msgstr "Cuenta muteada" #: src/components/moderation/ModerationDetailsDialog.tsx:82 msgid "Account Muted by List" -msgstr "" +msgstr "Cuenta muteada por lista" #: src/view/com/util/AccountDropdownBtn.tsx:41 msgid "Account options" -msgstr "Opciones de la cuenta" +msgstr "Opciones de cuenta" #: src/view/com/util/AccountDropdownBtn.tsx:25 msgid "Account removed from quick access" -msgstr "" +msgstr "Cuenta elimada de acceso rápido" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" -msgstr "" +msgstr "Cuenta desbloqueada" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" -msgstr "" +msgstr "Has dejado de seguir a esta cuenta" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" -msgstr "" +msgstr "Cuenta demuteada" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" -msgstr "Agregar" +msgstr "Añadir" + +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "" #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" -msgstr "Agregar una advertencia de cuenta" +msgstr "Añadir advertencia de contenido" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" -msgstr "Agregar un usuario a esta lista" +msgstr "Añadir cuenta a esta lista" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" -msgstr "Agregar una cuenta" +msgstr "Añadir cuenta" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" -msgstr "Agregar texto alt" +msgstr "Añadir texto alternativo" #: src/view/com/composer/GifAltText.tsx:175 #~ msgid "Add ALT text" -#~ msgstr "" +#~ msgstr "Añadir texto alternativo" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" -msgstr "" - -#: src/view/com/modals/report/InputIssueDetails.tsx:41 -#: src/view/com/modals/report/Modal.tsx:191 -#~ msgid "Add details" -#~ msgstr "Agregar detalles" - -#: src/view/com/modals/report/Modal.tsx:194 -#~ msgid "Add details to report" -#~ msgstr "Agregar detalles al informe" - -#: src/view/com/composer/Composer.tsx:467 -#~ msgid "Add link card" -#~ msgstr "Agregar una tarjeta de enlace" - -#: src/view/com/composer/Composer.tsx:472 -#~ msgid "Add link card:" -#~ msgstr "Agregar una tarjeta de enlace:" +msgstr "Añadir contraseña de app" #: src/components/dialogs/MutedWords.tsx:157 msgid "Add mute word for configured settings" @@ -319,13 +380,21 @@ msgstr "" #: src/components/dialogs/MutedWords.tsx:86 msgid "Add muted words and tags" -msgstr "" +msgstr "Añadir palabras silenciadas y etiquetas" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/StarterPack/Wizard/index.tsx:197 +#~ msgid "Add people to your starter pack that you think others will enjoy following" +#~ msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" +msgstr "Añadir feeds recomendados" + +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" msgstr "" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" msgstr "" @@ -333,366 +402,410 @@ msgstr "" msgid "Add the following DNS record to your domain:" msgstr "Añade el siguiente registro DNS a tu dominio:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 -msgid "Add to Lists" -msgstr "Agregar a listas" - -#: src/view/com/feeds/FeedSourceCard.tsx:235 -msgid "Add to my feeds" -msgstr "Agregar a mis noticias" - -#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:139 -#~ msgid "Added" -#~ msgstr "" - -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 -msgid "Added to list" -msgstr "Agregar a una lista" - -#: src/view/com/feeds/FeedSourceCard.tsx:112 -msgid "Added to my feeds" +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 +msgid "Add to Lists" +msgstr "Añadir a listas" + +#: src/view/com/feeds/FeedSourceCard.tsx:267 +msgid "Add to my feeds" +msgstr "Añadir a mis feeds" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 +msgid "Added to list" +msgstr "Añadido a lista" + +#: src/view/com/feeds/FeedSourceCard.tsx:126 +msgid "Added to my feeds" +msgstr "Añadido a mis feeds" + +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." -msgstr "Ajusta el número de Me gusta que debe tener una respuesta para que se muestre en tus noticias." +msgstr "Ajusta la cantidad de me gusta que una respuesta debe tener para aparecer en tu feed." #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" -msgstr "Contenido para adultos" +msgstr "Contenido adulto" -#: src/view/com/modals/ContentFilteringSettings.tsx:141 -#~ msgid "Adult content can only be enabled via the Web at <0/>." -#~ msgstr "" - -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 -#~ msgid "Adult content can only be enabled via the Web at <0>bsky.app." -#~ msgstr "" +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "" #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." -msgstr "" +msgstr "El contenido adulto esta desactivado." -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "Avanzado" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." +msgstr "Todos tus feeds guardados, en un solo lugar." + +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" -msgstr "" +msgstr "¿Ya tienes un código?" #: src/screens/Login/ChooseAccountForm.tsx:49 msgid "Already signed in as @{0}" -msgstr "" +msgstr "Sesión ya iniciada como @{0}" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" -msgstr "Texto alt" +msgstr "Texto alternativo" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" -msgstr "" +msgstr "Texto alternativo" #: src/view/com/composer/photos/Gallery.tsx:224 msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." -msgstr "El texto alternativo describe las imágenes para los usuarios ciegos y con baja visión, y ayuda a dar contexto a todos." +msgstr "El texto alternativo describe imágenes a usuarios ciegos o con baja visión, y ayuda a dar más contexto a todos." #: src/view/com/modals/VerifyEmail.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." -msgstr "Se ha enviado un correo electrónico a {0}. Incluye un código de confirmación que puedes introducir a continuación." +msgstr "Un código de verificación ha sido enviado a {0}. Ingresa ese código a continuación." #: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." -msgstr "Se ha enviado un correo electrónico a tu dirección previa, {0}. Incluye un código de confirmación que puedes introducir a continuación." +msgstr "Un código de verificación ha sido enviado a tu dirección anterior, {0}. Ingresa ese código a continuación." -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" +msgstr "Ocurrió un error" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:79 +#~ msgid "An error occurred while saving the image." +#~ msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" msgstr "" #: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." +#~ msgid "An error occurred while trying to delete the message. Please try again." +#~ msgstr "Ocurrió un error al intentar eliminar el mensaje. Intenta de nuevo." + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" msgstr "" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" +msgstr "Un problema no presente en estas opciones" + +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" msgstr "" #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." -msgstr "" +msgstr "Ocurrió un problema. Intenta de nuevo." -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" -msgstr "" +msgstr "Ocurrió un error desconocido" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "y" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" -msgstr "" +msgstr "Animales" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" -msgstr "" +msgstr "GIF animado" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" -msgstr "" +msgstr "Comportamiento antisocial" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" -msgstr "Lenguaje de app" +msgstr "Idioma de interfaz" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" -msgstr "" +msgstr "Contraseña de app eliminada" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." -msgstr "" +msgstr "El nombre de una contraseña de app sólo puede contener letras, números, espacios, guiones, y guiones bajos." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." -msgstr "" +msgstr "El nombre de una contraseña de app deben tener al menos 4 caracteres." -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" -msgstr "" +msgstr "Ajustes de contraseñas de app" -#: src/view/screens/Settings.tsx:650 -#~ msgid "App passwords" -#~ msgstr "Contraseñas de la app" - -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "Contraseñas de la app" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" -msgstr "" +msgstr "Apelar" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" -msgstr "" +msgstr "Apelar la etiqueta de \"{0}\"" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#~ msgid "Appeal content warning" -#~ msgstr "Aviso sobre el contenido del recurso" - -#: src/view/com/modals/AppealLabel.tsx:65 -#~ msgid "Appeal Content Warning" -#~ msgstr "Aviso sobre el Contenido del Recurso" - -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" -msgstr "" +msgstr "Apelación enviada" #: src/components/moderation/LabelsOnMeDialog.tsx:193 #~ msgid "Appeal submitted." -#~ msgstr "" +#~ msgstr "Apelación enviada" -#: src/view/com/util/moderation/LabelInfo.tsx:52 -#~ msgid "Appeal this decision" -#~ msgstr "Apelar esta decisión" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "" -#: src/view/com/util/moderation/LabelInfo.tsx:56 -#~ msgid "Appeal this decision." -#~ msgstr "Apelar esta decisión." - -#: src/view/screens/Settings/index.tsx:430 +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" -msgstr "Aspecto exterior" +msgstr "Aparencia" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +#~ msgid "Are you sure you want delete this starter pack?" +#~ msgstr "" + +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" -msgstr "¿Estás seguro de que quieres eliminar la contraseña de la app \"{name}\"?" +msgstr "¿Seguro que quieres eliminar la contraseña de app \"{name}\"?" #: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgstr "¿Seguro que quieres eliminar este mensaje? El mensaje será eliminado para ti, pero no para los otros participantes." + +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" msgstr "" #: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgstr "¿Seguro que quieres abandonar esta conversación? Tus mensajes serán eliminados para ti, pero no para los otros participantes." + +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "¿Seguro que quieres eliminar {0} de tus feeds?" + +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" msgstr "" -#: src/view/com/composer/Composer.tsx:573 +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" -msgstr "¿Estás seguro de que quieres descartar este borrador?" +msgstr "¿Seguro que quieres descartar este borrador?" #: src/components/dialogs/MutedWords.tsx:281 msgid "Are you sure?" msgstr "¿Estás seguro?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:322 -#~ msgid "Are you sure? This cannot be undone." -#~ msgstr "¿Estás seguro? Esto no puede deshacerse." - #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" -msgstr "" +msgstr "¿Estás escribiendo en <0>{0}?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" -msgstr "" +msgstr "Arte" #: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "Desnudez artística o no erótica." -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" -msgstr "" +msgstr "Al menos 3 caracteres" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" -msgstr "Regresar" - -#: src/view/com/post-thread/PostThread.tsx:480 -#~ msgctxt "action" -#~ msgid "Back" -#~ msgstr "" +msgstr "Atrás" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "" +#~ msgid "Based on your interest in {interestsText}" +#~ msgstr "Basado en tus intereses en {interestsText}" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" -msgstr "Conceptos básicos" +msgstr "General" #: src/components/dialogs/BirthDateSettings.tsx:107 msgid "Birthday" msgstr "Cumpleaños" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "Cumpleaños:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" -msgstr "" +msgstr "Bloquear" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" -msgstr "" +msgstr "Bloquear cuenta" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" -msgstr "Bloquear una cuenta" +msgstr "Bloquear cuenta" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" -msgstr "" +msgstr "¿Bloquear cuenta?" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "Bloquear cuentas" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" -msgstr "Bloquear una lista" +msgstr "Bloquear lista" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "¿Bloquear estas cuentas?" -#: src/view/screens/ProfileList.tsx:320 -#~ msgid "Block this List" -#~ msgstr "" - -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" -msgstr "" +msgstr "Bloqueado" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "Cuentas bloqueadas" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "Cuentas bloqueadas" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." -msgstr "Las cuentas bloqueadas no pueden responder en tus hilos, mencionarte ni interactuar contigo de ninguna otra forma." +msgstr "Si bloqueas a una cuenta no podrán responder en tus hilos, mencionarte ni interactuar contigo de ninguna manera." #: src/view/screens/ModerationBlockedAccounts.tsx:117 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." -msgstr "Las cuentas bloqueadas no pueden responder en tus hilos, mencionarte ni interactuar contigo de ninguna otra forma. Tú no verás su contenido y ellos no podrán ver el tuyo." +msgstr "Si bloqueas a una cuenta no podrán responder en tus hilos, mencionarte ni interactuar contigo de ninguna manera. No verás su contenido y no podrán ver el tuyo." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." -msgstr "Publicación bloqueada." +msgstr "Post bloqueado." -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." -msgstr "" +msgstr "Si bloqueas a un etiquetador aún podrán seguir aplicando etiquetas a tu cuenta." -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." -msgstr "El bloque es público. Las cuentas bloqueadas no pueden responder en tus hilos, mencionarte ni interactuar contigo de ninguna otra forma." +msgstr "El bloqueo es público. Si bloqueas a una cuenta no podrán responder en tus hilos, mencionarte ni interactuar contigo de ninguna manera." -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." -msgstr "" +msgstr "Si bloqueas a un etiquetador aún podrán seguir aplicando etiquetas a tu cuenta, pero evitará que respondan en tus hilos, te mencionen o interactúen contigo de ninguna manera." #: src/view/com/auth/SplashScreen.web.tsx:154 msgid "Blog" @@ -705,34 +818,19 @@ msgstr "Bluesky" #: src/view/com/auth/server-input/index.tsx:154 msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." +msgstr "Bluesky es una red abierta donde puedes elegir un proveedor de servicio. Servicios personalizados ya están disponibles en beta para desarrolladores." + +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" msgstr "" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 -#~ msgid "Bluesky is flexible." -#~ msgstr "Bluesky es flexible." +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 -#~ msgid "Bluesky is open." -#~ msgstr "Bluesky es abierto." - -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 -#~ msgid "Bluesky is public." -#~ msgstr "Bluesky es público." - -#: src/view/com/modals/Waitlist.tsx:70 -#~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." -#~ msgstr "Bluesky utiliza las invitaciones para construir una comunidad más saludable. Si no conoces a nadie con una invitación, puedes apuntarte a la lista de espera y te enviaremos una en breve." - -#: src/screens/Moderation/index.tsx:533 +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." -msgstr "Bluesky no mostrará tu perfil ni tus publicaciones a los usuarios que hayan cerrado sesión. Es posible que otras aplicaciones no acepten esta solicitud. Esto no hace que tu cuenta sea privada." - -#: src/view/com/modals/ServerInput.tsx:78 -#~ msgid "Bluesky.Social" -#~ msgstr "Bluesky.Social" +msgstr "Bluesky no mostrará tu perfil o posts a usuarios que no hayan iniciado sesión. Es posible que otras apps no respeten esta solicitud. Esto no hace que tu cuenta sea privada." #: src/lib/moderation/useLabelBehaviorDescription.ts:53 msgid "Blur images" @@ -742,60 +840,67 @@ msgstr "" msgid "Blur images and filter from feeds" msgstr "" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" +msgstr "Libros" + +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 msgid "Browse other feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:893 -#~ msgid "Build version {0} {1}" -#~ msgstr "Versión {0} {1}" - #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "Negocios" -#: src/view/com/modals/ServerInput.tsx:115 -#~ msgid "Button disabled. Input custom domain to proceed." -#~ msgstr "" - -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" -msgstr "" - -#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:100 -#~ msgid "by {0}" -#~ msgstr "" +msgstr "por —" #: src/components/LabelingServiceCard/index.tsx:56 msgid "By {0}" -msgstr "" +msgstr "By {0}" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" +#~ msgid "by @{0}" +#~ msgstr "by @{0}" -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" -msgstr "" +msgstr "by <0/>" #: src/screens/Signup/StepInfo/Policies.tsx:74 msgid "By creating an account you agree to the {els}." -msgstr "" +msgstr "Al crear una cuenta, aceptas nuestros {els}." -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" -msgstr "" +msgstr "por ti" #: src/view/com/composer/photos/OpenCameraBtn.tsx:73 msgid "Camera" msgstr "Cámara" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Sólo puede contener letras, números, espacios, guiones y guiones bajos. Debe tener al menos 4 caracteres, pero no más de 32." @@ -803,14 +908,15 @@ msgstr "Sólo puede contener letras, números, espacios, guiones y guiones bajos #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -818,29 +924,29 @@ msgstr "Sólo puede contener letras, números, espacios, guiones y guiones bajos #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "Cancelar" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" -msgstr "" +msgstr "Cancelar" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "Cancelar la eliminación de la cuenta" #: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" -msgstr "Cancelar identificador de cambio" +msgstr "Cancelar cambio de nombre de usuario" #: src/view/com/modals/crop-image/CropImage.web.tsx:159 msgid "Cancel image crop" @@ -848,205 +954,229 @@ msgstr "Cancelar recorte de imagen" #: src/view/com/modals/EditProfile.tsx:245 msgid "Cancel profile editing" -msgstr "Cancelar la edición de perfil" +msgstr "Cancelar edición de perfil" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" -msgstr "Cancelar la publicación de un presupuesto" +msgstr "Cancelar citación" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "Cancelar búsqueda" -#: src/view/com/modals/Waitlist.tsx:136 -#~ msgid "Cancel waitlist signup" -#~ msgstr "Cancelar la inscripción en la lista de espera" - #: src/view/com/modals/LinkWarning.tsx:106 msgid "Cancels opening the linked website" msgstr "" #: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" -msgstr "" +msgstr "Cambiar" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "Cambiar" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" -msgstr "Cambiar el identificador" +msgstr "Cambiar nombre de usuario" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" -msgstr "Cambiar el identificador" +msgstr "Cambiar nombre de usuario" #: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "Cambiar mi correo electrónico" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" -msgstr "" +msgstr "Cambiar contraseña" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" -msgstr "" +msgstr "Cambiar contraseña" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:73 msgid "Change post language to {0}" -msgstr "" - -#: src/view/screens/Settings/index.tsx:733 -#~ msgid "Change your Bluesky password" -#~ msgstr "" +msgstr "Cambiar idioma del post a {0}" #: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" -msgstr "Cambiar tu correo electrónico" +msgstr "Cambiar correo electrónico" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" -msgstr "" +msgstr "Chat" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" -msgstr "" +msgstr "Chat muteado" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" +msgstr "Ajustes de chat" + +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" msgstr "" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" -msgstr "" +msgstr "Chat demuteado" -#: src/screens/Messages/Conversation/index.tsx:26 -#~ msgid "Chat with {chatId}" -#~ msgstr "" - -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:122 -#~ msgid "Check out some recommended feeds. Tap + to add them to your list of pinned feeds." -#~ msgstr "Echa un vistazo a algunas publicaciones recomendadas. Pulsa + para añadirlos a tu lista de publicaciones ancladas." - -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:186 -#~ msgid "Check out some recommended users. Follow them to see similar users." -#~ msgstr "Echa un vistazo a algunos usuarios recomendados. Síguelos para ver usuarios similares." - -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." -msgstr "" +msgstr "Te enviamos un código de inicio de sesión a tu correo. Introducelo aquí." -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" -msgstr "Consulta tu bandeja de entrada para recibir un correo electrónico con el código de confirmación que debes introducir a continuación:" +msgstr "Te enviamos un código de verificación a tu correo. Introducelo aquí:" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" +#: src/view/com/modals/Threadgate.tsx:75 +#~ msgid "Choose \"Everybody\" or \"Nobody\"" +#~ msgstr "Elige \"Todos\" o \"Nadie\"" + +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" msgstr "" -#: src/view/screens/Settings/index.tsx:697 -#~ msgid "Choose a new Bluesky username or create" -#~ msgstr "" +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" -msgstr "Elige un Servicio" +msgstr "Elige proveedor" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." -msgstr "" - -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 -#~ msgid "Choose the algorithms that power your experience with custom feeds." -#~ msgstr "Elige los algoritmos que potencian tu experiencia con publicaciones personalizadas." +msgstr "Tu eliges los algoritmos que usar en tus feed." #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 msgid "Choose this color as your avatar" -msgstr "" +msgstr "Elige este color como tu avatar" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:103 -#~ msgid "Choose your algorithmic feeds" -#~ msgstr "" +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" +msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "" +#~ msgid "Choose your main feeds" +#~ msgstr "Elige tus feeds principales" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "Elige tu contraseña" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "Borrar todos los datos de almacenamiento heredados" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "Borrar todos los datos de almacenamiento heredados (reiniciar después de esto)" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "Borrar todos los datos de almacenamiento" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "Borrar todos los datos de almacenamiento (reiniciar después de esto)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "Borrar consulta de búsqueda" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "" #: src/view/screens/Support.tsx:40 msgid "click here" +msgstr "has clic aquí" + +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." msgstr "" #: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." -msgstr "" +#~ msgid "Click here to add one." +#~ msgstr "Has clic aquí para agregar uno." #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" +msgstr "Has clic aquí para abrir el menu de {tag}" + +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" msgstr "" -#: src/components/RichText.tsx:198 -#~ msgid "Click here to open tag menu for #{tag}" -#~ msgstr "" - -#: src/screens/Onboarding/index.tsx:47 +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" +msgstr "Clima" + +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" msgstr "" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" -msgstr "" +msgstr "Cerrar" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "" @@ -1058,11 +1188,12 @@ msgstr "Cerrar la alerta" msgid "Close bottom drawer" msgstr "Cierra el cajón inferior" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" msgstr "" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" msgstr "" @@ -1074,6 +1205,10 @@ msgstr "Cerrar la imagen" msgid "Close image viewer" msgstr "Cerrar el visor de imagen" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "Cerrar el pie de página de navegación" @@ -1091,7 +1226,7 @@ msgstr "" msgid "Closes password update alert" msgstr "" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "" @@ -1099,42 +1234,48 @@ msgstr "" msgid "Closes viewer for header image" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Directrices de la comunidad" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "Redactar la respuesta" #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "" +#~ msgid "Configure content filtering setting for category: {0}" +#~ msgstr "" #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" @@ -1144,24 +1285,16 @@ msgstr "" msgid "Configured in <0>moderation settings." msgstr "" -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "Confirmar" -#: src/view/com/modals/Confirm.tsx:75 -#: src/view/com/modals/Confirm.tsx:78 -#~ msgctxt "action" -#~ msgid "Confirm" -#~ msgstr "" - #: src/view/com/modals/ChangeEmail.tsx:188 #: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" @@ -1171,41 +1304,33 @@ msgstr "Confirmar el cambio" msgid "Confirm content language settings" msgstr "Confirmar la configuración del idioma del contenido" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "Confirmar eliminación de cuenta" -#: src/view/com/modals/ContentFilteringSettings.tsx:156 -#~ msgid "Confirm your age to enable adult content." -#~ msgstr "" - -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Código de confirmación" -#: src/view/com/modals/Waitlist.tsx:120 -#~ msgid "Confirms signing up {email} to the waitlist" -#~ msgstr "" - -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "Conectando..." -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "" @@ -1217,36 +1342,28 @@ msgstr "" msgid "Content Blocked" msgstr "" -#: src/view/screens/Moderation.tsx:83 -#~ msgid "Content filtering" -#~ msgstr "Filtro de contenido" - -#: src/view/com/modals/ContentFilteringSettings.tsx:44 -#~ msgid "Content Filtering" -#~ msgstr "Filtro de contenido" - -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" -msgstr "Lenguajes de contenido" +msgstr "Idiomas de contenido" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "Advertencia de contenido" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "Advertencias de contenido" @@ -1254,12 +1371,8 @@ msgstr "Advertencias de contenido" msgid "Context menu backdrop, click to close the menu." msgstr "" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "Continuar" @@ -1267,41 +1380,47 @@ msgstr "Continuar" msgid "Continue as {0} (currently signed in)" msgstr "" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "" +#~ msgid "Continue to the next step" +#~ msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" +#~ msgid "Continue to the next step without following any accounts" +#~ msgstr "" + +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" msgstr "" -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Copiado" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "" @@ -1309,11 +1428,12 @@ msgstr "" msgid "Copied!" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Copiar" @@ -1326,72 +1446,98 @@ msgstr "" msgid "Copy code" msgstr "" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "Copia el enlace a la lista" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" -msgstr "Copia el enlace a la publicación" +msgstr "Copia el enlace a la post" -#: src/view/com/profile/ProfileHeader.tsx:295 -#~ msgid "Copy link to profile" -#~ msgstr "Copia el enlace al perfil" - -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" -msgstr "Copiar el texto de la publicación" +msgstr "Copiar el texto de la post" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Política de derechos de autor" -#: src/components/dms/ConvoMenu.tsx:80 -msgid "Could not leave chat" +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" msgstr "" -#: src/view/screens/ProfileFeed.tsx:102 -msgid "Could not load feed" -msgstr "No se ha podido cargar las publicaciones" +#: src/components/dms/LeaveConvoPrompt.tsx:39 +msgid "Could not leave chat" +msgstr "No se pudo salir de este chat" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileFeed.tsx:103 +msgid "Could not load feed" +msgstr "No se pudo cargar este feed" + +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" -msgstr "No se ha podido cargar la lista" +msgstr "No se pudo cargar esta lista" #: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "" +#~ msgid "Could not load profiles. Please try again later." +#~ msgstr "No se pudo cargar los perfiles. Intente de nuevo luego." -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" -msgstr "" +msgstr "No se pudo mutear al chat" #: src/components/dms/ConvoMenu.tsx:68 #~ msgid "Could not unmute chat" #~ msgstr "" -#: src/view/com/auth/create/Step2.tsx:91 -#~ msgid "Country" -#~ msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "Crear una cuenta nueva" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "Crear una cuenta" @@ -1400,11 +1546,15 @@ msgstr "Crear una cuenta" msgid "Create an account" msgstr "" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "" @@ -1413,27 +1563,20 @@ msgstr "" msgid "Create new account" msgstr "Crear una cuenta nueva" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/StarterPack/ShareDialog.tsx:158 +#~ msgid "Create QR code" +#~ msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "Creado {0}" -#: src/view/screens/ProfileFeed.tsx:616 -#~ msgid "Created by <0/>" -#~ msgstr "" - -#: src/view/screens/ProfileFeed.tsx:614 -#~ msgid "Created by you" -#~ msgstr "" - -#: src/view/com/composer/Composer.tsx:469 -#~ msgid "Creates a card with a thumbnail. The card links to {url}" -#~ msgstr "" - -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "" @@ -1446,21 +1589,17 @@ msgstr "" msgid "Custom domain" msgstr "Dominio personalizado" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "" #: src/view/screens/PreferencesExternalEmbeds.tsx:56 msgid "Customize media from external sites." -msgstr "" +msgstr "Preferencias sobre medios externos." -#: src/view/screens/Settings.tsx:687 -#~ msgid "Danger Zone" -#~ msgstr "Zona de peligro" - -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "" @@ -1468,15 +1607,24 @@ msgstr "" msgid "Dark mode" msgstr "" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" msgstr "" @@ -1484,14 +1632,17 @@ msgstr "" msgid "Debug panel" msgstr "" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "Borrar la cuenta" @@ -1499,69 +1650,83 @@ msgstr "Borrar la cuenta" #~ msgid "Delete Account" #~ msgstr "Borrar la cuenta" -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Borrar la contraseña de la app" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "" -#: src/components/dms/MessageMenu.tsx:101 +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:124 msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:466 +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "Borrar la lista" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" msgstr "" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "Borrar mi cuenta" -#: src/view/screens/Settings.tsx:706 -#~ msgid "Delete my account…" -#~ msgstr "Borrar mi cuenta..." - -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" -msgstr "Borrar una publicación" +msgstr "Borrar una post" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" -msgstr "¿Borrar esta publicación?" +msgstr "¿Borrar esta post?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." -msgstr "Se borró la publicación." +msgstr "Se borró la post." -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1571,75 +1736,77 @@ msgstr "Descripción" msgid "Descriptive alt text" msgstr "" -#: src/view/screens/Settings.tsx:760 -#~ msgid "Developer Tools" -#~ msgstr "Herramientas de desarrollador" - -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "¿Quieres decir algo?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:94 -msgid "Disable autoplay for GIFs" +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" msgstr "" +#: src/view/screens/AccessibilitySettings.tsx:107 +msgid "Disable autoplay for GIFs" +msgstr "No reproducir GIFs automáticamente" + #: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" msgstr "" -#: src/view/screens/Settings/index.tsx:697 -#~ msgid "Disable haptics" -#~ msgstr "" - -#: src/view/screens/Settings/index.tsx:697 -#~ msgid "Disable vibrations" -#~ msgstr "" - #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "Descartar" -#: src/view/com/composer/Composer.tsx:145 -#~ msgid "Discard draft" -#~ msgstr "Descartar el borrador" - -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "Evitar que las aplicaciones muestren mi cuenta a los usuarios desconectados" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" msgstr "" -#: src/view/screens/Feeds.tsx:473 -#~ msgid "Discover new feeds" -#~ msgstr "Descubrir nuevas publicaciones" +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "Mostrar el nombre" @@ -1650,13 +1817,13 @@ msgstr "Mostrar el nombre" #: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" -msgstr "" +msgstr "Con panel de DNS" #: src/lib/moderation/useGlobalLabelStrings.ts:39 msgid "Does not include nudity." msgstr "" -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "" @@ -1668,36 +1835,29 @@ msgstr "" msgid "Domain verified!" msgstr "¡Dominio verificado!" -#: src/view/com/auth/create/Step1.tsx:170 -#~ msgid "Don't have an invite code?" -#~ msgstr "" - #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "Listo" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "" @@ -1706,93 +1866,102 @@ msgstr "" msgid "Done{extraText}" msgstr "Listo{extraText}" -#: src/view/com/auth/login/ChooseAccountForm.tsx:46 -#~ msgid "Double tap to sign in" -#~ msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "" -#: src/view/screens/Settings/index.tsx:755 -#~ msgid "Download Bluesky account data (repository)" -#~ msgstr "" - -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "" +#~ msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." +#~ msgstr "" #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" -msgstr "" +msgstr "p. ej. alice" #: src/view/com/modals/EditProfile.tsx:186 msgid "e.g. Alice Roberts" -msgstr "" +msgstr "p. ej. Alice Roberts" #: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" -msgstr "" +msgstr "p. ej. alice.com" #: src/view/com/modals/EditProfile.tsx:204 msgid "e.g. Artist, dog-lover, and avid reader." -msgstr "" +msgstr "p. ej. Artista, amante de los perros, y lector ávido." #: src/lib/moderation/useGlobalLabelStrings.ts:43 msgid "E.g. artistic nudes." -msgstr "" +msgstr "p. ej. Desnudez artística." -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" -msgstr "" +msgstr "p. ej. Grandes usuarios" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" -msgstr "" +msgstr "p. ej. Spammers" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." -msgstr "" +msgstr "p. ej. Usuarios que simpre aciertan." -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." -msgstr "" +msgstr "p. ej. Usuarios que constantemente responden con publicidad." #: src/view/com/modals/InviteCodes.tsx:97 msgid "Each code works once. You'll receive more invite codes periodically." msgstr "Cada código funciona una vez. Recibirás más códigos de invitación periódicamente." +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "Editar la imagen" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "Editar los detalles de la lista" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" msgstr "Editar mis noticias" @@ -1800,25 +1969,37 @@ msgstr "Editar mis noticias" msgid "Edit my profile" msgstr "Editar mi perfil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "Editar el perfil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "Editar el perfil" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "Editar mis noticias guardadas" +#: src/view/screens/Feeds.tsx:416 +#~ msgid "Edit Saved Feeds" +#~ msgstr "Editar mis noticias guardadas" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "" @@ -1827,11 +2008,20 @@ msgstr "" msgid "Edit your profile description" msgstr "" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "Correo electrónico" @@ -1857,7 +2047,7 @@ msgstr "Correo electrónico actualizado" msgid "Email verified" msgstr "" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "Correo electrónico:" @@ -1866,8 +2056,8 @@ msgid "Embed HTML code" msgstr "" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" msgstr "" @@ -1879,33 +2069,34 @@ msgstr "" msgid "Enable {0} only" msgstr "" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "" +#~ msgid "Enable Adult Content" +#~ msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "" +#~ msgid "Enable adult content in your feeds" +#~ msgstr "" #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 msgid "Enable external media" msgstr "" -#: src/view/com/modals/EmbedConsent.tsx:97 -#~ msgid "Enable External Media" -#~ msgstr "" - -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" +msgstr "Reproducir multimedia de" + +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "Activa esta opción para ver sólo las respuestas de las personas a las que sigues." @@ -1913,7 +2104,9 @@ msgstr "Activa esta opción para ver sólo las respuestas de las personas a las msgid "Enable this source only" msgstr "" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "" @@ -1921,7 +2114,15 @@ msgstr "" msgid "End of feed" msgstr "Fin de noticias" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/components/Lists.tsx:52 +#~ msgid "End of list" +#~ msgstr "" + +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "" @@ -1938,7 +2139,7 @@ msgstr "" msgid "Enter Confirmation Code" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "" @@ -1954,12 +2155,8 @@ msgstr "Introduce el correo electrónico que utilizaste para crear tu cuenta. Te msgid "Enter your birth date" msgstr "" -#: src/view/com/modals/Waitlist.tsx:78 -#~ msgid "Enter your email" -#~ msgstr "" - #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "Introduce la dirección de correo electrónico" @@ -1971,40 +2168,49 @@ msgstr "" msgid "Enter your new email address below." msgstr "Introduce tu nueva dirección de correo electrónico a continuación." -#: src/view/com/auth/create/Step2.tsx:188 -#~ msgid "Enter your phone number" -#~ msgstr "" - #: src/screens/Login/index.tsx:101 msgid "Enter your username and password" msgstr "Introduce tu nombre de usuario y contraseña" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" msgstr "" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "Error:" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "Todos" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "" @@ -2020,24 +2226,28 @@ msgstr "" msgid "Exits image view" msgstr "" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "" -#: src/view/com/modals/Waitlist.tsx:138 -#~ msgid "Exits signing up for waitlist with {email}" -#~ msgstr "" - #: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" msgstr "Expandir el texto alt" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "" @@ -2046,130 +2256,173 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "" #: src/components/dialogs/EmbedConsent.tsx:55 #: src/components/dialogs/EmbedConsent.tsx:59 msgid "External Media" -msgstr "" +msgstr "Medios externos" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." -msgstr "" +msgstr "Es posible que medios externos permitan que otros sitios recopilen datos sobre ti y tu dispositivo. No se envía o solicita ningún tipo de información hasta que presiones el botón de \"play\"." -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" -msgstr "" +msgstr "Medios externos" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" -msgstr "" +msgstr "Medios externos" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" msgstr "" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:110 -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:143 -#~ msgid "Failed to load recommended feeds" -#~ msgstr "Error al cargar las noticias recomendadas" +#: src/screens/Messages/Conversation/MessageListError.tsx:28 +#~ msgid "Failed to load past messages." +#~ msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +#~ msgid "Failed to send message(s)." +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "Noticias fuera de línea" +#: src/view/screens/Feeds.tsx:709 +#~ msgid "Feed offline" +#~ msgstr "Noticias fuera de línea" -#: src/view/com/feeds/FeedPage.tsx:143 -#~ msgid "Feed Preferences" -#~ msgstr "Preferencias de noticias" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "Comentarios" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" -msgstr "Noticias" +msgstr "Feeds" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:106 -#~ msgid "Feeds are created by users and can give you entirely new experiences." -#~ msgstr "" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:106 -#~ msgid "Feeds are created by users and organizations. They offer you varied experiences and suggest content you may like using algorithms." -#~ msgstr "" - -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:58 -#~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." -#~ msgstr "Se crean las noticias por los usuarios para crear colecciones de contenidos. Elige algunas noticias que te parezcan interesantes." - -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Las noticias son algoritmos personalizados que los usuarios construyen con un poco de experiencia en codificación. <0/> para más información." #: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" +#~ msgid "Feeds can be topical as well!" +#~ msgstr "" + +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" msgstr "" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" msgstr "" @@ -2177,49 +2430,45 @@ msgstr "" msgid "Filter from feeds" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "" + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" msgstr "" -#: src/view/screens/Search/Search.tsx:589 -#~ msgid "Find users on Bluesky" -#~ msgstr "Encontrar usuarios en Bluesky" - -#: src/view/screens/Search/Search.tsx:587 -#~ msgid "Find users with the search tool on the right" -#~ msgstr "Encuentra usuarios con la herramienta de búsqueda de la derecha" - -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 -#~ msgid "Finding similar accounts..." -#~ msgstr "Encontrar cuentas similares..." - -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:111 -#~ msgid "Fine-tune the content you see on your home screen." -#~ msgstr "Ajusta el contenido que ves en tu pantalla de inicio." - -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "Ajusta los hilos de discusión." -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "" @@ -2232,61 +2481,98 @@ msgstr "" msgid "Flip vertically" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "Seguir" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" -msgstr "" +msgstr "Seguir" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" +msgstr "Seguir {0}" + +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" +msgstr "Seguir cuenta" + +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" -msgstr "" +#~ msgid "Follow All" +#~ msgstr "" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" +#~ msgid "Follow selected accounts and continue to the next step" +#~ msgstr "" + +#: src/components/KnownFollowers.tsx:169 +#~ msgid "Followed by" +#~ msgstr "" + +#: src/view/com/profile/ProfileCard.tsx:190 +#~ msgid "Followed by {0}" +#~ msgstr "Seguido por {0}" + +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" msgstr "" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:65 -#~ msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." -#~ msgstr "Sigue a algunos usuarios para empezar. Podemos recomendarte más usuarios en función de los que te parezcan interesantes." - -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" msgstr "" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "Usuarios seguidos" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "Solo usuarios seguidos" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" +msgstr "ha comenzado a seguirte" + +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" msgstr "" #: src/view/com/profile/ProfileFollowers.tsx:104 @@ -2294,75 +2580,86 @@ msgstr "" msgid "Followers" msgstr "Seguidores" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "Siguiendo" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" +msgstr "Siguiendo {0}" + +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" msgstr "" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" -msgstr "" +msgstr "Feed de Siguiendo" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" +msgstr "Feed de Siguiendo" + +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." msgstr "" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" -msgstr "Te siguen" +msgstr "Te sigue" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" -msgstr "" +msgstr "Te sigue" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" -msgstr "" +msgstr "Comida" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Por razones de seguridad, tendremos que enviarte un código de confirmación a tu dirección de correo electrónico." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." -msgstr "Por razones de seguridad, no podrás volver a verla. Si pierdes esta contraseña, tendrás que generar una nueva." - -#: src/view/com/auth/login/LoginForm.tsx:244 -#~ msgid "Forgot" -#~ msgstr "Lo olvidé" - -#: src/view/com/auth/login/LoginForm.tsx:241 -#~ msgid "Forgot password" -#~ msgstr "Olvidé mi contraseña" +msgstr "Por razones de seguridad, no podrás volver a verla de nuevo. Si pierdes esta contraseña, tendrás que generar una nueva." #: src/screens/Login/index.tsx:129 #: src/screens/Login/index.tsx:144 msgid "Forgot Password" msgstr "Olvidé mi contraseña" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" -msgstr "" +msgstr "¿Has olvidado tu contraseña?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "" @@ -2370,7 +2667,7 @@ msgstr "" msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "" @@ -2379,48 +2676,77 @@ msgstr "" msgid "Gallery" msgstr "Galería" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Comenzar" -#: src/screens/Onboarding/StepProfile/index.tsx:228 +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" +msgstr "" + +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 msgid "Give your profile a face" msgstr "" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" -msgstr "" +msgstr "Violaciones flagrantes de la Ley o de los Términos de servicio" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" -msgstr "Regresar" +msgstr "Volver" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" -msgstr "Regresar" +msgstr "Volver" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:189 +#~ msgid "Go back to previous screen" +#~ msgstr "" + +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "" @@ -2429,142 +2755,139 @@ msgstr "" msgid "Go Home" msgstr "" -#: src/view/screens/Search/Search.tsx:827 -#: src/view/shell/desktop/Search.tsx:263 -#~ msgid "Go to @{queryMaybeHandle}" -#~ msgstr "" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "Ir al siguiente" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" msgstr "" #: src/lib/moderation/useGlobalLabelStrings.ts:46 msgid "Graphic Media" +msgstr "Contenido Gráfico" + +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" msgstr "" #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" -msgstr "Identificador" +msgstr "Nombre de usuarioContenido Gráfico" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" -msgstr "" +msgstr "Vibración" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" -msgstr "" +msgstr "Acoso, trolling o intolerancia" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" -msgstr "" +msgstr "Hashtag" -#: src/components/RichText.tsx:188 -#~ msgid "Hashtag: {tag}" -#~ msgstr "" - -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" -msgstr "" +msgstr "Hashtag: #{tag}" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "Ayuda" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "" +#~ msgid "Here are some accounts for you to follow" +#~ msgstr "" #: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "" +#~ msgid "Here are some popular topical feeds. You can choose to follow as many as you like." +#~ msgstr "" #: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "" +#~ msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." +#~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Aquí tienes tu contraseña de la app." -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "Ocultar" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" -msgstr "" +msgstr "Ocultar" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" -msgstr "Ocultar publicación" +msgstr "Ocultar post" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" -msgstr "¿Ocultar esta publicación?" +msgstr "¿Ocultar este post?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" -msgstr "Ocultar la lista de usuarios" +msgstr "Ocultar lista de usuarios" -#: src/view/com/profile/ProfileHeader.tsx:487 -#~ msgid "Hides posts from {0} in your feed" -#~ msgstr "" - -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Se ha producido algún problema al contactar con el servidor de noticias. Por favor, informa al propietario de la noticia sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Parece que el servidor de noticias está mal configurado. Por favor, informa al propietario de la noticia sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Parece que el servidor de noticias está fuera de línea. Por favor, informa al propietario de la noticia sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "El servidor de noticias ha respondido de forma incorrecta. Por favor, informa al propietario de la noticia sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Tenemos problemas para encontrar esta noticia. Puede que la hayan borrado." -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." msgstr "" @@ -2572,28 +2895,22 @@ msgstr "" msgid "Hmmmm, we couldn't load that moderation service." msgstr "" -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" -msgstr "Página inicial" - -#: src/Navigation.tsx:247 -#: src/view/com/pager/FeedsTabBarMobile.tsx:123 -#: src/view/screens/PreferencesHomeFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 -#~ msgid "Home Feed Preferences" -#~ msgstr "Preferencias de noticias de la página inicial" +msgstr "Inicio" #: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Proveedor de alojamiento" @@ -2616,7 +2933,8 @@ msgstr "" msgid "I have my own domain" msgstr "Tengo mi propio dominio" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" msgstr "" @@ -2632,56 +2950,55 @@ msgstr "Si no se selecciona ninguno, es apto para todas las edades." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "" -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "" -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Texto alt de la imagen" -#: src/view/com/util/UserAvatar.tsx:311 -#: src/view/com/util/UserBanner.tsx:118 -#~ msgid "Image options" -#~ msgstr "Opciones de la imagen" +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "" -#: src/view/com/auth/create/Step1.tsx:177 -#~ msgid "Input email for Bluesky account" -#~ msgstr "" - -#: src/view/com/auth/create/Step1.tsx:151 -#~ msgid "Input invite code to proceed" -#~ msgstr "" - -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "" @@ -2689,35 +3006,23 @@ msgstr "" msgid "Input new password" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "" -#: src/view/com/auth/create/Step2.tsx:196 -#~ msgid "Input phone number for SMS verification" -#~ msgstr "" - -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "" +#: src/screens/Login/LoginForm.tsx:221 +#~ msgid "Input the password tied to {identifier}" +#~ msgstr "" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the username or email address you used at signup" msgstr "" -#: src/view/com/auth/create/Step2.tsx:271 -#~ msgid "Input the verification code we have texted to you" -#~ msgstr "" - -#: src/view/com/modals/Waitlist.tsx:90 -#~ msgid "Input your email to get on the Bluesky waitlist" -#~ msgstr "" - -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "" @@ -2725,36 +3030,36 @@ msgstr "" msgid "Input your preferred hosting provider" msgstr "" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "Nombre de usuario o contraseña no válidos" -#: src/view/screens/Settings.tsx:411 -#~ msgid "Invite" -#~ msgstr "Invitar" - #: src/view/com/modals/InviteCodes.tsx:94 msgid "Invite a Friend" -msgstr "Invitar a un amigo" +msgstr "Invita a un amigo" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "Código de invitación" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "No se acepta el código de invitación. Comprueba que lo has introducido correctamente e inténtalo de nuevo." @@ -2762,36 +3067,47 @@ msgstr "No se acepta el código de invitación. Comprueba que lo has introducido msgid "Invite codes: {0} available" msgstr "" -#: src/view/shell/Drawer.tsx:645 -#~ msgid "Invite codes: {invitesAvailable} available" -#~ msgstr "Códigos de invitación: {invitesAvailable} disponibles" - #: src/view/com/modals/InviteCodes.tsx:170 msgid "Invite codes: 1 available" msgstr "" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." +#~ msgid "It shows posts from the people you follow as they happen." +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." msgstr "" #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "Tareas" -#: src/view/com/modals/Waitlist.tsx:67 -#~ msgid "Join the waitlist" -#~ msgstr "Únete a la lista de espera" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "" -#: src/view/com/auth/create/Step1.tsx:174 -#: src/view/com/auth/create/Step1.tsx:178 -#~ msgid "Join the waitlist." -#~ msgstr "Únete a la lista de espera." +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "" -#: src/view/com/modals/Waitlist.tsx:128 -#~ msgid "Join Waitlist" -#~ msgstr "Únete a la lista de espera" - -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "" @@ -2799,19 +3115,19 @@ msgstr "" #~ msgid "label has been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "" -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "" -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "" @@ -2819,73 +3135,72 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "Escoger el idioma" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" -msgstr "" +msgstr "Ajustes de Idiomas" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" -msgstr "Configuración del idioma" +msgstr "Ajustes de Idiomas" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "Idiomas" -#: src/view/com/auth/create/StepHeader.tsx:20 -#~ msgid "Last step!" -#~ msgstr "" - #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "" -#: src/view/com/util/moderation/ContentHider.tsx:103 -#~ msgid "Learn more" -#~ msgstr "Aprender más" - #: src/components/moderation/ScreenHider.tsx:136 msgid "Learn More" msgstr "Aprender más" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Aprender más acerca de esta advertencia" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "Más información sobre lo que es público en Bluesky." -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "" -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" msgstr "" @@ -2897,29 +3212,29 @@ msgstr "Déjalos todos sin marcar para ver cualquier idioma." msgid "Leaving Bluesky" msgstr "Salir de Bluesky" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "" -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "¡Vamos a restablecer tu contraseña!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "" -#: src/view/com/util/UserAvatar.tsx:248 -#: src/view/com/util/UserBanner.tsx:62 -#~ msgid "Library" -#~ msgstr "Librería" - -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "" @@ -2927,14 +3242,23 @@ msgstr "" #~ msgid "Like" #~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "" + +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "Dar «me gusta» a esta noticia" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "Le ha gustado a" @@ -2958,103 +3282,116 @@ msgstr "" #~ msgid "Liked by {likeCount} {0}" #~ msgstr "" -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" msgstr "" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "Cantidad de «Me gusta»" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "Avatar de la lista" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "Nombre de la lista" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "Listas" -#: src/view/com/post-thread/PostThread.tsx:333 -#: src/view/com/post-thread/PostThread.tsx:341 -#~ msgid "Load more posts" -#~ msgstr "Cargar más publicaciones" +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "" -#: src/view/screens/Notifications.tsx:159 +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "Cargar notificaciones nuevas" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" -msgstr "Cargar publicaciones nuevas" +msgstr "Cargar posts nuevos" #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "Cargando..." -#: src/view/com/modals/ServerInput.tsx:50 -#~ msgid "Local dev server" -#~ msgstr "Servidor de desarrollo local" - -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "Visibilidad de desconexión" @@ -3062,7 +3399,7 @@ msgstr "Visibilidad de desconexión" msgid "Login to account that is not listed" msgstr "Acceder a una cuenta que no está en la lista" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" msgstr "" @@ -3074,12 +3411,20 @@ msgstr "" msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" msgstr "" #: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." +#~ msgid "Looks like you're missing a following feed." +#~ msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" msgstr "" #: src/view/com/modals/LinkWarning.tsx:79 @@ -3090,39 +3435,35 @@ msgstr "¡Asegúrate de que es aquí a donde pretendes ir!" msgid "Manage your muted words and tags" msgstr "" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" msgstr "" -#: src/view/com/auth/create/Step2.tsx:118 -#~ msgid "May not be longer than 253 characters" -#~ msgstr "" - -#: src/view/com/auth/create/Step2.tsx:109 -#~ msgid "May only contain letters and numbers" -#~ msgstr "" - -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" -msgstr "Medios" +msgstr "Multimedia" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "usuarios mencionados" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "Usuarios mencionados" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "Menú" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" msgstr "" @@ -3130,40 +3471,37 @@ msgstr "" msgid "Message from server: {0}" msgstr "Mensaje del servidor: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" #: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "" +#~ msgid "Messaging settings" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "Moderación" @@ -3171,78 +3509,79 @@ msgstr "Moderación" msgid "Moderation details" msgstr "" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "Listas de moderación" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Listas de moderación" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "" #: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" -msgstr "Más canales de noticias" +msgstr "Más feeds" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "Más opciones" -#: src/view/com/util/forms/PostDropdownBtn.tsx:315 -#~ msgid "More post options" -#~ msgstr "" - -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "" -#: src/view/com/auth/create/Step2.tsx:122 -#~ msgid "Must be at least 3 characters" -#~ msgstr "" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "" #: src/components/TagMenu/index.tsx:249 msgid "Mute" @@ -3252,12 +3591,12 @@ msgstr "" msgid "Mute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "Silenciar la cuenta" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "Silenciar las cuentas" @@ -3265,9 +3604,10 @@ msgstr "Silenciar las cuentas" msgid "Mute all {displayTag} posts" msgstr "" -#: src/components/TagMenu/index.tsx:211 -#~ msgid "Mute all {tag} posts" -#~ msgstr "" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "" #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" @@ -3277,23 +3617,19 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "Silenciar la lista" #: src/components/dms/ConvoMenu.tsx:136 #: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "" +#~ msgid "Mute notifications" +#~ msgstr "" -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "¿Silenciar estas cuentas?" -#: src/view/screens/ProfileList.tsx:279 -#~ msgid "Mute this List" -#~ msgstr "" - #: src/components/dialogs/MutedWords.tsx:126 msgid "Mute this word in post text and tags" msgstr "" @@ -3302,126 +3638,118 @@ msgstr "" msgid "Mute this word in tags only" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" -msgstr "Silenciar el hilo" +msgstr "Mutear hilo" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" -msgstr "" +msgstr "Muteado" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" -msgstr "Cuentas silenciadas" +msgstr "Cuentas muteadas" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" -msgstr "Cuentas silenciadas" +msgstr "Cuentas muteadas" #: src/view/screens/ModerationMutedAccounts.tsx:117 msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." -msgstr "Las cuentas silenciadas eliminan sus publicaciones de tu canal de noticias y de tus notificaciones. Las cuentas silenciadas son completamente privadas." +msgstr "Al mutear a una cuenta no verás sus posts en tu feed o notificaciones. Nadie puede ver a quien muteas." -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" -msgstr "" +msgstr "Muteado por \"{0}\"" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" -msgstr "" +msgstr "Palabras y etiquetas muteadas" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." -msgstr "Silenciar es privado. Las cuentas silenciadas pueden interactuar contigo, pero no verás sus publicaciones ni recibirás notificaciones suyas." +msgstr "Nadie puede ver a quien muteas. Las cuentas muteadas pueden interactuar contigo, pero no verás sus posts en tu feed o notificaciones." #: src/components/dialogs/BirthDateSettings.tsx:35 #: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "Mi cumpleaños" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" -msgstr "Mis canales de noticias" +msgstr "Mis feeds" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "Mi perfil" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" -msgstr "" +msgstr "Mis feeds guardados" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" -msgstr "Mis canales de noticias guardados" +msgstr "Mis feeds guardados" -#: src/view/com/auth/server-input/index.tsx:118 -#~ msgid "my-server.com" -#~ msgstr "" - -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "Nombre" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "" -#: src/view/com/modals/EmbedConsent.tsx:107 -#: src/view/com/modals/EmbedConsent.tsx:123 -#~ msgid "Never load embeds from {0}" -#~ msgstr "" - -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 -#~ msgid "Never lose access to your followers and data." -#~ msgstr "No pierdas nunca el acceso a tus seguidores y datos." - -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "" -#: src/components/dialogs/MutedWords.tsx:293 -#~ msgid "Nevermind" -#~ msgstr "" - #: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "" @@ -3430,157 +3758,200 @@ msgstr "" msgid "New" msgstr "Nuevo" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" -msgstr "Publicación nueva" +msgstr "Nuevo post" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" -msgstr "Publicación nueva" +msgstr "Nuevo post" -#: src/view/com/modals/CreateOrEditList.tsx:250 -msgid "New User List" +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/com/modals/CreateOrEditList.tsx:236 +msgid "New User List" +msgstr "Nueva lista de usuarios" + +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" -msgstr "" +msgstr "Noticias" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "Siguiente" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:103 -#~ msgctxt "action" -#~ msgid "Next" -#~ msgstr "" - #: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "Imagen nueva" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "No" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "Sin descripción" #: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" -msgstr "" +msgstr "Sin panel de DNS" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "" + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" msgstr "" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "" + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Sin resultados" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "No se han encontrado resultados para \"{query}\"" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "No se han encontrado resultados para {query}" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." msgstr "" #: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "" +#~ msgid "No search results found for \"{searchText}\"." +#~ msgstr "" #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "Nadie" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "" @@ -3589,8 +3960,8 @@ msgstr "" #~ msgid "Not Applicable." #~ msgstr "No aplicable." -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "" @@ -3599,27 +3970,57 @@ msgstr "" msgid "Not right now" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: Bluesky es una red abierta y pública. Esta configuración sólo limita la visibilidad de tu contenido en la aplicación y el sitio web de Bluesky, y es posible que otras aplicaciones no respeten esta configuración. Otras aplicaciones y sitios web pueden seguir mostrando tu contenido a los usuarios que hayan cerrado sesión." -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "Notificaciones" -#: src/components/dms/MessageItem.tsx:145 +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" +msgstr "" + +#: src/components/dms/MessageItem.tsx:169 msgid "Now" msgstr "" @@ -3627,14 +4028,10 @@ msgstr "" msgid "Nudity" msgstr "" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "" -#: src/lib/moderation/useReportOptions.ts:71 -#~ msgid "Nudity or pornography not labeled as such" -#~ msgstr "" - #: src/screens/Signup/index.tsx:145 #~ msgid "of" #~ msgstr "" @@ -3643,17 +4040,17 @@ msgstr "" msgid "Off" msgstr "" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "¡Qué problema!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "" @@ -3661,115 +4058,151 @@ msgstr "" msgid "Okay" msgstr "Está bien" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "Falta el texto alternativo en una o varias imágenes." -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." -msgstr "Solo {0} puede responder." +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" +msgstr "" -#: src/screens/Signup/StepHandle.tsx:98 +#: src/view/com/threadgate/WhoCanReply.tsx:100 +#~ msgid "Only {0} can reply." +#~ msgstr "Solo {0} puede responder." + +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "" -#: src/screens/Onboarding/StepProfile/index.tsx:280 +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:277 msgid "Open avatar creator" msgstr "" -#: src/view/screens/Moderation.tsx:75 -#~ msgid "Open content filtering settings" -#~ msgstr "" +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "" -#: src/view/screens/Moderation.tsx:92 -#~ msgid "Open muted words settings" -#~ msgstr "" - -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "Abrir navegación" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "" #: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "" +#~ msgid "Opens an expanded list of users in this notification" +#~ msgstr "" #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "Abrir la configuración del idioma que se puede ajustar" @@ -3777,11 +4210,7 @@ msgstr "Abrir la configuración del idioma que se puede ajustar" msgid "Opens device photo gallery" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:420 -#~ msgid "Opens editor for profile display name, avatar, background image, and description" -#~ msgstr "" - -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "" @@ -3795,47 +4224,35 @@ msgstr "" msgid "Opens flow to sign into your existing Bluesky account" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:575 -#~ msgid "Opens followers list" -#~ msgstr "" - -#: src/view/com/profile/ProfileHeader.tsx:594 -#~ msgid "Opens following list" -#~ msgstr "" - -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" msgstr "" -#: src/view/screens/Settings.tsx:412 -#~ msgid "Opens invite code list" -#~ msgstr "" - #: src/view/com/modals/InviteCodes.tsx:173 msgid "Opens list of invite codes" msgstr "Abre la lista de códigos de invitación" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" -#: src/view/screens/Settings/index.tsx:774 -#~ msgid "Opens modal for account deletion confirmation. Requires email code." -#~ msgstr "" - -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "" @@ -3843,74 +4260,83 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Abre el modal para usar el dominio personalizado" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" msgstr "Abre la configuración de moderación" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "" +#: src/view/screens/Feeds.tsx:417 +#~ msgid "Opens screen to edit Saved Feeds" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" msgstr "Abre la pantalla con todas las noticias guardadas" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "" -#: src/view/screens/Settings/index.tsx:676 -#~ msgid "Opens the app password settings page" -#~ msgstr "Abre la página de configuración de la contraseña de la app" - -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" msgstr "" -#: src/view/screens/Settings/index.tsx:535 -#~ msgid "Opens the home feed preferences" -#~ msgstr "Abre las preferencias de noticias de la página inicial" - #: src/view/com/modals/LinkWarning.tsx:93 msgid "Opens the linked website" msgstr "" #: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "" +#~ msgid "Opens the message settings page" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "Abre la página del libro de cuentos" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "Abre la página de la bitácora del sistema" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "Abre las preferencias de hilos" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "" + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "" @@ -3918,15 +4344,15 @@ msgstr "" msgid "Other account" msgstr "Otra cuenta" -#: src/view/com/modals/ServerInput.tsx:88 -#~ msgid "Other service" -#~ msgstr "Otro servicio" - -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "Otro..." -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "" + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Página no encontrada" @@ -3935,14 +4361,14 @@ msgstr "Página no encontrada" msgid "Page Not Found" msgstr "" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "Contraseña" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "" @@ -3954,56 +4380,66 @@ msgstr "Contraseña actualizada" msgid "Password updated!" msgstr "¡Contraseña actualizada!" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "" -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "" -#: src/view/com/auth/create/Step2.tsx:183 -#~ msgid "Phone number" -#~ msgstr "" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "" #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Imágenes destinadas a adultos." -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "Canales de noticias anclados" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" msgstr "" @@ -4011,7 +4447,12 @@ msgstr "" msgid "Play {0}" msgstr "" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/screens/Messages/Settings.tsx:97 +#: src/screens/Messages/Settings.tsx:104 +#~ msgid "Play notification sounds" +#~ msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" msgstr "" @@ -4024,15 +4465,16 @@ msgstr "" msgid "Plays the GIF" msgstr "" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "Por favor, elige tu identificador." -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "Por favor, elige tu contraseña." -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "" @@ -4040,15 +4482,11 @@ msgstr "" msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Por favor, confirma tu correo electrónico antes de cambiarlo. Se trata de un requisito temporal mientras se añaden herramientas de actualización de correo electrónico, y pronto se eliminará." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "" -#: src/view/com/auth/create/Step2.tsx:206 -#~ msgid "Please enter a phone number that can receive SMS text messages." -#~ msgstr "" - -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Introduce un nombre único para la contraseña de esta app o utiliza una generada aleatoriamente." @@ -4056,104 +4494,98 @@ msgstr "Introduce un nombre único para la contraseña de esta app o utiliza una msgid "Please enter a valid word, tag, or phrase to mute" msgstr "" -#: src/view/com/auth/create/state.ts:170 -#~ msgid "Please enter the code you received by SMS." -#~ msgstr "" - -#: src/view/com/auth/create/Step2.tsx:282 -#~ msgid "Please enter the verification code sent to {phoneNumberFormatted}." -#~ msgstr "" - -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "Introduce tu correo electrónico." -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "Introduce tu contraseña, también:" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" -#: src/lib/hooks/useAccountSwitcher.ts:48 -msgid "Please sign in as @{0}" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" msgstr "" -#: src/view/com/modals/AppealLabel.tsx:72 -#: src/view/com/modals/AppealLabel.tsx:75 -#~ msgid "Please tell us why you think this content warning was incorrectly applied!" -#~ msgstr "Por favor, dinos por qué crees que esta advertencia de contenido se ha aplicado incorrectamente!" +#: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 +msgid "Please sign in as @{0}" +msgstr "" #: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "Por favor, espera a que tu tarjeta de enlace termine de cargarse" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" -msgstr "" +msgstr "Política" #: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" -msgstr "" +msgstr "Pornografía" -#: src/lib/moderation/useGlobalLabelStrings.ts:34 -#~ msgid "Pornography" -#~ msgstr "" - -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" -msgstr "" +msgstr "Publicar" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" -msgstr "Publicación" +msgstr "Post" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" -msgstr "" +msgstr "Post por {0}" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" -msgstr "" +msgstr "Post por {0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" -msgstr "" +msgstr "Post eliminado" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" -msgstr "Publicación oculta" +msgstr "Post ocultado" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" -msgstr "" +msgstr "Post ocultado por palabra muteada" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" -msgstr "" +msgstr "Post ocultado por ti" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" -msgstr "Lenguaje de la publicación" +msgstr "Lenguaje de la post" #: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:75 msgid "Post Languages" -msgstr "Lenguajes de la publicación" +msgstr "Lenguajes de la post" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Publicación no encontrada" @@ -4161,7 +4593,8 @@ msgstr "Publicación no encontrada" msgid "posts" msgstr "" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "Publicaciones" @@ -4169,7 +4602,7 @@ msgstr "Publicaciones" msgid "Posts can be muted based on their text, their tags, or both." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "" @@ -4177,14 +4610,22 @@ msgstr "" msgid "Potentially Misleading Link" msgstr "Enlace potencialmente engañoso" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "" @@ -4193,45 +4634,57 @@ msgstr "" #~ msgid "Press to Retry" #~ msgstr "" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Imagen previa" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" -msgstr "Lenguajes primarios" +msgstr "Idioma primario" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "Priorizar los usuarios a los que sigue" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "Privacidad" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Política de privacidad" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "Procesando..." -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "Perfil" @@ -4239,45 +4692,64 @@ msgstr "Perfil" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "Protege tu cuenta verificando tu correo electrónico." -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "" #: src/view/screens/ModerationModlists.tsx:61 msgid "Public, shareable lists of users to mute or block in bulk." -msgstr "Listas públicas y compartibles de usuarios para silenciar o bloquear en bloque." +msgstr "Listas públicas y compartibles de usuarios para mutear o bloquear en cantidad." -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." -msgstr "Listas públicas y compartibles que pueden impulsar las noticias." +msgstr "Listas públicas y compartibles que pueden impulsar feeds." -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" -msgid "Quote post" -msgstr "Citar una publicación" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" -msgstr "Citar una publicación" +msgstr "Citar una post" + +#: src/view/com/modals/Repost.tsx:66 +#~ msgctxt "action" +#~ msgid "Quote post" +#~ msgstr "Citar una post" #: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "Citar una publicación" +#~ msgctxt "action" +#~ msgid "Quote Post" +#~ msgstr "Citar una post" -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "" @@ -4285,40 +4757,55 @@ msgstr "" msgid "Ratios" msgstr "Proporciones" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" msgstr "" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "" + +#: src/components/dms/MessageReportDialog.tsx:149 +#~ msgid "Reason: {0}" +#~ msgstr "" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:117 -#~ msgid "Recommended Feeds" -#~ msgstr "Canales de noticias recomendados" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:181 -#~ msgid "Recommended Users" -#~ msgstr "Usuarios recomendados" +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Eliminar" -#: src/view/com/feeds/FeedSourceCard.tsx:108 -#~ msgid "Remove {0} from my feeds?" -#~ msgstr "¿Eliminar {0} de mis canales de noticias?" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Eliminar la cuenta" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "" @@ -4326,9 +4813,13 @@ msgstr "" msgid "Remove Banner" msgstr "" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "Eliminar el canal de noticias" @@ -4336,15 +4827,16 @@ msgstr "Eliminar el canal de noticias" msgid "Remove feed?" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "Eliminar de mis canales de noticias" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "" @@ -4352,7 +4844,7 @@ msgstr "" msgid "Remove image" msgstr "Eliminar la imagen" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "Eliminar la vista previa de la imagen" @@ -4360,104 +4852,120 @@ msgstr "Eliminar la vista previa de la imagen" msgid "Remove mute word from your list" msgstr "" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "" + +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 msgid "Remove quote" msgstr "" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:175 -#~ msgid "Remove this feed from my feeds?" -#~ msgstr "¿Eliminar este canal de mis canales de noticias?" - #: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:132 -#~ msgid "Remove this feed from your saved feeds?" -#~ msgstr "¿Eliminar este canal de mis canales de noticias guardados?" - -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "Eliminar de la lista" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" msgstr "" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" msgstr "" #: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "" +#~ msgid "Removes default thumbnail from {0}" +#~ msgstr "" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" msgstr "" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 msgid "Replace with Discover" msgstr "" -#: src/view/screens/Profile.tsx:194 +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "Respuestas" -#: src/view/com/threadgate/WhoCanReply.tsx:98 +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "" + +#: src/view/com/threadgate/WhoCanReply.tsx:123 +#~ msgid "Replies on this thread are disabled" +#~ msgstr "" + +#: src/components/WhoCanReply.tsx:243 msgid "Replies to this thread are disabled" msgstr "Las respuestas a este hilo están desactivadas" -#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "Filtros de respuestas" -#: src/view/com/post/Post.tsx:177 -#: src/view/com/posts/FeedItem.tsx:285 -#~ msgctxt "description" -#~ msgid "Reply to <0/>" -#~ msgstr "" - -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "" -#: src/components/dms/MessageMenu.tsx:109 -msgid "Report" +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" msgstr "" -#: src/view/com/modals/report/Modal.tsx:166 -#~ msgid "Report {collectionName}" -#~ msgstr "Informe de {collectionName}" +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 +msgid "Report" +msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 #~ msgid "Report account" #~ msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "Informe de la cuenta" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" msgstr "" @@ -4465,88 +4973,100 @@ msgstr "" msgid "Report dialog" msgstr "" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "Informe del canal de noticias" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "Informe de la lista" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" -msgstr "Informe de la publicación" +msgstr "Informe de la post" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "Volver a publicar" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" -msgstr "Volver a publicar o citar publicación" +msgstr "Volver a publicar o citar post" #: src/view/screens/PostRepostedBy.tsx:27 msgid "Reposted By" msgstr "Vuelto a publicar por" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "Vuelto a publicar por {0}" -#: src/view/com/posts/FeedItem.tsx:214 -#~ msgid "Reposted by <0/>" -#~ msgstr "Vuelto a publicar por <0/>" - -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "" @@ -4555,46 +5075,38 @@ msgstr "" msgid "Request Change" msgstr "Solicitar un cambio" -#: src/view/com/auth/create/Step2.tsx:219 -#~ msgid "Request code" -#~ msgstr "" - -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" -msgstr "" +msgstr "Requerir texto alternativo antes de publicar" #: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "Requerido para este proveedor" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" -msgstr "" +msgstr "Volver a enviar correo" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" -msgstr "Restablecer el código" +msgstr "Código de reseteo" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" -msgstr "" +msgstr "Código de reseteo" -#: src/view/screens/Settings/index.tsx:824 -#~ msgid "Reset onboarding" -#~ msgstr "" - -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "Restablecer el estado de incorporación" @@ -4602,24 +5114,20 @@ msgstr "Restablecer el estado de incorporación" msgid "Reset password" msgstr "Restablecer la contraseña" -#: src/view/screens/Settings/index.tsx:814 -#~ msgid "Reset preferences" -#~ msgstr "" - -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "Restablecer el estado de preferencias" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "Restablece el estado de incorporación" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "Restablecer el estado de preferencias" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "" @@ -4628,26 +5136,28 @@ msgstr "" msgid "Retries the last action, which errored out" msgstr "" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" -msgstr "Volver a intentar" +msgstr "Intentar de nuevo" #: src/screens/Messages/Conversation/MessageListError.tsx:54 #~ msgid "Retry." -#~ msgstr "" +#~ msgstr "Intentar de nuevo" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "" @@ -4656,36 +5166,34 @@ msgid "Returns to home page" msgstr "" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:55 -#~ msgid "SANDBOX. Posts and accounts are not permanent." -#~ msgstr "" - #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Guardar" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" -msgstr "" +msgstr "Guardar" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" -msgstr "Guardar el texto alt" +msgstr "Guardar texto alternativo" #: src/components/dialogs/BirthDateSettings.tsx:119 msgid "Save birthday" -msgstr "" +msgstr "Guardar cumpleaños" #: src/view/com/modals/EditProfile.tsx:233 msgid "Save Changes" @@ -4693,22 +5201,31 @@ msgstr "Guardar cambios" #: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" -msgstr "Guardar el cambio de identificador" +msgstr "Guardar cambio de nombre de usuario" + +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "" #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" -msgstr "Guardar el recorte de imagen" +msgstr "Guardar recorte de imagen" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 -msgid "Save to my feeds" +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" msgstr "" -#: src/view/screens/SavedFeeds.tsx:144 -msgid "Saved Feeds" -msgstr "Guardar canales de noticias" +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 +msgid "Save to my feeds" +msgstr "Guardar a mis feeds" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/screens/SavedFeeds.tsx:145 +msgid "Saved Feeds" +msgstr "Feeds Guardados" + +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" msgstr "" @@ -4716,8 +5233,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "" @@ -4733,37 +5250,45 @@ msgstr "" msgid "Saves image crop settings" msgstr "" -#: src/screens/Onboarding/index.tsx:48 -msgid "Science" +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" msgstr "" -#: src/view/screens/ProfileList.tsx:922 +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 +msgid "Science" +msgstr "Ciencia" + +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "Buscar" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" msgstr "" @@ -4771,37 +5296,36 @@ msgstr "" msgid "Search for all posts by @{authorHandle} with tag {displayTag}" msgstr "" -#: src/components/TagMenu/index.tsx:145 -#~ msgid "Search for all posts by @{authorHandle} with tag {tag}" -#~ msgstr "" - #: src/components/TagMenu/index.tsx:94 msgid "Search for all posts with tag {displayTag}" msgstr "" -#: src/components/TagMenu/index.tsx:90 -#~ msgid "Search for all posts with tag {tag}" -#~ msgstr "" - -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." msgstr "" -#: src/view/com/auth/LoggedOut.tsx:105 +#: src/components/dms/NewChat.tsx:226 +#~ msgid "Search for someone to start a conversation with." +#~ msgstr "" + #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "Buscar usuarios" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" msgstr "" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "" @@ -4825,27 +5349,15 @@ msgstr "" msgid "See <0>{displayTag} posts by this user" msgstr "" -#: src/components/TagMenu/index.tsx:128 -#~ msgid "See <0>{tag} posts" -#~ msgstr "" - -#: src/components/TagMenu/index.tsx:189 -#~ msgid "See <0>{tag} posts by this user" -#~ msgstr "" - #: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "" +#: src/view/com/util/UserAvatar.tsx:402 +#~ msgid "See profile" +#~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:40 -#~ msgid "See what's next" -#~ msgstr "Ver lo que sigue" - #: src/view/com/util/Selector.tsx:106 msgid "Select {item}" msgstr "" @@ -4866,23 +5378,19 @@ msgstr "" msgid "Select an emoji" msgstr "" -#: src/view/com/modals/ServerInput.tsx:75 -#~ msgid "Select Bluesky Social" -#~ msgstr "Seleccionar Bluesky Social" - #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "Selecciona de una cuenta existente" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" msgstr "" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" msgstr "" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "" @@ -4894,190 +5402,147 @@ msgstr "" msgid "Select option {i} of {numItems}" msgstr "" -#: src/view/com/auth/create/Step1.tsx:96 -#: src/view/com/auth/login/LoginForm.tsx:153 -#~ msgid "Select service" -#~ msgstr "Selecciona el servicio" - #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "" +#~ msgid "Select some accounts below to follow" +#~ msgstr "" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "" #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." -msgstr "" - -#: src/screens/Onboarding/StepModeration/index.tsx:49 -#~ msgid "Select the types of content that you want to see (or not see), and we'll handle the rest." -#~ msgstr "" +msgstr "Elige que proveedor de servicio quieres usar." #: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" +#~ msgid "Select topical feeds to follow from the list below" +#~ msgstr "" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "" +#~ msgid "Select what you want to see (or not see), and we’ll handle the rest." +#~ msgstr "Elige lo que quieres ver y nosotros nos encargaremos del resto." -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." -msgstr "Selecciona qué idiomas quieres que incluyan tus canales de noticias suscritos. Si no seleccionas ninguno, se mostrarán todos los idiomas." +msgstr "Elige en que idioma deseas que estén los posts de tus feeds. Si ninguno es seleccionado, se mostraran en todos los idiomas." -#: src/view/screens/LanguageSettings.tsx:98 -#~ msgid "Select your app language for the default text to display in the app" -#~ msgstr "Selecciona el idioma de tu app para el texto que se mostrará por defecto en la app" - -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." -msgstr "" +msgstr "Elige en que idioma deseas que esté la interfaz de Bluesky." -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" -msgstr "" +msgstr "Elige tu fecha de nacimiento" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "" -#: src/view/com/auth/create/Step2.tsx:155 -#~ msgid "Select your phone's country" -#~ msgstr "" - -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." -msgstr "Selecciona el idioma que prefieras para las traducciones de tus noticias." +msgstr "Elige en que idioma deseas traducir los posts de tu feed." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "" +#~ msgid "Select your primary algorithmic feeds" +#~ msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" +#~ msgid "Select your secondary algorithmic feeds" +#~ msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" msgstr "" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" -msgstr "Enviar el mensaje de confirmación" +msgstr "Enviar correo de confirmación" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" -msgstr "Enviar el mensaje" +msgstr "Enviar correo" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" -msgstr "Enviar el mensaje" +msgstr "Enviar correo" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "Enviar comentarios" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" +msgstr "Enviar mensaje" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." msgstr "" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" -msgstr "" - -#: src/view/com/modals/report/SendReportButton.tsx:45 -#~ msgid "Send Report" -#~ msgstr "Enviar el informe" +msgstr "Enviar reporte" #: src/components/ReportDialog/SelectLabelerView.tsx:44 msgid "Send report to {0}" -msgstr "" +msgstr "Enviar reporte a {0}" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "" #: src/view/com/auth/server-input/index.tsx:114 msgid "Server address" -msgstr "" +msgstr "Dirección del servidor" -#: src/view/com/modals/ContentFilteringSettings.tsx:311 -#~ msgid "Set {value} for {labelGroup} content moderation policy" -#~ msgstr "" - -#: src/view/com/modals/ContentFilteringSettings.tsx:160 -#: src/view/com/modals/ContentFilteringSettings.tsx:179 -#~ msgctxt "action" -#~ msgid "Set Age" -#~ msgstr "" - -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" -msgstr "" - -#: src/view/screens/Settings/index.tsx:488 -#~ msgid "Set color theme to dark" -#~ msgstr "" - -#: src/view/screens/Settings/index.tsx:481 -#~ msgid "Set color theme to light" -#~ msgstr "" - -#: src/view/screens/Settings/index.tsx:475 -#~ msgid "Set color theme to system setting" -#~ msgstr "" - -#: src/view/screens/Settings/index.tsx:514 -#~ msgid "Set dark theme to the dark theme" -#~ msgstr "" - -#: src/view/screens/Settings/index.tsx:507 -#~ msgid "Set dark theme to the dim theme" -#~ msgstr "" +msgstr "Establecer cumpleaños" #: src/screens/Login/SetNewPasswordForm.tsx:102 msgid "Set new password" msgstr "Establecer la contraseña nueva" -#: src/view/com/auth/create/Step1.tsx:202 -#~ msgid "Set password" -#~ msgstr "" - -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Establece este ajuste en \"No\" para ocultar todas las publicaciones de citas de tus noticias. Las repeticiones seguirán siendo visibles." -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Establece este ajuste en \"No\" para ocultar todas las respuestas de tus noticias." -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Establece este ajuste en \"No\" para ocultar todas las veces que se han vuelto a publicar desde tus noticias." -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Establece este ajuste en \"Sí\" para mostrar las respuestas en una vista de hilos. Se trata de una función experimental." -#: src/view/screens/PreferencesHomeFeed.tsx:261 -#~ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." -#~ msgstr "Establece este ajuste en \"Sí\" para mostrar muestras de tus noticias guardadas en tu siguiente canal de noticias. Se trata de una función experimental." - -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "" @@ -5089,23 +5554,23 @@ msgstr "" msgid "Sets Bluesky username" msgstr "" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "" @@ -5113,10 +5578,6 @@ msgstr "" msgid "Sets email for password reset" msgstr "" -#: src/view/com/auth/login/ForgotPasswordForm.tsx:122 -#~ msgid "Sets hosting provider for password reset" -#~ msgstr "" - #: src/view/com/modals/crop-image/CropImage.web.tsx:146 msgid "Sets image aspect ratio to square" msgstr "" @@ -5129,19 +5590,13 @@ msgstr "" msgid "Sets image aspect ratio to wide" msgstr "" -#: src/view/com/auth/create/Step1.tsx:97 -#: src/view/com/auth/login/LoginForm.tsx:154 -#~ msgid "Sets server for the Bluesky client" -#~ msgstr "" - -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" -msgstr "Configuraciones" +msgstr "Ajustes" #: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." @@ -5149,62 +5604,103 @@ msgstr "Actividad sexual o desnudez erótica." #: src/lib/moderation/useGlobalLabelStrings.ts:38 msgid "Sexually Suggestive" -msgstr "" +msgstr "Sexualmente sugestivo" -#: src/view/com/lightbox/Lightbox.tsx:142 -msgctxt "action" -msgid "Share" -msgstr "" - -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 msgid "Share" msgstr "Compartir" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/view/com/lightbox/Lightbox.tsx:148 +msgctxt "action" +msgid "Share" +msgstr "Compartir" + +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" -msgstr "Compartir las noticias" +msgstr "Compartir feed" + +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "" #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" +msgstr "Compartir enlace" + +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" msgstr "" #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" -msgstr "Mostrar" +msgstr "Ver" #: src/view/screens/PreferencesFollowingFeed.tsx:68 #~ msgid "Show all replies" #~ msgstr "" -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" -msgstr "" +msgstr "Ver texto alternativo" #: src/components/moderation/ScreenHider.tsx:169 #: src/components/moderation/ScreenHider.tsx:172 msgid "Show anyway" -msgstr "Mostrar de todas maneras" +msgstr "Ver de todas maneras" #: src/lib/moderation/useLabelBehaviorDescription.ts:27 #: src/lib/moderation/useLabelBehaviorDescription.ts:63 @@ -5215,86 +5711,90 @@ msgstr "" msgid "Show badge and filter from feeds" msgstr "" -#: src/view/com/modals/EmbedConsent.tsx:87 -#~ msgid "Show embeds from {0}" -#~ msgstr "" - -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 msgid "Show less like this" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" -msgstr "" +msgstr "Ver más" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" msgstr "Mostrar publicaciones de mis noticias" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "Mostrar publicaciones de citas" #: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "" +#~ msgid "Show quote-posts in Following feed" +#~ msgstr "Mostrar citaciones en Siguiendo" #: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "" +#~ msgid "Show quotes in Following" +#~ msgstr "Mostrar citaciones en Siguiendo" #: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "" +#~ msgid "Show re-posts in Following feed" +#~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "Mostrar respuestas" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "Mostrar las respuestas de las personas a quienes sigues antes que el resto de respuestas." #: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "" +#~ msgid "Show replies in Following" +#~ msgstr "Mostrar respuestas en Siguiendo" #: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "" +#~ msgid "Show replies in Following feed" +#~ msgstr "Mostrar respuestas en el feed de Siguiendo" #: src/view/screens/PreferencesFollowingFeed.tsx:70 #~ msgid "Show replies with at least {value} {0}" #~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" -msgstr "Mostrar publicaciones que se han publicado nuevamente" +msgstr "Mostrar reposts" #: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "" +#~ msgid "Show reposts in Following" +#~ msgstr "Mostrar reposts en Siguiendo" -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "" #: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "Mostrar usuarios" +#~ msgid "Show users" +#~ msgstr "Mostrar usuarios" #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" @@ -5304,10 +5804,6 @@ msgstr "" msgid "Show warning and filter from feeds" msgstr "" -#: src/view/com/profile/ProfileHeader.tsx:462 -#~ msgid "Shows a list of users similar to this user." -#~ msgstr "" - #: src/view/com/post-thread/PostThreadFollowBtn.tsx:130 msgid "Shows posts from {0} in your feed" msgstr "" @@ -5316,29 +5812,23 @@ msgstr "" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 msgid "Sign in" msgstr "Iniciar sesión" -#: src/view/com/auth/HomeLoggedOutCTA.tsx:82 -#: src/view/com/auth/SplashScreen.tsx:86 -#: src/view/com/auth/SplashScreen.web.tsx:91 -#~ msgid "Sign In" -#~ msgstr "Iniciar sesión" - #: src/components/AccountList.tsx:114 msgid "Sign in as {0}" msgstr "Iniciar sesión como {0}" @@ -5349,199 +5839,243 @@ msgstr "Iniciar sesión como ..." #: src/components/dialogs/Signin.tsx:75 msgid "Sign in or create your account to join the conversation!" -msgstr "" - -#: src/view/com/auth/login/LoginForm.tsx:140 -#~ msgid "Sign into" -#~ msgstr "Iniciar sesión en" +msgstr "¡Inicia sesión o crea una cuenta para unirte a la conversación!" #: src/components/dialogs/Signin.tsx:46 msgid "Sign into Bluesky or create a new account" -msgstr "" +msgstr "Inicia sesión a Bluesky o crea una nueva cuenta" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "Cerrar sesión" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 msgid "Sign up" -msgstr "Inscribirse" +msgstr "Crear cuenta" #: src/view/shell/NavSignupCard.tsx:47 msgid "Sign up or sign in to join the conversation" -msgstr "Regístrate o inicia sesión para unirte a la conversación" +msgstr "Inicia sesión o crea una cuenta para unirte a la conversación" #: src/components/moderation/ScreenHider.tsx:97 #: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "Se requiere iniciar sesión" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" -msgstr "Se inició sesión como" +msgstr "Sesión iniciada como" #: src/lib/hooks/useAccountSwitcher.ts:44 #: src/screens/Login/ChooseAccountForm.tsx:60 msgid "Signed in as @{0}" +msgstr "Sesión iniciada como @{0}" + +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" msgstr "" -#: src/view/com/modals/SwitchAccount.tsx:70 -#~ msgid "Signs {0} out of Bluesky" -#~ msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" -msgstr "Saltarse este paso" +msgstr "Saltar" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" -msgstr "" +msgstr "Saltar" -#: src/view/com/auth/create/Step2.tsx:82 -#~ msgid "SMS verification" -#~ msgstr "" - -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" +msgstr "Programación" + +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" msgstr "" -#: src/screens/Messages/Conversation/index.tsx:89 -msgid "Something went wrong" +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" msgstr "" -#: src/view/com/modals/ProfilePreview.tsx:62 -#~ msgid "Something went wrong and we're not sure what." +#: src/screens/StarterPack/Wizard/index.tsx:203 +#~ msgid "Some subtitle" #~ msgstr "" +#: src/screens/Messages/Conversation/index.tsx:106 +msgid "Something went wrong" +msgstr "Ocurrió un error" + +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." +msgstr "Ocurrió un error. Intenta de nuevo." + +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" msgstr "" -#: src/components/Lists.tsx:203 -#~ msgid "Something went wrong!" -#~ msgstr "" - -#: src/view/com/modals/Waitlist.tsx:51 -#~ msgid "Something went wrong. Check your email and try again." -#~ msgstr "" - -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." -msgstr "" +msgstr "Lo sentimos, tu sesión ha expirado. Inicia sesión de nuevo." -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" -msgstr "Clasificar respuestas" +msgstr "Ordenar respuestas" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" -msgstr "Ordenar las respuestas a un mismo mensaje por:" +msgstr "Ordenar respuestas al mismo post por:" #: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" +#~ msgid "Source:" +#~ msgstr "Fuente:" + +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" msgstr "" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" -msgstr "" +msgstr "Spam" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" -msgstr "" +msgstr "Spam; menciones o respuestas excesivas" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" -msgstr "" +msgstr "Deportes" #: src/view/com/modals/crop-image/CropImage.web.tsx:145 msgid "Square" msgstr "Cuadrado" -#: src/view/com/modals/ServerInput.tsx:62 -#~ msgid "Staging" -#~ msgstr "Puesta en escena" - -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" msgstr "" -#: src/view/screens/Settings/index.tsx:862 -#~ msgid "Status page" -#~ msgstr "Página de estado" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "" -#: src/view/screens/Settings/index.tsx:896 +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "" + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." +msgstr "" + +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" msgstr "" #: src/screens/Signup/index.tsx:145 #~ msgid "Step" -#~ msgstr "" +#~ msgstr "Paso" -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" -msgstr "" +msgstr "Paso {0} de {1}" -#: src/view/com/auth/create/StepHeader.tsx:22 -#~ msgid "Step {0} of {numSteps}" -#~ msgstr "" - -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "" -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "Libro de cuentos" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "Enviar" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "Suscribirse" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "" +#~ msgid "Subscribe to the {0} feed" +#~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "Suscribirse a esta lista" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "Usuarios sugeridos a seguir" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "" +#: src/view/screens/Search/Search.tsx:425 +#~ msgid "Suggested Follows" +#~ msgstr "Usuarios sugeridos a seguir" + +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "" @@ -5550,34 +6084,34 @@ msgstr "" msgid "Suggestive" msgstr "" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" msgstr "Soporte" -#: src/view/com/modals/ProfilePreview.tsx:110 -#~ msgid "Swipe up to see more" -#~ msgstr "" - #: src/components/dialogs/SwitchAccount.tsx:47 #: src/components/dialogs/SwitchAccount.tsx:50 msgid "Switch Account" msgstr "Cambiar a otra cuenta" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "Bitácora del sistema" @@ -5589,37 +6123,55 @@ msgstr "" msgid "Tag menu: {displayTag}" msgstr "" -#: src/components/TagMenu/index.tsx:74 -#~ msgid "Tag menu: {tag}" -#~ msgstr "" - #: src/view/com/modals/crop-image/CropImage.web.tsx:135 msgid "Tall" msgstr "Alto" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "" -#: src/screens/Onboarding/index.tsx:51 -msgid "Tech" +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 +msgid "Tech" +msgstr "Tecnología" + +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "Condiciones" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Condiciones de servicio" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "" @@ -5627,12 +6179,13 @@ msgstr "" msgid "text" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Campo de introducción de texto" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "" @@ -5640,14 +6193,23 @@ msgstr "" msgid "That contains the following:" msgstr "" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." +msgstr "Este nombre de usuario ya está en uso." + +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." -msgstr "La cuenta podrá interactuar contigo tras el desbloqueo." +msgstr "La cuenta podrá interactuar contigo tras desbloquearla." #: src/components/moderation/ModerationDetailsDialog.tsx:127 #~ msgid "the author" @@ -5661,15 +6223,24 @@ msgstr "Las Directrices Comunitarias se ha trasladado a <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "La Política de derechos de autor se han trasladado a <0/>" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "" @@ -5677,15 +6248,19 @@ msgstr "" msgid "The following steps will help customize your Bluesky experience." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." -msgstr "Es posible que se haya borrado la publicación." +msgstr "Es posible que se haya borrado el post." #: src/view/screens/PrivacyPolicy.tsx:33 msgid "The Privacy Policy has been moved to <0/>" msgstr "La Política de privacidad se ha trasladado a <0/>" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "" + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "Se ha movido el formulario de soporte. Si necesitas ayuda, por favor <0/> o visita {HELP_DESK_URL} para ponerte en contacto con nosotros." @@ -5695,51 +6270,56 @@ msgid "The Terms of Service have been moved to" msgstr "Las condiciones de servicio se han trasladado a" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" +#~ msgid "There are many feeds to try:" +#~ msgstr "Hay muchos más feeds que probar:" + +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "" #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "" -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." msgstr "" #: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" +#~ msgid "There was an issue connecting to the chat." +#~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "" -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "" @@ -5747,61 +6327,59 @@ msgstr "" msgid "There was an issue fetching the list. Tap here to try again." msgstr "" -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "" -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "" +#~ msgid "There was an issue syncing your preferences with the server" +#~ msgstr "" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" -msgstr "" +msgstr "Ocurrió un problema {0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "" -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "Se ha producido un problema inesperado en la aplicación. Por favor, ¡avísanos si te ha ocurrido esto!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "" -#: src/view/com/auth/create/Step2.tsx:55 -#~ msgid "There's something wrong with this number. Please choose your country and enter your full phone number!" -#~ msgstr "" - #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "" +#~ msgid "These are popular accounts you might like:" +#~ msgstr "" #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" @@ -5811,14 +6389,26 @@ msgstr "Esta {screenDescription} ha sido marcada:" msgid "This account has requested that users sign in to view their profile." msgstr "Esta cuenta ha solicitado que los usuarios inicien sesión para ver su perfil." -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:26 +#~ msgid "This chat was disconnected due to a network error." +#~ msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." msgstr "" @@ -5832,43 +6422,49 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." -msgstr "Este contenido no se puede ver sin una cuenta Bluesky." +msgstr "Este contenido no se puede visto sin una cuenta de Bluesky." -#: src/view/screens/Settings/ExportCarDialog.tsx:75 -#~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." -#~ msgstr "" +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." -msgstr "Este canal de noticias está recibiendo mucho tráfico y no está disponible temporalmente. Vuelve a intentarlo más tarde." +msgstr "Este feed está recibiendo mucho tráfico y no está disponible temporalmente. Intenta de nuevo luego." #: src/screens/Profile/Sections/Feed.tsx:59 #: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "" +#: src/view/screens/ProfileList.tsx:729 +#~ msgid "This feed is empty!" +#~ msgstr "" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "" -#: src/view/com/posts/FeedShutdownMsg.tsx:97 +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:99 msgid "This feed is no longer online. We are showing <0>Discover instead." msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." -msgstr "Esta información no se comparte con otros usuarios." +msgstr "Esta información no es compartida con otros usuarios." #: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." @@ -5887,10 +6483,14 @@ msgid "This label was applied by the author." msgstr "" #: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" +#~ msgid "This label was applied by you" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "" @@ -5898,7 +6498,7 @@ msgstr "" msgid "This link is taking you to the following website:" msgstr "Este enlace te lleva al siguiente sitio web:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "" @@ -5906,24 +6506,24 @@ msgstr "" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." -msgstr "Esta publicación ha sido eliminada." +msgstr "Esta post ha sido eliminado." -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "" @@ -5933,14 +6533,18 @@ msgstr "" #: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" -msgstr "" +msgstr "Esto deberia de crear un registro de dominio a:" #: src/view/com/profile/ProfileFollowers.tsx:87 msgid "This user doesn't have any followers." msgstr "" +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "" @@ -5948,14 +6552,6 @@ msgstr "" msgid "This user has requested that their content only be shown to signed-in users." msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:42 -#~ msgid "This user is included in the <0/> list which you have blocked." -#~ msgstr "" - -#: src/view/com/modals/ModerationDetails.tsx:74 -#~ msgid "This user is included in the <0/> list which you have muted." -#~ msgstr "" - #: src/components/moderation/ModerationDetailsDialog.tsx:55 msgid "This user is included in the <0>{0} list which you have blocked." msgstr "" @@ -5964,9 +6560,9 @@ msgstr "" msgid "This user is included in the <0>{0} list which you have muted." msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:74 -#~ msgid "This user is included the <0/> list which you have muted." -#~ msgstr "" +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "" #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." @@ -5980,24 +6576,24 @@ msgstr "" msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:282 -#~ msgid "This will hide this post from your feeds." -#~ msgstr "Esto ocultará esta entrada de tus contenidos." - -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" -msgstr "" +msgstr "Preferencias de hilos" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "Preferencias de hilos" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "Modo con hilos" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "" @@ -6005,7 +6601,7 @@ msgstr "" msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "" -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." msgstr "" @@ -6017,196 +6613,206 @@ msgstr "" msgid "Toggle between muted word options." msgstr "" -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "Conmutar el menú desplegable" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" -msgstr "" +msgstr "Top" #: src/view/com/modals/EditImage.tsx:272 msgid "Transformations" msgstr "Transformaciones" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "Traducir" #: src/view/com/util/error/ErrorScreen.tsx:82 msgctxt "action" msgid "Try again" -msgstr "Intentar nuevamente" +msgstr "Intentar de nuevo" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" -msgstr "" +msgstr "Escribe tu mensaje aquí" #: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" -msgstr "Desbloquear una lista" +msgstr "Desbloquear lista" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" -msgstr "Desactivar la opción de silenciar la lista" +msgstr "Demutear lista" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." -msgstr "No se puede contactar con tu servicio. Comprueba tu conexión a Internet." +msgstr "No se puede contactar con tu proveedor. Comprueba tu conexión a Internet." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "Desbloquear" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" +msgstr "Desbloquear" + +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" -msgstr "Desbloquear una cuenta" +msgstr "Desbloquear Cuenta" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" -msgstr "" +msgstr "¿Desbloquear Cuenta?" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" -msgstr "Deshacer esta publicación" +msgstr "Deshacer repost" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" -msgstr "" +msgstr "Dejar de seguir" #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Unfollow" -msgstr "" +msgstr "Dejar de seguir" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" -msgstr "" +msgstr "Dejar de seguir a {0}" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" -msgstr "" - -#: src/view/com/auth/create/state.ts:262 -#~ msgid "Unfortunately, you do not meet the requirements to create an account." -#~ msgstr "Lamentablemente, no cumples los requisitos para crear una cuenta." +msgstr "Dejar de seguir a esta cuenta" #: src/view/com/util/post-ctrls/PostCtrls.tsx:197 #~ msgid "Unlike" #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" -msgstr "" +msgstr "Demutear" #: src/components/TagMenu/index.web.tsx:104 msgid "Unmute {truncatedTag}" -msgstr "" +msgstr "Demutear {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" -msgstr "Desactivar la opción de silenciar la cuenta" +msgstr "Demutear Cuenta" #: src/components/TagMenu/index.tsx:208 msgid "Unmute all {displayTag} posts" msgstr "" -#: src/components/TagMenu/index.tsx:210 -#~ msgid "Unmute all {tag} posts" -#~ msgstr "" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" +msgstr "" #: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" -msgstr "" +#~ msgid "Unmute notifications" +#~ msgstr "Demutear notificaciones" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" -msgstr "Desactivar la opción de silenciar el hilo" +msgstr "Demutear hilo" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" -msgstr "" +msgstr "Desfijar" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" -msgstr "Desanclar la lista de moderación" +msgstr "Desfijar lista de moderación" -#: src/view/screens/ProfileFeed.tsx:346 -#~ msgid "Unsave" -#~ msgstr "" +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "" #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" +#~ msgid "Unwanted sexual content" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 +#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:85 msgid "Unwanted Sexual Content" -msgstr "" +msgstr "Contenido sexual no deseado" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "Actualizar {displayName} en Listas" -#: src/lib/hooks/useOTAUpdate.ts:15 -#~ msgid "Update Available" -#~ msgstr "Actualización disponible" - #: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "" @@ -6215,7 +6821,7 @@ msgstr "" msgid "Updating..." msgstr "Actualizando..." -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" msgstr "" @@ -6223,20 +6829,20 @@ msgstr "" msgid "Upload a text file to:" msgstr "Carga un archivo de texto en:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -6246,17 +6852,17 @@ msgstr "" msgid "Use a file on your server" msgstr "" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." -msgstr "Utiliza las contraseñas de la app para iniciar sesión en otros clientes Bluesky sin dar acceso completo a tu cuenta o contraseña." +msgstr "Utiliza las contraseñas de app para iniciar sesión en otros clientes de Bluesky sin dar acceso completo a tu cuenta o contraseña." #: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" -msgstr "" +msgstr "Usar bsky.social como proveedor" #: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" -msgstr "Utiliza un proveedor predeterminado" +msgstr "Utilizar el proveedor predeterminado" #: src/view/com/modals/InAppBrowserConsent.tsx:56 #: src/view/com/modals/InAppBrowserConsent.tsx:58 @@ -6276,32 +6882,32 @@ msgstr "" msgid "Use the DNS panel" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." -msgstr "Utilízalo para iniciar sesión en la otra aplicación junto con tu identificador." - -#: src/view/com/modals/ServerInput.tsx:105 -#~ msgid "Use your domain as your Bluesky client service provider" -#~ msgstr "" +msgstr "Utilízalo para iniciar sesión en la otra app junto a tu nombre de usuario." #: src/view/com/modals/InviteCodes.tsx:201 msgid "Used by:" msgstr "Usado por:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr "" +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "" @@ -6309,52 +6915,55 @@ msgstr "" msgid "User Blocks You" msgstr "" -#: src/view/com/auth/create/Step2.tsx:79 -#~ msgid "User handle" -#~ msgstr "Identificador del usuario" - -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "Listas de usuarios" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "Nombre de usuario o dirección de correo electrónico" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "Usuarios" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "usuarios seguidos por <0/>" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" -msgstr "Usuarios en «{0}»" +msgstr "Usuarios en \"{0}\"" #: src/components/LikesDialog.tsx:85 msgid "Users that have liked this content or profile" @@ -6364,10 +6973,6 @@ msgstr "" msgid "Value:" msgstr "" -#: src/view/com/auth/create/Step2.tsx:243 -#~ msgid "Verification code" -#~ msgstr "" - #: src/view/com/modals/ChangeHandle.tsx:510 #~ msgid "Verify {0}" #~ msgstr "" @@ -6376,15 +6981,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "Verificar el correo electrónico" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "Verificar mi correo electrónico" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "Verificar mi correo electrónico" @@ -6401,35 +7006,44 @@ msgstr "" msgid "Verify Your Email" msgstr "" -#: src/view/screens/Settings/index.tsx:852 -#~ msgid "Version {0}" -#~ msgstr "" - -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" +msgstr "Videojuegos" + +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" msgstr "" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "Ver entrada de depuración" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" -msgstr "" +msgstr "Ver más detalles sobre cómo reportar una violación de Derechos de Autor" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "" @@ -6437,13 +7051,15 @@ msgstr "" msgid "View information about these labels" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "Ver el avatar" @@ -6451,10 +7067,15 @@ msgstr "Ver el avatar" msgid "View the labeling service provided by @{0}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -6463,9 +7084,8 @@ msgstr "Visitar el sitio" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" -msgstr "" +msgstr "Advertir" #: src/lib/moderation/useLabelBehaviorDescription.ts:48 msgid "Warn content" @@ -6475,71 +7095,63 @@ msgstr "" msgid "Warn content and filter from feeds" msgstr "" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 -#~ msgid "We also think you'll like \"For You\" by Skygaze:" -#~ msgstr "" - #: src/screens/Hashtag.tsx:210 msgid "We couldn't find any results for that hashtag." msgstr "" -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" msgstr "" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" -msgstr "" +msgstr "Esperemos que la pases bien. Recuerda, Bluesky es:" #: src/view/com/posts/DiscoverFallbackHeader.tsx:29 msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:118 -#~ msgid "We recommend \"For You\" by Skygaze:" -#~ msgstr "" - #: src/components/dialogs/MutedWords.tsx:203 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "" +#~ msgid "We recommend our \"Discover\" feed:" +#~ msgstr "Recomendamos nuesto feed \"Discover\":" #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "" -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "" -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "" -#: src/view/com/modals/AppealLabel.tsx:48 -#~ msgid "We'll look into your appeal promptly." -#~ msgstr "" - -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "" -#: src/screens/Signup/index.tsx:142 -msgid "We're so excited to have you join us!" -msgstr "¡Nos hace mucha ilusión que te unas a nosotros!" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "" -#: src/view/screens/ProfileList.tsx:90 +#: src/screens/Signup/index.tsx:89 +msgid "We're so excited to have you join us!" +msgstr "¡Es nuestro placer tenerte aquí!" + +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "" @@ -6547,141 +7159,192 @@ msgstr "" msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." -msgstr "Lo sentimos, pero no se ha podido completar tu búsqueda. Vuelve a intentarlo dentro de unos minutos." +msgstr "Lo sentimos, pero no se ha podido completar tu búsqueda. Intenta de nuevo en unos minutos." -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "" + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Lo sentimos. No encontramos la página que buscabas." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 +#~ msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#~ msgstr "Lo sentimos. Solo puedes suscribirte a hasta 10 etiquetadores, y has alcanzado el límite." + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." msgstr "" -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 -#~ msgid "Welcome to <0>Bluesky" -#~ msgstr "Bienvenido a <0>Bluesky" +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" +msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" -msgstr "" +msgstr "¿Cuáles son tus intereses?" -#: src/view/com/modals/report/Modal.tsx:169 -#~ msgid "What is the issue with this {collectionName}?" -#~ msgstr "¿Cuál es el problema con esta {collectionName}?" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "" #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "¿Qué hay de nuevo?" #: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:78 msgid "Which languages are used in this post?" -msgstr "¿Qué idiomas se utilizan en esta publicación?" +msgstr "¿En qué idioma está este post?" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:77 msgid "Which languages would you like to see in your algorithmic feeds?" -msgstr "¿Qué idiomas te gustaría ver en tus noticias algorítmicas?" +msgstr "¿Qué idiomas te gustaría ver en tus feeds?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "Quién puede responder" -#: src/screens/Home/NoFeedsPinned.tsx:92 +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "" + +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" -msgstr "" +msgstr "Whoops!" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" -msgstr "" +msgstr "¿Por qué crees que este contenido debe ser revisado?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" -msgstr "" +msgstr "¿Por qué crees que este feed debe ser revisado?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" -msgstr "" +msgstr "¿Por qué crees que esta lista debe ser revisada?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" -msgstr "" +msgstr "¿Por qué crees que este mensaje debe ser revisado?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" +msgstr "¿Por qué crees que este post debe ser revisado?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" -msgstr "" +msgstr "¿Por qué crees que este usuario debe ser revisado?" #: src/view/com/modals/crop-image/CropImage.web.tsx:125 msgid "Wide" msgstr "Ancho" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" -msgstr "" +msgstr "Escribe un mensaje" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" -msgstr "Redactar una publicación" +msgstr "Redacta un post" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" -msgstr "Redactar tu respuesta" +msgstr "Redacta una respuesta" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:263 -#~ msgid "XXXXXX" -#~ msgstr "" +msgstr "Escritores" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "Sí" -#: src/components/dms/MessageItem.tsx:158 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "" + +#: src/components/dms/MessageItem.tsx:182 msgid "Yesterday, {time}" msgstr "" -#: src/screens/Onboarding/StepModeration/index.tsx:46 -#~ msgid "You are in control" -#~ msgstr "" - -#: src/screens/Deactivated.tsx:136 -msgid "You are in line." +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" msgstr "" +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "" + +#: src/screens/SignupQueued.tsx:136 +msgid "You are in line." +msgstr "Estás en cola." + #: src/view/com/profile/ProfileFollows.tsx:86 msgid "You are not following anyone." -msgstr "" +msgstr "No estás siguiendo a nadie." -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:123 -#~ msgid "You can also try our \"Discover\" algorithm:" -#~ msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." +#~ msgid "You can change these settings later." +#~ msgstr "Puedes cambiar estos ajustes luego." + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "" + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." msgstr "" #: src/screens/Login/index.tsx:158 @@ -6689,252 +7352,320 @@ msgstr "" msgid "You can now sign in with your new password." msgstr "Ahora puedes iniciar sesión con tu nueva contraseña." +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." +msgstr "No tienes ningún seguidor." + +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." msgstr "" #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." -msgstr "¡Aún no tienes códigos de invitación! Te enviaremos algunos cuando lleves un poco más de tiempo en Bluesky." +msgstr "¡Aún no tienes ningún código de invitación! Te enviaremos algunos cuando lleves un poco más de tiempo en Bluesky." -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." -msgstr "No tienes ninguna noticia anclada." +msgstr "No tienes ninguna feed fijado." #: src/view/screens/Feeds.tsx:477 #~ msgid "You don't have any saved feeds!" -#~ msgstr "¡No tienes ninguna noticia guardada!" +#~ msgstr "No tienes ninguna feed guardado" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." -msgstr "No tienes ninguna noticia guardada." +msgstr "No tienes ningún feed guardado" -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Has bloqueado al autor o has sido bloqueado por el autor." -#: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 -msgid "You have blocked this user. You cannot view their content." +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" msgstr "" +#: src/components/moderation/ModerationDetailsDialog.tsx:66 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 +msgid "You have blocked this user. You cannot view their content." +msgstr "Has bloqueado a este usuario. No puedes ver su contenido." + #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." -msgstr "" +msgstr "Has ingresado un código inválido. Debe lucir algo así XXXXX-XXXXX." -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" -msgstr "" +msgstr "Has ocultado este post" #: src/components/moderation/ModerationDetailsDialog.tsx:101 msgid "You have hidden this post." -msgstr "" +msgstr "Has ocultado este post." #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." -msgstr "" +msgstr "Has muteado a esta cuenta." -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" +msgstr "Has muteado a esta cuenta" + +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" msgstr "" -#: src/view/com/modals/ModerationDetails.tsx:87 -#~ msgid "You have muted this user." -#~ msgstr "" - -#: src/view/com/feeds/ProfileFeedgens.tsx:144 +#: src/view/com/feeds/ProfileFeedgens.tsx:137 msgid "You have no feeds." -msgstr "No tienes noticias." +msgstr "No tienes feeds." -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." msgstr "No tienes listas." #: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "" +#~ msgid "You have no messages yet. Start a conversation with someone!" +#~ msgstr "Aún no tienes ningún mensaje. ¡Comienza una conversación con alguien!" #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "" -#: src/view/screens/ModerationBlockedAccounts.tsx:132 -#~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." -#~ msgstr "Aún no has bloqueado ninguna cuenta. Para bloquear una cuenta, ve a su perfil y selecciona \"Bloquear cuenta\" en el menú de su cuenta." - -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." -msgstr "Aún no has creado ninguna contraseña de aplicación. Puedes crear una pulsando el botón de abajo." +msgstr "Aún no has creado una contraseña de app. Puedes crear una al presionar el botón abajo." #: src/view/screens/ModerationMutedAccounts.tsx:133 msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "" -#: src/view/screens/ModerationMutedAccounts.tsx:131 -#~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." -#~ msgstr "Aún no has silenciado ninguna cuenta. Para silenciar una cuenta, ve a su perfil y selecciona \"Silenciar cuenta\" en el menú de su cuenta." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "" #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "" + #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." -msgstr "" - -#: src/view/com/modals/ContentFilteringSettings.tsx:175 -#~ msgid "You must be 18 or older to enable adult content." -#~ msgstr "" +msgstr "Tienes que tener 13 años o más para poder crear una cuenta." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" +#~ msgid "You must be 18 years or older to enable adult content" +#~ msgstr "Tienes que tener 18 años o más para poder activar el contenido adulto" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "" + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "" #: src/screens/Login/SetNewPasswordForm.tsx:104 msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." -msgstr "Recibirás un correo electrónico con un \"código de restablecimiento\". Introduce ese código aquí y, a continuación, introduce tu nueva contraseña." +msgstr "Enviamos un código de reseteo a tu correo. Introduce ese código aquí y luego introduce tu nueva contraseña." -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" +msgstr "Tu: {0}" + +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "" + +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "" +#~ msgid "You're in control" +#~ msgstr "Tu tienes el control" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" +msgstr "Ya estás en cola" + +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" -msgstr "" +msgstr "¡Eso es todo!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "" -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." -msgstr "" +msgstr "¡Haz llegado al fin de tu feed! Encuentra más cuentas para seguir." -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "Tu cuenta" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" -msgstr "" +msgstr "Tu cuenta ha sido eliminada" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "Tu fecha de nacimiento" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." -msgstr "" +msgstr "Tu elección será guardada. Puedes cambiar esto en los ajustes luego." #: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "" +#~ msgid "Your default feed is \"Following\"" +#~ msgstr "Tu feed principal es \"Siguiendo\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "Tu correo electrónico parece no ser válido." -#: src/view/com/modals/Waitlist.tsx:109 -#~ msgid "Your email has been saved! We'll be in touch soon." -#~ msgstr "¡Hemos guardado tu correo electrónico! Pronto nos pondremos en contacto contigo." - #: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." -msgstr "Tu correo electrónico ha sido actualizado pero no verificado. Como siguiente paso, verifica tu nuevo correo electrónico." +msgstr "Tu correo electrónico ha sido actualizado pero no verificado. Verifica tu nuevo correo electrónico." #: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." -msgstr "Tu correo electrónico aún no ha sido verificado. Este es un paso de seguridad importante que te recomendamos." +msgstr "Tu correo electrónico aún no ha sido verificado. Por tu seguridad, recomendamos que lo verifiques." -#: src/view/com/posts/FollowingEmptyState.tsx:47 -msgid "Your following feed is empty! Follow more users to see what's happening." +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" msgstr "" -#: src/screens/Signup/StepHandle.tsx:73 +#: src/view/com/posts/FollowingEmptyState.tsx:43 +msgid "Your following feed is empty! Follow more users to see what's happening." +msgstr "¡Tu feed de Siguiendo esta vacío! Sigue a más usuarios para ver sus posts aquí." + +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" -msgstr "Tu identificador completo será" +msgstr "Tu nombre de usuario completo será" #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" -msgstr "" - -#: src/view/screens/Settings.tsx:430 -#: src/view/shell/desktop/RightNav.tsx:137 -#: src/view/shell/Drawer.tsx:660 -#~ msgid "Your invite codes are hidden when logged in using an App Password" -#~ msgstr "Tus códigos de invitación están ocultos cuando inicias sesión con una contraseña de la app" +msgstr "Tu nombre de usuario completo será <0>@{0}" #: src/components/dialogs/MutedWords.tsx:220 msgid "Your muted words" -msgstr "" +msgstr "Tus palabras muteadas" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" -msgstr "" +msgstr "Tu contraseña ha sido cambiada exitosamente." -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" -msgstr "" +msgstr "Post publicado" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." -msgstr "Tus publicaciones, Me gustas y bloqueos son públicos. Las cuentas silenciadas son privadas." +msgstr "Tus posts, a qué le das me gusta y a quién bloqueas son públicos. Nadie puede ver a quien muteas." -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "Tu perfil" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "" + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" -msgstr "" +msgstr "Respuesta publicada" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" -msgstr "" +msgstr "Tu reporte ha sido enviado al servicio de moderación de Bluesky" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" -msgstr "Tu identificador del usuario" +msgstr "Tu nombre de usuario" diff --git a/src/locale/locales/fi/messages.po b/src/locale/locales/fi/messages.po index b1b8e6f623..fab0d65553 100644 --- a/src/locale/locales/fi/messages.po +++ b/src/locale/locales/fi/messages.po @@ -13,45 +13,62 @@ msgstr "" "Language-Team: @pekka.bsky.social,@jaoler.fi,@rahi.bsky.social\n" "Plural-Forms: \n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(ei sähköpostiosoitetta)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:55 +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" msgstr "" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/KnownFollowers.tsx:179 +#~ msgid "{0, plural, one {and # other} other {and # others}}" +#~ msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -59,69 +76,151 @@ msgstr "" msgid "{0, plural, one {post} other {posts}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "" + #: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" +#~ msgid "{0} your feeds" +#~ msgstr "" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" msgstr "" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" msgstr "" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} seurattua" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:461 +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} lukematonta" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "<0/> jäsentä" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:485 +#~ msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:497 +#~ msgid "<0>{0}, <1>{1}, and {2} {3, plural, one {other} other {others}} are included in your starter pack" +#~ msgstr "" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "" + #: src/view/shell/Drawer.tsx:96 #~ msgid "<0>{0} following" #~ msgstr "<0>{0} seurattua" +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "" + #: src/components/ProfileHoverCard/index.web.tsx:437 #~ msgid "<0>{followers} <1>{pluralizedFollowers}" #~ msgstr "" @@ -147,34 +246,42 @@ msgstr "" #~ msgid "<0>Welcome to<1>Bluesky" #~ msgstr "<0>Tervetuloa<1>Blueskyhin" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "⚠Virheellinen käyttäjätunnus" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" msgstr "Kaksivaiheisen tunnistautumisen vahvistus" -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "" + +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "Siirry navigointilinkkeihin ja asetuksiin" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "Siirry profiiliin ja muihin navigointilinkkeihin" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "Saavutettavuus" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" msgstr "Esteettömyysasetukset\"" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" msgstr "Esteettömyysasetukset\"" @@ -182,26 +289,26 @@ msgstr "Esteettömyysasetukset\"" #~ msgid "account" #~ msgstr "käyttäjätili" -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "Käyttäjätili" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "Käyttäjätili estetty" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "Käyttäjätili seurannassa" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "Käyttäjätili hiljennetty" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "Käyttäjätili hiljennetty" @@ -217,37 +324,46 @@ msgstr "Käyttäjätilin asetukset" msgid "Account removed from quick access" msgstr "Käyttäjätili poistettu pikalinkeistä" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "Käyttäjätilin esto poistettu" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "Käyttäjätilin seuranta lopetettu" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "Käyttäjätilin hiljennys poistettu" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "Lisää" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Lisää sisältövaroitus" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "Lisää käyttäjä tähän listaan" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "Lisää käyttäjätili" @@ -256,7 +372,7 @@ msgstr "Lisää käyttäjätili" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Lisää ALT-teksti" @@ -264,9 +380,9 @@ msgstr "Lisää ALT-teksti" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Lisää sovelluksen salasana" @@ -278,11 +394,19 @@ msgstr "Lisää hiljennetty sana määritettyihin asetuksiin" msgid "Add muted words and tags" msgstr "Lisää hiljennetyt sanat ja aihetunnisteet" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/StarterPack/Wizard/index.tsx:197 +#~ msgid "Add people to your starter pack that you think others will enjoy following" +#~ msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" msgstr "" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" msgstr "" @@ -290,12 +414,16 @@ msgstr "" msgid "Add the following DNS record to your domain:" msgstr "Lisää seuraava DNS-merkintä verkkotunnukseesi:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "Lisää listoihin" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" msgstr "Lisää syötteisiini" @@ -303,40 +431,66 @@ msgstr "Lisää syötteisiini" #~ msgid "Added" #~ msgstr "Lisätty" -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "Lisätty listaan" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" msgstr "Lisätty syötteisiini" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Säädä, kuinka monta tykkäystä vastauksen on saatava näkyäkseen syötteessäsi." #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Aikuissisältöä" +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "" + #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." msgstr "Aikuissisältö on estetty" -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "Edistyneemmät" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." msgstr "Kaikki tallentamasi syötteet yhdessä paikassa." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "Onko sinulla jo koodi?" @@ -346,17 +500,17 @@ msgstr "Kirjautuneena sisään nimellä @{0}" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" msgstr "ALT-teksti" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" msgstr "" @@ -373,84 +527,113 @@ msgstr "Sähköposti on lähetetty osoitteeseen {0}. Siinä on vahvistuskoodi, j msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Sähköposti on lähetetty aiempaan osoitteeseesi, {0}. Siinä on vahvistuskoodi, jonka voit syöttää alla." -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" msgstr "Tapahtui virhe" -#: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/components/StarterPack/ShareDialog.tsx:79 +#~ msgid "An error occurred while saving the image." +#~ msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:134 +#~ msgid "An error occurred while trying to delete the message. Please try again." +#~ msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "Ongelma, jota ei ole sisällytetty näihin vaihtoehtoihin" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Tapahtui virhe, yritä uudelleen." -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "ja" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "Eläimet" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" msgstr "Animoitu GIF" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "Epäsosiaalinen käytös" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "Sovelluksen kieli" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Sovelluksen salasana poistettu" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "Sovelluksen salasanan nimet voivat sisältää vain kirjaimia, numeroita, välilyöntejä, viivoja ja alaviivoja." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "Sovelluksen salasanojen nimien on oltava vähintään 4 merkkiä pitkiä." -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "Sovelluksen salasanan asetukset" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "Sovellussalasanat" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "Valita" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "Valita \"{0}\" -merkinnästä" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "" @@ -458,32 +641,59 @@ msgstr "" #~ msgid "Appeal submitted." #~ msgstr "Valitus jätetty." -#: src/view/screens/Settings/index.tsx:430 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "" + +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "Ulkonäkö" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +#~ msgid "Are you sure you want delete this starter pack?" +#~ msgstr "" + +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Haluatko varmasti poistaa sovellussalasanan \"{name}\"?" #: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgstr "" + +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" msgstr "" #: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgstr "" + +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Haluatko varmasti poistaa {0} syötteistäsi?" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "Haluatko varmasti hylätä tämän luonnoksen?" @@ -495,7 +705,8 @@ msgstr "Oletko varma?" msgid "Are you writing in <0>{0}?" msgstr "Onko viestisi kieli <0>{0}?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "Taide" @@ -503,32 +714,35 @@ msgstr "Taide" msgid "Artistic or non-erotic nudity." msgstr "Taiteellinen tai ei-eroottinen alastomuus." -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "Vähintään kolme merkkiä" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "Takaisin" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "Perustuen kiinnostukseesi {interestsText}" +#~ msgid "Based on your interest in {interestsText}" +#~ msgstr "Perustuen kiinnostukseesi {interestsText}" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "Perusasiat" @@ -536,56 +750,56 @@ msgstr "Perusasiat" msgid "Birthday" msgstr "Syntymäpäivä" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "Syntymäpäivä:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "Estä" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "Estä käyttäjä" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "Estä käyttäjätili?" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "Estä käyttäjätilit" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "Estä lista" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "Estetäänkö nämä käyttäjät?" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "Estetty" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "Estetyt käyttäjät" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "Estetyt käyttäjät" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Estetyt käyttäjät eivät voi vastata viesteihisi, mainita sinua tai muuten olla vuorovaikutuksessa kanssasi." @@ -593,19 +807,19 @@ msgstr "Estetyt käyttäjät eivät voi vastata viesteihisi, mainita sinua tai m msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Estetyt käyttäjät eivät voi vastata viesteihisi, mainita sinua tai muuten olla vuorovaikutuksessa kanssasi. Et näe heidän sisältöään ja he eivät näe sinun sisältöäsi." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "Estetty viesti." -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Estäminen ei estä tätä merkitsijää asettamasta merkintöjä tilillesi." -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Estäminen on julkista. Estetyt käyttäjät eivät voi vastata viesteihisi, mainita sinua tai muuten olla vuorovaikutuksessa kanssasi." -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." msgstr "Estäminen ei estä merkintöjen tekemistä tilillesi, mutta se estää kyseistä tiliä vastaamasta ketjuissasi tai muuten vuorovaikuttamasta kanssasi." @@ -622,6 +836,10 @@ msgstr "Bluesky" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "Bluesky on avoin verkko, jossa voit valita palveluntarjoajasi. Räätälöity palveluntarjoajan määritys on nyt saatavilla betavaiheen kehittäjille." +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "" + #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 #~ msgid "Bluesky is flexible." @@ -637,7 +855,11 @@ msgstr "Bluesky on avoin verkko, jossa voit valita palveluntarjoajasi. Räätäl #~ msgid "Bluesky is public." #~ msgstr "Bluesky on julkinen." -#: src/screens/Moderation/index.tsx:533 +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "" + +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky ei näytä profiiliasi ja viestejäsi kirjautumattomille käyttäjille. Toiset sovellukset eivät ehkä noudata tätä asetusta. Tämä ei tee käyttäjätilistäsi yksityistä." @@ -649,12 +871,31 @@ msgstr "Sumenna kuvat" msgid "Blur images and filter from feeds" msgstr "Sumenna kuvat ja suodata syötteistä" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "Kirjat" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 msgid "Browse other feeds" msgstr "" @@ -662,7 +903,7 @@ msgstr "" msgid "Business" msgstr "Yritys" -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "käyttäjä —" @@ -675,10 +916,10 @@ msgid "By {0}" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" +#~ msgid "by @{0}" +#~ msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "käyttäjältä <0/>" @@ -686,7 +927,7 @@ msgstr "käyttäjältä <0/>" msgid "By creating an account you agree to the {els}." msgstr "Luomalla käyttäjätilin hyväksyt {els}." -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "sinulta" @@ -694,7 +935,7 @@ msgstr "sinulta" msgid "Camera" msgstr "Kamera" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Voi sisältää vain kirjaimia, numeroita, välilyöntejä, viivoja ja alaviivoja. Täytyy olla vähintään 4 merkkiä pitkä, mutta enintään 32 merkkiä pitkä." @@ -702,14 +943,15 @@ msgstr "Voi sisältää vain kirjaimia, numeroita, välilyöntejä, viivoja ja a #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -717,23 +959,23 @@ msgstr "Voi sisältää vain kirjaimia, numeroita, välilyöntejä, viivoja ja a #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "Peruuta" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "Peruuta" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "Peruuta käyttäjätilin poisto" @@ -749,12 +991,16 @@ msgstr "Peruuta kuvan rajaus" msgid "Cancel profile editing" msgstr "Peruuta profiilin muokkaus" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "Peruuta uudelleenpostaus" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "Peruuta haku" @@ -766,17 +1012,17 @@ msgstr "Peruuttaa linkitetyn verkkosivuston avaamisen" msgid "Change" msgstr "Vaihda" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "Vaihda" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "Vaihda käyttäjätunnus" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "Vaihda käyttäjätunnus" @@ -784,12 +1030,12 @@ msgstr "Vaihda käyttäjätunnus" msgid "Change my email" msgstr "Vaihda sähköpostiosoitteeni" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "Vaihda salasana" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "Vaihda salasana" @@ -801,20 +1047,30 @@ msgstr "Vaihda julkaisun kieleksi {0}" msgid "Change Your Email" msgstr "Vaihda sähköpostiosoitteesi" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" msgstr "" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" msgstr "" @@ -822,8 +1078,8 @@ msgstr "" #~ msgid "Chat with {chatId}" #~ msgstr "" -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "Tarkista tilani" @@ -835,23 +1091,43 @@ msgstr "Tarkista tilani" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Tutustu suositeltuihin käyttäjiin. Seuraa heitä löytääksesi samankaltaisia käyttäjiä." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." msgstr "Tarkista sähköpostistasi kirjautumiskoodi ja syötä se tähän." -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Tarkista sähköpostisi ja syötä saamasi vahvistuskoodi alle:" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "Valitse \"Kaikki\" tai \"Ei kukaan\"" +#: src/view/com/modals/Threadgate.tsx:75 +#~ msgid "Choose \"Everybody\" or \"Nobody\"" +#~ msgstr "Valitse \"Kaikki\" tai \"Ei kukaan\"" + +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "Valitse palvelu" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." msgstr "Valitse algoritmit, jotka ohjaavat mukautettuja syötteitäsi." @@ -864,40 +1140,45 @@ msgstr "Valitse algoritmit, jotka ohjaavat mukautettuja syötteitäsi." msgid "Choose this color as your avatar" msgstr "" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "Valitse pääsyötteet" +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" +msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 +#~ msgid "Choose your main feeds" +#~ msgstr "Valitse pääsyötteet" + +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "Valitse salasanasi" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "Tyhjennä kaikki vanhan tietomallin mukaiset tiedot" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "Tyhjennä kaikki vanhan tietomallin tiedot (käynnistä uudelleen tämän jälkeen)" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "Tyhjennä kaikki tallennukset" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "Tyhjennä kaikki tallennukset (käynnistä uudelleen tämän jälkeen)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "Tyhjennä hakukysely" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "Tyhjentää kaikki tallennustiedot" @@ -905,27 +1186,49 @@ msgstr "Tyhjentää kaikki tallennustiedot" msgid "click here" msgstr "klikkaa tästä" -#: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +#~ msgid "Click here to add one." +#~ msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Avaa tästä valikko aihetunnisteelle {tag}" -#: src/screens/Onboarding/index.tsx:47 +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "" + +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "Ilmasto" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "Sulje" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "Sulje aktiivinen ikkuna" @@ -937,11 +1240,12 @@ msgstr "Sulje hälytys" msgid "Close bottom drawer" msgstr "Sulje alavalinnat" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" msgstr "Sulje valintaikkuna." -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" msgstr "Sulje GIF-valintaikkuna." @@ -953,6 +1257,10 @@ msgstr "Sulje kuva" msgid "Close image viewer" msgstr "Sulje kuvankatselu" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "Sulje alanavigointi" @@ -970,7 +1278,7 @@ msgstr "Sulkee alanavigaation" msgid "Closes password update alert" msgstr "Sulkee salasanan päivitysilmoituksen" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "Sulkee editorin ja hylkää luonnoksen" @@ -978,42 +1286,48 @@ msgstr "Sulkee editorin ja hylkää luonnoksen" msgid "Closes viewer for header image" msgstr "Sulkee kuvan katseluohjelman" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "Pienentää käyttäjäluettelon annetulle ilmoitukselle" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "Komedia" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "Sarjakuvat" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Yhteisöohjeet" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "Suorita käyttöönotto loppuun ja aloita käyttäjätilisi käyttö" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "Tee haaste loppuun" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Laadi viestejä, joiden pituus on enintään {MAX_GRAPHEME_LENGTH} merkkiä" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "Kirjoita vastaus" #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "Määritä sisällönsuodatusasetus aiheille: {0}" +#~ msgid "Configure content filtering setting for category: {0}" +#~ msgstr "Määritä sisällönsuodatusasetus aiheille: {0}" #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" @@ -1023,13 +1337,11 @@ msgstr "Määritä sisällönsuodatusasetukset kategorialle: {name}" msgid "Configured in <0>moderation settings." msgstr "" -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -1044,33 +1356,33 @@ msgstr "Vahvista muutos" msgid "Confirm content language settings" msgstr "Vahvista sisällön kieliasetukset" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "Vahvista käyttäjätilin poisto" -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "Vahvista ikäsi:" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "Vahvista syntymäaikasi" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Vahvistuskoodi" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "Yhdistetään..." -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "Ota yhteyttä tukeen" @@ -1082,28 +1394,28 @@ msgstr "Ota yhteyttä tukeen" msgid "Content Blocked" msgstr "Sisältö estetty" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "Sisältösuodattimet" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "Sisältöjen kielet" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "Sisältö ei ole saatavilla" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "Sisältövaroitus" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "Sisältövaroitukset" @@ -1111,12 +1423,8 @@ msgstr "Sisältövaroitukset" msgid "Context menu backdrop, click to close the menu." msgstr "" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "Jatka" @@ -1124,41 +1432,47 @@ msgstr "Jatka" msgid "Continue as {0} (currently signed in)" msgstr "Jatka käyttäjänä {0} (kirjautunut)" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "Jatka seuraavaan vaiheeseen" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "Jatka seuraavaan vaiheeseen" +#~ msgid "Continue to the next step" +#~ msgstr "Jatka seuraavaan vaiheeseen" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" -msgstr "Jatka seuraavaan vaiheeseen seuraamatta yhtään tiliä" +#~ msgid "Continue to the next step without following any accounts" +#~ msgstr "Jatka seuraavaan vaiheeseen seuraamatta yhtään tiliä" -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" +msgstr "" + +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "Ruoanlaitto" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Kopioitu" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "Ohjelmiston versio kopioitu leikepöydälle" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "Kopioitu leikepöydälle" @@ -1166,11 +1480,12 @@ msgstr "Kopioitu leikepöydälle" msgid "Copied!" msgstr "Kopioitu!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Kopioi sovellussalasanan" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Kopioi" @@ -1183,47 +1498,63 @@ msgstr "Kopioi {0}" msgid "Copy code" msgstr "Kopioi koodi" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "Kopioi listan linkki" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "Kopioi julkaisun linkki" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "Kopioi viestin teksti" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Tekijänoikeuskäytäntö" -#: src/components/dms/ConvoMenu.tsx:80 +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" +msgstr "" + +#: src/components/dms/LeaveConvoPrompt.tsx:39 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" msgstr "Syötettä ei voitu ladata" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "Listaa ei voitu ladata" #: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "" +#~ msgid "Could not load profiles. Please try again later." +#~ msgstr "" -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" msgstr "" @@ -1231,16 +1562,34 @@ msgstr "" #~ msgid "Could not unmute chat" #~ msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "" + #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "Luo uusi käyttäjätili" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "Luo uusi Bluesky-tili" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "Luo käyttäjätili" @@ -1249,11 +1598,15 @@ msgstr "Luo käyttäjätili" msgid "Create an account" msgstr "Luo käyttäjätili" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Luo sovellussalasana" @@ -1262,15 +1615,20 @@ msgstr "Luo sovellussalasana" msgid "Create new account" msgstr "Luo uusi käyttäjätili" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/StarterPack/ShareDialog.tsx:158 +#~ msgid "Create QR code" +#~ msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "Luo raportti: {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0} luotu" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "Kulttuuri" @@ -1283,8 +1641,8 @@ msgstr "Mukautettu" msgid "Custom domain" msgstr "Mukautettu verkkotunnus" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Yhteisön rakentamat mukautetut syötteet tuovat sinulle uusia kokemuksia ja auttavat löytämään mieluisaa sisältöä." @@ -1292,8 +1650,8 @@ msgstr "Yhteisön rakentamat mukautetut syötteet tuovat sinulle uusia kokemuksi msgid "Customize media from external sites." msgstr "Muokkaa ulkoisten sivustojen mediasisältöjen asetuksia" -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "Tumma" @@ -1301,15 +1659,24 @@ msgstr "Tumma" msgid "Dark mode" msgstr "Tumma ulkoasu" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "Tumma teema" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "Syntymäaika" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" msgstr "" @@ -1317,14 +1684,17 @@ msgstr "" msgid "Debug panel" msgstr "Vianetsintäpaneeli" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "Poista" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "Poista käyttäjätili" @@ -1332,65 +1702,83 @@ msgstr "Poista käyttäjätili" #~ msgid "Delete Account" #~ msgstr "Poista käyttäjätili" -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Poista sovellussalasana" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Poista sovellussalasana" -#: src/components/dms/MessageMenu.tsx:101 +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:124 msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:466 +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "Poista lista" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" msgstr "" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "Poista käyttäjätilini" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "Poista käyttäjätilini…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "Poista viesti" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "Poista tämä lista?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "Poista tämä viesti?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "Poistettu" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." msgstr "Poistettu viesti." -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1400,15 +1788,19 @@ msgstr "Kuvaus" msgid "Descriptive alt text" msgstr "" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "Haluatko sanoa jotain?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "Himmeä" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" msgstr "Älä käynnistä giffejä automaattisesti" @@ -1416,39 +1808,57 @@ msgstr "Älä käynnistä giffejä automaattisesti" msgid "Disable Email 2FA" msgstr "Poista sähköpostiin perustuva kaksivaiheinen tunnistautuminen käytöstä" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" msgstr "Poista haptiset palautteet käytöstä" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "Poistettu käytöstä" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "Hylkää" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "Hylkää luonnos?" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "Estä sovelluksia näyttämästä tiliäni kirjautumattomille käyttäjille" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" msgstr "Löydä uusia mukautettuja syötteitä" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "" + +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "Löydä uusia syötteitä" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "Näyttönimi" @@ -1465,7 +1875,7 @@ msgstr "DNS-paneeli" msgid "Does not include nudity." msgstr "Ei sisällä alastomuutta." -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "Ei ala eikä lopu väliviivaan" @@ -1479,30 +1889,27 @@ msgstr "Verkkotunnus vahvistettu!" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "Valmis" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "Valmis" @@ -1511,18 +1918,22 @@ msgstr "Valmis" msgid "Done{extraText}" msgstr "Valmis{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "Lataa CAR tiedosto" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "Raahaa tähän lisätäksesi kuvia" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "Applen sääntöjen vuoksi aikuisviihde voidaan ottaa käyttöön vasta rekisteröitymisen jälkeen." +#~ msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." +#~ msgstr "Applen sääntöjen vuoksi aikuisviihde voidaan ottaa käyttöön vasta rekisteröitymisen jälkeen." #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" @@ -1544,19 +1955,19 @@ msgstr "esim. Taiteilija, koiraharrastaja ja innokas lukija." msgid "E.g. artistic nudes." msgstr "Esimerkiksi taiteelliset alastonkuvat." -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "esim. Loistavat kirjoittajat" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "esim. Roskapostittajat" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "esim. Julkaisijat, jotka osuvat maaliin aina." -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "esim. Käyttäjät, jotka vastaavat toistuvasti mainoksilla." @@ -1564,32 +1975,45 @@ msgstr "esim. Käyttäjät, jotka vastaavat toistuvasti mainoksilla." msgid "Each code works once. You'll receive more invite codes periodically." msgstr "Jokainen koodi toimii vain kerran. Saat lisää kutsukoodeja säännöllisin väliajoin." +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "Muokkaa" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "Muokkaa profiilikuvaa" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "Muokkaa kuvaa" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "Muokkaa listan tietoja" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "Muokkaa moderaatiolistaa" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" msgstr "Muokkaa syötteitä" @@ -1597,25 +2021,37 @@ msgstr "Muokkaa syötteitä" msgid "Edit my profile" msgstr "Muokkaa profiilia" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "Muokkaa profiilia" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "Muokkaa profiilia" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "Muokkaa tallennettuja syötteitä" +#: src/view/screens/Feeds.tsx:416 +#~ msgid "Edit Saved Feeds" +#~ msgstr "Muokkaa tallennettuja syötteitä" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "Muokkaa käyttäjälistaa" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "Muokkaa näyttönimeäsi" @@ -1624,11 +2060,20 @@ msgstr "Muokkaa näyttönimeäsi" msgid "Edit your profile description" msgstr "Muokkaa profiilin kuvausta" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "Koulutus" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "Sähköposti" @@ -1654,7 +2099,7 @@ msgstr "Sähköpostiosoite päivitetty" msgid "Email verified" msgstr "Sähköpostiosoite vahvistettu" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "Sähköpostiosoite:" @@ -1663,8 +2108,8 @@ msgid "Embed HTML code" msgstr "Upotuksen HTML-koodi" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" msgstr "Upota viesti" @@ -1676,29 +2121,34 @@ msgstr "Upota tämä julkaisu verkkosivustollesi. Kopioi vain seuraava koodinpä msgid "Enable {0} only" msgstr "Ota käyttöön vain {0}" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "Ota aikuissisältö käyttöön" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "Ota aikuissisältö käyttöön" +#~ msgid "Enable Adult Content" +#~ msgstr "Ota aikuissisältö käyttöön" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "Näytä aikuissisältöä syötteissäsi" +#~ msgid "Enable adult content in your feeds" +#~ msgstr "Näytä aikuissisältöä syötteissäsi" #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 msgid "Enable external media" msgstr "Ota käyttöön ulkoinen media" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "Ota mediatoistimet käyttöön kohteille" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "Ota tämä asetus käyttöön nähdäksesi vastaukset vain seuraamiltasi ihmisiltä." @@ -1706,7 +2156,9 @@ msgstr "Ota tämä asetus käyttöön nähdäksesi vastaukset vain seuraamiltasi msgid "Enable this source only" msgstr "Ota käyttöön vain tämä lähde" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "Käytössä" @@ -1714,7 +2166,15 @@ msgstr "Käytössä" msgid "End of feed" msgstr "Syötteen loppu" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/components/Lists.tsx:52 +#~ msgid "End of list" +#~ msgstr "" + +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Anna sovellusalasanalle nimi" @@ -1731,7 +2191,7 @@ msgstr "Kirjoita sana tai aihetunniste" msgid "Enter Confirmation Code" msgstr "Syötä vahvistuskoodi" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "Anna saamasi koodi vaihtaaksesi salasanasi." @@ -1748,7 +2208,7 @@ msgid "Enter your birth date" msgstr "Syötä syntymäaikasi" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "Syötä sähköpostiosoitteesi" @@ -1764,32 +2224,45 @@ msgstr "Syötä uusi sähköpostiosoitteesi alle" msgid "Enter your username and password" msgstr "Syötä käyttäjätunnuksesi ja salasanasi" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" msgstr "" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "Virhe captcha-vastauksen vastaanottamisessa." -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "Virhe:" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "Kaikki" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "Liialliset maininnat tai vastaukset" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "Keskeyttää tilin poistoprosessin" @@ -1805,8 +2278,8 @@ msgstr "Keskeyttää kuvan rajausprosessin" msgid "Exits image view" msgstr "Poistuu kuvan katselutilasta" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "Poistuu hakukyselyn kirjoittamisesta" @@ -1814,11 +2287,19 @@ msgstr "Poistuu hakukyselyn kirjoittamisesta" msgid "Expand alt text" msgstr "Laajenna ALT-teksti" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "Laajenna tai pienennä viesti johon olit vastaamassa" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "Selvästi tai mahdollisesti häiritsevä media." @@ -1827,12 +2308,12 @@ msgstr "Selvästi tai mahdollisesti häiritsevä media." msgid "Explicit sexual images." msgstr "Selvästi seksuaalista kuvamateriaalia." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "Vie tietoni" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "Vie tietoni" @@ -1842,83 +2323,143 @@ msgid "External Media" msgstr "Ulkoiset mediat" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "Ulkoiset mediat voivat sallia verkkosivustojen kerätä tietoja sinusta ja laitteestasi. Tietoja ei lähetetä eikä pyydetä, ennen kuin painat \"toista\"-painiketta." -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "Ulkoisten mediasoittimien asetukset" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "Ulkoisten mediasoittimien asetukset" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "Sovellussalasanan luominen epäonnistui." -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "Listan luominen epäonnistui. Tarkista internetyhteytesi ja yritä uudelleen." -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "Viestin poistaminen epäonnistui, yritä uudelleen" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" msgstr "GIF-animaatioiden lataaminen epäonnistui" -#: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:28 +#~ msgid "Failed to load past messages." +#~ msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:110 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:143 #~ msgid "Failed to load recommended feeds" #~ msgstr "Suositeltujen syötteiden lataaminen epäonnistui" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "Kuvan {0} tallennus epäonnistui" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +#~ msgid "Failed to send message(s)." +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "Syöte" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "Syöte käyttäjältä {0}" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "Syöte ei ole käytettävissä" +#: src/view/screens/Feeds.tsx:709 +#~ msgid "Feed offline" +#~ msgstr "Syöte ei ole käytettävissä" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "Palaute" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" msgstr "Syötteet" @@ -1926,19 +2467,23 @@ msgstr "Syötteet" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Käyttäjät luovat syötteitä sisällön kuratointiin. Valitse joitakin syötteitä, jotka koet mielenkiintoisiksi." -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Syötteet ovat käyttäjien rakentamia mukautettuja algoritmeja, jotka vaativat vain vähän koodaustaitoja. <0/> lisätietoa varten." #: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" -msgstr "Syötteet voivat olla myös aihepiirikohtaisia!" +#~ msgid "Feeds can be topical as well!" +#~ msgstr "Syötteet voivat olla myös aihepiirikohtaisia!" + +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Tiedoston sisältö" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" msgstr "" @@ -1946,17 +2491,21 @@ msgstr "" msgid "Filter from feeds" msgstr "Suodata syötteistä" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "Viimeistely" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "Etsi seurattavia tilejä" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "" + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" msgstr "Etsi viestejä ja käyttäjiä Blueskysta" @@ -1964,19 +2513,27 @@ msgstr "Etsi viestejä ja käyttäjiä Blueskysta" #~ msgid "Finding similar accounts..." #~ msgstr "Etsitään samankaltaisia käyttäjätilejä" -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." msgstr "Hienosäädä näkemääsi sisältöä Seuratut-syötteessäsi." -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "Hienosäädä keskusteluketjuja." -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "Kuntoilu" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "Joustava" @@ -1989,112 +2546,172 @@ msgstr "Käännä vaakasuunnassa" msgid "Flip vertically" msgstr "Käännä pystysuunnassa" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "Seuraa" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "Seuraa" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Seuraa {0}" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "Seuraa käyttäjää" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" -msgstr "Seuraa kaikkia" +#~ msgid "Follow All" +#~ msgstr "Seuraa kaikkia" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "Seuraa takaisin" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" -msgstr "Seuraa valittuja tilejä ja siirry seuraavaan vaiheeseen" +#~ msgid "Follow selected accounts and continue to the next step" +#~ msgstr "Seuraa valittuja tilejä ja siirry seuraavaan vaiheeseen" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:65 #~ msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." #~ msgstr "Seuraa joitakin käyttäjiä aloittaaksesi. Suosittelemme sinulle lisää käyttäjiä sen perusteella, ketä pidät mielenkiintoisena." -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" -msgstr "Seuraajina {0}" +#: src/components/KnownFollowers.tsx:169 +#~ msgid "Followed by" +#~ msgstr "" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/view/com/profile/ProfileCard.tsx:190 +#~ msgid "Followed by {0}" +#~ msgstr "Seuraajina {0}" + +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" +msgstr "" + +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "Seuratut käyttäjät" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "Vain seuratut käyttäjät" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "seurasi sinua" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Seuraajat" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "Seurataan" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" msgstr "Seurataan {0}" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" msgstr "Seuratut -syötteen asetukset" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" msgstr "Seuratut -syötteen asetukset" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "Seuraa sinua" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "Seuraa sinua" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "Ruoka" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Turvallisuussyistä meidän on lähetettävä vahvistuskoodi sähköpostiosoitteeseesi." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Turvallisuussyistä et näe tätä uudelleen. Jos unohdat tämän salasanan, sinun on luotava uusi." @@ -2103,15 +2720,15 @@ msgstr "Turvallisuussyistä et näe tätä uudelleen. Jos unohdat tämän salasa msgid "Forgot Password" msgstr "Unohtunut salasana" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "Unohtuiko salasana?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "Unohditko?" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "Julkaisee usein ei-toivottua sisältöä" @@ -2119,7 +2736,7 @@ msgstr "Julkaisee usein ei-toivottua sisältöä" msgid "From @{sanitizedAuthor}" msgstr "Käyttäjältä @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "Lähde: <0/>" @@ -2128,48 +2745,77 @@ msgstr "Lähde: <0/>" msgid "Gallery" msgstr "Galleria" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Aloita tästä" -#: src/screens/Onboarding/StepProfile/index.tsx:228 +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" +msgstr "" + +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 msgid "Give your profile a face" msgstr "" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "Ilmeisiä lain tai käyttöehtojen rikkomuksia" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "Palaa takaisin" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "Palaa takaisin" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:189 +#~ msgid "Go back to previous screen" +#~ msgstr "" + +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "Palaa edelliseen vaiheeseen" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "Palaa alkuun" @@ -2183,16 +2829,24 @@ msgstr "Palaa alkuun" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "Siirry @{queryMaybeHandle}" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "Siirry seuraavaan" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" msgstr "" @@ -2200,112 +2854,114 @@ msgstr "" msgid "Graphic Media" msgstr "" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Käyttäjätunnus" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" msgstr "Haptiikka" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "Häirintä, trollaus tai suvaitsemattomuus" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "Aihetunniste" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "Aihetunniste #{tag}" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "Ongelmia?" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "Ohje" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "Tässä on joitakin tilejä seurattavaksi" +#~ msgid "Here are some accounts for you to follow" +#~ msgstr "Tässä on joitakin tilejä seurattavaksi" #: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "Tässä on joitakin suosittuja aihepiirikohtaisia syötteitä. Voit valita seurattavaksi niin monta kuin haluat." +#~ msgid "Here are some popular topical feeds. You can choose to follow as many as you like." +#~ msgstr "Tässä on joitakin suosittuja aihepiirikohtaisia syötteitä. Voit valita seurattavaksi niin monta kuin haluat." #: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "Tässä on joitakin aihepiirikohtaisia syötteitä kiinnostuksiesi perusteella: {interestsText}. Voit valita seurata niin montaa kuin haluat." +#~ msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." +#~ msgstr "Tässä on joitakin aihepiirikohtaisia syötteitä kiinnostuksiesi perusteella: {interestsText}. Voit valita seurata niin montaa kuin haluat." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Tässä on sovelluksesi salasana." -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "Piilota" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "Piilota" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "Piilota viesti" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "Piilota sisältö" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "Piilota tämä viesti?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "Piilota käyttäjäluettelo" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Hmm, jokin ongelma ilmeni ottaessa yhteyttä syötteen palvelimeen. Ilmoita asiasta syötteen omistajalle." -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Hmm, syötteen palvelin vaikuttaa olevan väärin konfiguroitu. Ilmoita asiasta syötteen omistajalle." -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Hmm, syötteen palvelin vaikuttaa olevan poissa käytöstä. Ilmoita asiasta syötteen omistajalle." -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Hmm, syötteen palvelin antoi virheellisen vastauksen. Ilmoita asiasta syötteen omistajalle." -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, meillä on vaikeuksia löytää tätä syötettä. Se saattaa olla poistettu." -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." msgstr "Hmm, vaikuttaa siltä, että tämän datan lataamisessa on ongelmia. Katso lisätietoja alta. Jos ongelma jatkuu, ole hyvä ja ota yhteyttä meihin." @@ -2313,11 +2969,12 @@ msgstr "Hmm, vaikuttaa siltä, että tämän datan lataamisessa on ongelmia. Kat msgid "Hmmmm, we couldn't load that moderation service." msgstr "Hmm, emme pystyneet avaamaan kyseistä moderaatiopalvelua." -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "Koti" @@ -2326,8 +2983,8 @@ msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Hostingyritys" @@ -2350,7 +3007,8 @@ msgstr "Minulla on vahvistuskoodi" msgid "I have my own domain" msgstr "Minulla on oma verkkotunnus" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" msgstr "" @@ -2366,43 +3024,55 @@ msgstr "Jos mitään ei ole valittu, sopii kaikenikäisille." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Jos et ole vielä täysi-ikäinen, huoltajasi tai laillisen edustajasi on luettava nämä ehdot puolestasi." -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "Jos poistat tämän listan, et voi palauttaa sitä." -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "Jos poistat tämän julkaisun, et voi palauttaa sitä." -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Jos haluat vaihtaa salasanasi, lähetämme sinulle koodin varmistaaksemme, että tämä on käyttäjätilisi." -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "Laiton ja kiireellinen" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "Kuva" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Kuvan ALT-teksti" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "Henkilöllisyyden tai yhteyksien vääristely tai vääriä väitteitä niistä" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "Syötä sähköpostiisi lähetetty koodi salasanan nollaamista varten" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "Syötä vahvistuskoodi käyttäjätilin poistoa varten" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Syötä nimi sovellussalasanaa varten" @@ -2410,23 +3080,23 @@ msgstr "Syötä nimi sovellussalasanaa varten" msgid "Input new password" msgstr "Syötä uusi salasana" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "Syötä salasana käyttäjätilin poistoa varten" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "Syötä sinulle sähköpostitse lähetetty koodi" -#: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "Syötä salasana, joka liittyy kohteeseen {identifier}" +#: src/screens/Login/LoginForm.tsx:221 +#~ msgid "Input the password tied to {identifier}" +#~ msgstr "Syötä salasana, joka liittyy kohteeseen {identifier}" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the username or email address you used at signup" msgstr "Syötä käyttäjätunnus tai sähköpostiosoite, jonka käytit rekisteröityessäsi" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "Syötä salasanasi" @@ -2434,20 +3104,24 @@ msgstr "Syötä salasanasi" msgid "Input your preferred hosting provider" msgstr "Syötä haluamasi palveluntarjoaja" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "Syötä käyttäjätunnuksesi" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "Virheellinen kaksivaiheisen tunnistautumisen vahvistuskoodi." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "Virheellinen tai ei tuettu tietue" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "Virheellinen käyttäjätunnus tai salasana" @@ -2455,11 +3129,11 @@ msgstr "Virheellinen käyttäjätunnus tai salasana" msgid "Invite a Friend" msgstr "Kutsu ystävä" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "Kutsukoodi" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Kutsukoodia ei hyväksytty. Tarkista, että syötit sen oikein ja yritä uudelleen." @@ -2471,15 +3145,43 @@ msgstr "Kutsukoodit: {0} saatavilla" msgid "Invite codes: 1 available" msgstr "Kutsukoodit: 1 saatavilla" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." -msgstr "Se näyttää viestejä seuraamiltasi ihmisiltä reaaliajassa." +#~ msgid "It shows posts from the people you follow as they happen." +#~ msgstr "Se näyttää viestejä seuraamiltasi ihmisiltä reaaliajassa." + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." +msgstr "" #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "Työpaikat" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "" + +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "Journalismi" @@ -2487,19 +3189,19 @@ msgstr "Journalismi" #~ msgid "label has been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "Merkinnnyt {0}." -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "" -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "Merkinnät" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "" @@ -2507,33 +3209,33 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "Kielen valinta" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "Kielen asetukset" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "Kielen asetukset" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "Kielet" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "Uusimmat" @@ -2541,31 +3243,38 @@ msgstr "Uusimmat" msgid "Learn More" msgstr "Lue lisää" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Lue lisää tästä varoituksesta" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "Lue lisää siitä, mikä on julkista Blueskyssa." -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "Lue lisää." -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" msgstr "" @@ -2577,24 +3286,29 @@ msgstr "Jätä kaikki valitsematta nähdäksesi minkä tahansa kielen." msgid "Leaving Bluesky" msgstr "Poistuminen Blueskysta" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "jäljellä." -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Legacy tietovarasto tyhjennetty, sinun on käynnistettävä sovellus uudelleen nyt." +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "Aloitetaan salasanasi nollaus!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "Aloitetaan!" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "Vaalea" @@ -2602,14 +3316,23 @@ msgstr "Vaalea" #~ msgid "Like" #~ msgstr "Tykkää" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "" + +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "Tykkää tästä syötteestä" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "Tykänneet" @@ -2633,75 +3356,92 @@ msgstr "Tykänneet" #~ msgid "Liked by {likeCount} {0}" #~ msgstr "Tykännyt {likeCount} {0}" -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" msgstr "tykkäsi mukautetusta syötteestäsi" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" msgstr "tykkäsi viestistäsi" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "Tykkäykset" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "Tykkäykset tässä viestissä" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "Lista" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "Listan kuvake" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "Lista estetty" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "Listan on luonut {0}" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "Lista poistettu" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "Lista hiljennetty" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "Listan nimi" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "Listaa estosta poistetut" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "Listaa hiljennyksestä poistetut" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "Listat" -#: src/view/screens/Notifications.tsx:159 +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "Lataa uusia ilmoituksia" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "Lataa uusia viestejä" @@ -2709,18 +3449,23 @@ msgstr "Lataa uusia viestejä" msgid "Loading..." msgstr "Ladataan..." -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "Loki" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "Kirjaudu ulos" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "Näkyvyys kirjautumattomana" @@ -2728,7 +3473,7 @@ msgstr "Näkyvyys kirjautumattomana" msgid "Login to account that is not listed" msgstr "Kirjaudu tiliin, joka ei ole luettelossa" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" msgstr "Pidä alaspainettuna avataksesi tunnistevalikon tunnisteelle #{tag}" @@ -2740,12 +3485,20 @@ msgstr "Näkyy muodossa XXXXX-XXXXX" msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" msgstr "" #: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." +#~ msgid "Looks like you're missing a following feed." +#~ msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" msgstr "" #: src/view/com/modals/LinkWarning.tsx:79 @@ -2756,31 +3509,35 @@ msgstr "Varmista, että olet menossa oikeaan paikkaan!" msgid "Manage your muted words and tags" msgstr "Hallinnoi hiljennettyjä sanoja ja aihetunnisteita" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "Media" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "mainitut käyttäjät" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "Mainitut käyttäjät" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "Valikko" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" msgstr "" @@ -2788,40 +3545,37 @@ msgstr "" msgid "Message from server: {0}" msgstr "Viesti palvelimelta: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" #: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "" +#~ msgid "Messaging settings" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "Harhaanjohtava käyttäjätili" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "Moderointi" @@ -2829,56 +3583,57 @@ msgstr "Moderointi" msgid "Moderation details" msgstr "Moderaation yksityiskohdat" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" msgstr "Moderointilista käyttäjältä {0}" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "Moderointilista käyttäjältä <0/>" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "Sinun moderointilistasi" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "Moderointilista luotu" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "Moderointilista päivitetty" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "Moderointilistat" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Moderointilistat" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "Moderointiasetukset" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "Moderointityökalut" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "Ylläpitäjä on asettanut yleisen varoituksen sisällölle." -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "Lisää" @@ -2886,14 +3641,22 @@ msgstr "Lisää" msgid "More feeds" msgstr "Lisää syötteitä" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "Lisää asetuksia" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "Eniten tykätyt vastaukset ensin" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "" + #: src/components/TagMenu/index.tsx:249 msgid "Mute" msgstr "Hiljennä" @@ -2902,12 +3665,12 @@ msgstr "Hiljennä" msgid "Mute {truncatedTag}" msgstr "Hiljennä {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "Hiljennä käyttäjä" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "Hiljennä käyttäjät" @@ -2915,6 +3678,11 @@ msgstr "Hiljennä käyttäjät" msgid "Mute all {displayTag} posts" msgstr "Hiljennä kaikki {displayTag} viestit" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" msgstr "Hiljennä vain aihetunnisteissa" @@ -2923,16 +3691,16 @@ msgstr "Hiljennä vain aihetunnisteissa" msgid "Mute in text & tags" msgstr "Hiljennä tekstissä ja aihetunnisteissa" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "Hiljennä lista" #: src/components/dms/ConvoMenu.tsx:136 #: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "" +#~ msgid "Mute notifications" +#~ msgstr "" -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "Hiljennä nämä käyttäjät?" @@ -2944,25 +3712,25 @@ msgstr "Hiljennä tämä sana viesteissä ja aihetunnisteissa" msgid "Mute this word in tags only" msgstr "Hiljennä tämä sana vain aihetunnisteissa" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" msgstr "Hiljennä keskustelu" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "Hiljennä sanat ja aihetunnisteet" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "Hiljennetty" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "Hiljennetyt käyttäjät" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "Hiljennetyt käyttäjätilit" @@ -2971,15 +3739,15 @@ msgstr "Hiljennetyt käyttäjätilit" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Hiljennettyjen käyttäjien viestit poistetaan syötteestäsi ja ilmoituksistasi. Hiljennykset ovat täysin yksityisiä." -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "Hiljentäjä: \"{0}\"" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "Hiljennetyt sanat ja aihetunnisteet" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Hiljennys on yksityinen. Hiljennetyt käyttäjät voivat edelleen vuorovaikuttaa kanssasi, mutta et näe heidän viestejään tai saa ilmoituksia heiltä." @@ -2988,52 +3756,62 @@ msgstr "Hiljennys on yksityinen. Hiljennetyt käyttäjät voivat edelleen vuorov msgid "My Birthday" msgstr "Syntymäpäiväni" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" msgstr "Omat syötteet" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "Profiilini" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" msgstr "Tallennetut syötteeni" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" msgstr "Tallennetut syötteeni" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "Nimi" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "Nimi vaaditaan" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "Nimi tai kuvaus rikkoo yhteisön sääntöjä" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "Luonto" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "Siirtyy seuraavalle näytölle" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "Siirtyy profiiliisi" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "Tarvitseeko ilmoittaa tekijänoikeusrikkomuksesta?" @@ -3042,7 +3820,7 @@ msgstr "Tarvitseeko ilmoittaa tekijänoikeusrikkomuksesta?" #~ msgid "Never lose access to your followers and data." #~ msgstr "Älä koskaan menetä pääsyä seuraajiisi ja tietoihisi." -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "Älä koskaan menetä pääsyä seuraajiisi tai tietoihisi." @@ -3050,7 +3828,7 @@ msgstr "Älä koskaan menetä pääsyä seuraajiisi tai tietoihisi." msgid "Nevermind, create a handle for me" msgstr "" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "Uusi" @@ -3059,65 +3837,79 @@ msgstr "Uusi" msgid "New" msgstr "Uusi" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "Uusi moderointilista" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "Uusi salasana" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "Uusi salasana" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "Uusi viesti" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "Uusi viesti" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "Uusi viesti" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "Uusi käyttäjälista" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "Uusimmat vastaukset ensin" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "Uutiset" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "Seuraava" @@ -3130,17 +3922,17 @@ msgstr "Seuraava" msgid "Next image" msgstr "Seuraava kuva" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "Ei" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "Ei kuvausta" @@ -3148,68 +3940,102 @@ msgstr "Ei kuvausta" msgid "No DNS Panel" msgstr "" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "Ei löydetty esillä olevia GIF-kuvia. Tenor-palvelussa saattaa olla ongelma." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "" + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "Et enää seuraa käyttäjää {0}" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "Ei pidempi kuin 253 merkkiä." -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" msgstr "" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "Ei vielä ilmoituksia!" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "" + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Ei tuloksia" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Tuloksia ei löydetty" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "Ei tuloksia haulle \"{query}\"" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "Ei tuloksia haulle {query}" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." msgstr "Ei tuloksia hakusanalle \"{search}\"." #: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "" +#~ msgid "No search results found for \"{searchText}\"." +#~ msgstr "" #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "Ei kiitos" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "Ei kukaan" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "Kukaan ei ole vielä tykännyt tästä. Ehkä sinun pitäisi olla ensimmäinen!" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "Ei-seksuaalinen alastomuus" @@ -3218,8 +4044,8 @@ msgstr "Ei-seksuaalinen alastomuus" #~ msgid "Not Applicable." #~ msgstr "Ei sovellettavissa." -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "Ei löytynyt" @@ -3228,27 +4054,57 @@ msgstr "Ei löytynyt" msgid "Not right now" msgstr "Ei juuri nyt" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Huomio: Bluesky on avoin ja julkinen verkosto. Tämä asetus rajoittaa vain sisältösi näkyvyyttä Bluesky-sovelluksessa ja -sivustolla, eikä muut sovellukset ehkä kunnioita tässä asetuksissaan. Sisältösi voi silti näkyä uloskirjautuneille käyttäjille muissa sovelluksissa ja verkkosivustoilla." -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "Ilmoitukset" -#: src/components/dms/MessageItem.tsx:145 +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" +msgstr "" + +#: src/components/dms/MessageItem.tsx:169 msgid "Now" msgstr "" @@ -3256,7 +4112,7 @@ msgstr "" msgid "Nudity" msgstr "Alastomuus" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "" @@ -3268,17 +4124,17 @@ msgstr "" msgid "Off" msgstr "Pois" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "Voi ei!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "Voi ei! Jokin meni pieleen." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "OK" @@ -3286,107 +4142,151 @@ msgstr "OK" msgid "Okay" msgstr "Selvä" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "Vanhimmat vastaukset ensin" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "Käyttöönoton nollaus" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "Yksi tai useampi kuva on ilman vaihtoehtoista Alt-tekstiä." -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." -msgstr "Vain {0} voi vastata." +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" +msgstr "" -#: src/screens/Signup/StepHandle.tsx:98 +#: src/view/com/threadgate/WhoCanReply.tsx:100 +#~ msgid "Only {0} can reply." +#~ msgstr "Vain {0} voi vastata." + +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "Sisältää vain kirjaimia, numeroita ja väliviivoja" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Hups, nyt meni jotain väärin!" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "Hups!" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "Avaa" -#: src/screens/Onboarding/StepProfile/index.tsx:280 +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:277 msgid "Open avatar creator" msgstr "" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "Avaa emoji-valitsin" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "Avaa syötteen asetusvalikko" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "Avaa linkit sovelluksen sisäisellä selaimella" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "Avaa hiljennettyjen sanojen ja aihetunnisteiden asetukset" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "Avaa navigointi" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "Avaa viestin asetusvalikko" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "Avaa storybook-sivu" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "Avaa järjestelmäloki" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "Avaa {numItems} asetusta" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "Avaa esteettömyysasetukset" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "Avaa debug lisätiedot" #: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "Avaa laajennetun listan tämän ilmoituksen käyttäjistä" +#~ msgid "Opens an expanded list of users in this notification" +#~ msgstr "Avaa laajennetun listan tämän ilmoituksen käyttäjistä" #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "Avaa laitteen kameran" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "Avaa editorin" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "Avaa mukautettavat kielen asetukset" @@ -3394,7 +4294,7 @@ msgstr "Avaa mukautettavat kielen asetukset" msgid "Opens device photo gallery" msgstr "Avaa laitteen valokuvat" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "Avaa ulkoiset upotusasetukset" @@ -3408,7 +4308,7 @@ msgstr "" msgid "Opens flow to sign into your existing Bluesky account" msgstr "Avaa toiminto kirjautumiseksi olemassa olevaan Bluesky-tiliisi." -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" msgstr "Avaa GIF-valinnan valintaikkunan." @@ -3416,23 +4316,27 @@ msgstr "Avaa GIF-valinnan valintaikkunan." msgid "Opens list of invite codes" msgstr "Avaa kutsukoodien luettelon" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "" @@ -3440,28 +4344,28 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Avaa asetukset oman verkkotunnuksen käyttöönottoon" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" msgstr "Avaa moderointiasetukset" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "Avaa salasanan palautuslomakkeen" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "Avaa näkymän tallennettujen syötteiden muokkaamiseen" +#: src/view/screens/Feeds.tsx:417 +#~ msgid "Opens screen to edit Saved Feeds" +#~ msgstr "Avaa näkymän tallennettujen syötteiden muokkaamiseen" -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" msgstr "Avaa näkymän kaikkiin tallennettuihin syötteisiin" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "Avaa sovelluksen salasanojen asetukset" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" msgstr "Avaa Seuratut-syötteen asetukset" @@ -3470,36 +4374,53 @@ msgid "Opens the linked website" msgstr "Avaa linkitetyn verkkosivun" #: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "" +#~ msgid "Opens the message settings page" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "Avaa storybook-sivun" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "Avaa järjestelmän lokisivun" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "Avaa keskusteluasetukset" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "Asetus {0}/{numItems}" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "Voit tarvittaessa antaa lisätietoja alla:" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "Tai yhdistä nämä asetukset:" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "" + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "Joku toinen" @@ -3507,11 +4428,15 @@ msgstr "Joku toinen" msgid "Other account" msgstr "Toinen tili" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "Muu..." -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "" + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Sivua ei löytynyt" @@ -3520,14 +4445,14 @@ msgstr "Sivua ei löytynyt" msgid "Page Not Found" msgstr "Sivua ei löytynyt" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "Salasana" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "Salasana vaihdettu" @@ -3539,52 +4464,66 @@ msgstr "Salasana päivitetty" msgid "Password updated!" msgstr "Salasana päivitetty!" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "Pysäytä" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "Henkilöt" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "Henkilöt, joita @{0} seuraa" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "Henkilöt, jotka seuraavat käyttäjää @{0}" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." msgstr "Käyttöoikeus valokuviin tarvitaan." -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "Lupa valokuviin evättiin. Anna lupa järjestelmäasetuksissa." -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "Lemmikit" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Aikuisille tarkoitetut kuvat." -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "Kiinnitä etusivulle" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "Kiinnitä etusivulle" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "Kiinnitetyt syötteet" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" msgstr "Käynnistä" @@ -3592,7 +4531,12 @@ msgstr "Käynnistä" msgid "Play {0}" msgstr "Toista {0}" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/screens/Messages/Settings.tsx:97 +#: src/screens/Messages/Settings.tsx:104 +#~ msgid "Play notification sounds" +#~ msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" msgstr "Toista tai pysäytä GIF" @@ -3605,15 +4549,16 @@ msgstr "Toista video" msgid "Plays the GIF" msgstr "Toistaa GIFin" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "Valitse käyttäjätunnuksesi." -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "Valitse salasanasi." -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "Täydennä varmennus-captcha, ole hyvä." @@ -3621,11 +4566,11 @@ msgstr "Täydennä varmennus-captcha, ole hyvä." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Vahvista sähköpostiosoitteesi ennen sen vaihtamista. Tämä on väliaikainen vaatimus, kunnes sähköpostin muokkaamisen liittyvät asetukset ovat lisätty ja se poistetaan piakkoin." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Anna nimi sovellussalasanalle. Kaikki välilyönnit eivät ole sallittuja." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Anna uniikki nimi tälle sovellussalasanalle tai käytä satunnaisesti luotua." @@ -3633,19 +4578,29 @@ msgstr "Anna uniikki nimi tälle sovellussalasanalle tai käytä satunnaisesti l msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Ole hyvä ja syötä oikea sana, aihetunniste tai lause hiljennettäväksi." -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "Anna sähköpostiosoitteesi." -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "Anna myös salasanasi:" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "" + #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" msgstr "" @@ -3653,11 +4608,12 @@ msgstr "" msgid "Please Verify Your Email" msgstr "Vahvista sähköpostiosoitteesi" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "Odota, että linkkikortti latautuu kokonaan" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "Politiikka" @@ -3665,46 +4621,46 @@ msgstr "Politiikka" msgid "Porn" msgstr "Porno" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "Lähetä" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" msgstr "Viesti" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "Lähettäjä {0}" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "Lähettäjä @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "Viesti poistettu" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Viesti piilotettu" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" msgstr "Viesti piilotettu hiljennetyn sanan takia" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" msgstr "Sinun hiljentämä viesti" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "Lähetyskieli" @@ -3712,8 +4668,8 @@ msgstr "Lähetyskieli" msgid "Post Languages" msgstr "Lähetyskielet" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Viestiä ei löydy" @@ -3721,7 +4677,8 @@ msgstr "Viestiä ei löydy" msgid "posts" msgstr "viestit" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "Viestit" @@ -3729,7 +4686,7 @@ msgstr "Viestit" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Viestejä voidaan hiljentää sanojen, aihetunnisteiden tai molempien perusteella." -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "Piilotetut viestit" @@ -3737,14 +4694,22 @@ msgstr "Piilotetut viestit" msgid "Potentially Misleading Link" msgstr "Mahdollisesti harhaanjohtava linkki" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "Klikkaa vaihtaaksesi palveluntarjoajaa" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "Paina uudelleen jatkaaksesi" @@ -3753,45 +4718,57 @@ msgstr "Paina uudelleen jatkaaksesi" #~ msgid "Press to Retry" #~ msgstr "" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Edellinen kuva" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "Ensisijainen kieli" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "Aseta seurattavat tärkeysjärjestykseen" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "Yksityisyys" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Yksityisyydensuojakäytäntö" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "Käsitellään..." -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "profiili" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "Profiili" @@ -3799,11 +4776,11 @@ msgstr "Profiili" msgid "Profile updated" msgstr "Profiili päivitetty" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "Suojaa käyttäjätilisi vahvistamalla sähköpostiosoitteesi." -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "Julkinen" @@ -3811,33 +4788,52 @@ msgstr "Julkinen" msgid "Public, shareable lists of users to mute or block in bulk." msgstr "Julkinen, jaettava käyttäjäluettelo hiljennettyjen tai estettyjen käyttäjien massamäärityksiä varten." -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." msgstr "Julkinen, jaettava lista, joka voi ohjata syötteitä." -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "Julkaise viesti" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "Julkaise vastaus" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "Lainaa viestiä" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 -msgid "Quote post" -msgstr "Lainaa viestiä" +#: src/view/com/modals/Repost.tsx:66 +#~ msgctxt "action" +#~ msgid "Quote post" +#~ msgstr "Lainaa viestiä" #: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "Lainaa viestiä" +#~ msgctxt "action" +#~ msgid "Quote Post" +#~ msgstr "Lainaa viestiä" -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "Satunnainen (tunnetaan myös nimellä \"Lähettäjän ruletti\")" @@ -3845,11 +4841,19 @@ msgstr "Satunnainen (tunnetaan myös nimellä \"Lähettäjän ruletti\")" msgid "Ratios" msgstr "Suhdeluvut" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" msgstr "" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "" + +#: src/components/dms/MessageReportDialog.tsx:149 +#~ msgid "Reason: {0}" +#~ msgstr "" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "Viimeaikaiset haut" @@ -3861,20 +4865,39 @@ msgstr "Viimeaikaiset haut" #~ msgid "Recommended Users" #~ msgstr "Suositellut käyttäjät" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "" + +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Poista" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "" + #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Poista käyttäjätili" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "Poista avatar" @@ -3882,9 +4905,13 @@ msgstr "Poista avatar" msgid "Remove Banner" msgstr "Poista banneri" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "Poista syöte" @@ -3892,15 +4919,16 @@ msgstr "Poista syöte" msgid "Remove feed?" msgstr "Poista syöte?" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "Poista syötteistäni" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "Poista syötteistäni?" @@ -3908,7 +4936,7 @@ msgstr "Poista syötteistäni?" msgid "Remove image" msgstr "Poista kuva" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "Poista kuvan esikatselu" @@ -3916,11 +4944,20 @@ msgstr "Poista kuvan esikatselu" msgid "Remove mute word from your list" msgstr "Poista hiljennetty sana listaltasi" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "" + +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 msgid "Remove quote" msgstr "" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "Poista uudelleenjulkaisu" @@ -3928,58 +4965,83 @@ msgstr "Poista uudelleenjulkaisu" msgid "Remove this feed from your saved feeds" msgstr "Poista tämä syöte seurannasta" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "Poistettu listalta" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" msgstr "Poistettu syötteistäni" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" msgstr "Poistettu syötteistäsi" #: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "Poistaa {0} oletuskuvakkeen" +#~ msgid "Removes default thumbnail from {0}" +#~ msgstr "Poistaa {0} oletuskuvakkeen" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" msgstr "" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 msgid "Replace with Discover" msgstr "" -#: src/view/screens/Profile.tsx:194 +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "Vastaukset" -#: src/view/com/threadgate/WhoCanReply.tsx:98 +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "" + +#: src/view/com/threadgate/WhoCanReply.tsx:123 +#~ msgid "Replies on this thread are disabled" +#~ msgstr "" + +#: src/components/WhoCanReply.tsx:243 msgid "Replies to this thread are disabled" msgstr "Tähän keskusteluun vastaaminen on estetty" -#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "Vastaa" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "Vastaussuodattimet" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "Vastaa käyttäjälle <0><1/>" -#: src/components/dms/MessageMenu.tsx:109 +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" +msgstr "" + +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 msgid "Report" msgstr "" @@ -3988,14 +5050,14 @@ msgstr "" #~ msgid "Report account" #~ msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "Ilmianna käyttäjätili" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" msgstr "" @@ -4003,64 +5065,75 @@ msgstr "" msgid "Report dialog" msgstr "" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "Ilmianna syöte" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "Ilmianna luettelo" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "Ilmianna viesti" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "Ilmianna tämä sisältö" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "Ilmianna tämä syöte" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "Ilmianna tämä lista" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "Ilmianna tämä viesti" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "Ilmianna tämä käyttäjä" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "Uudelleenjulkaise" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "Uudelleenjulkaise" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "Uudelleenjulkaise tai lainaa viestiä" @@ -4068,19 +5141,24 @@ msgstr "Uudelleenjulkaise tai lainaa viestiä" msgid "Reposted By" msgstr "Uudelleenjulkaissut" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "{0} uudelleenjulkaisi" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "Uudelleenjulkaissut <0><1/>" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "uudelleenjulkaisi viestisi" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "Tämän viestin uudelleenjulkaisut" @@ -4089,12 +5167,12 @@ msgstr "Tämän viestin uudelleenjulkaisut" msgid "Request Change" msgstr "Pyydä muutosta" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "Pyydä koodia" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "Edellytä ALT-tekstiä ennen viestin julkaisua" @@ -4102,7 +5180,7 @@ msgstr "Edellytä ALT-tekstiä ennen viestin julkaisua" msgid "Require email code to log into your account" msgstr "Edellytä sähköpostikoodia kirjautumisessa" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "Vaaditaan tälle instanssille" @@ -4111,16 +5189,16 @@ msgstr "Vaaditaan tälle instanssille" msgid "Resend email" msgstr "Lähetä sähköposti uudelleen" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "Nollauskoodi" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "Nollauskoodi" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "Nollaa käyttöönoton tila" @@ -4128,20 +5206,20 @@ msgstr "Nollaa käyttöönoton tila" msgid "Reset password" msgstr "Nollaa salasana" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "Nollaa asetusten tila" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "Nollaa käyttöönoton tilan" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "Nollaa asetusten tilan" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "Yrittää uudelleen kirjautumista" @@ -4150,15 +5228,16 @@ msgstr "Yrittää uudelleen kirjautumista" msgid "Retries the last action, which errored out" msgstr "Yrittää uudelleen viimeisintä toimintoa, joka epäonnistui" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -4169,7 +5248,8 @@ msgstr "Yritä uudelleen" #~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "Palaa edelliselle sivulle" @@ -4178,26 +5258,28 @@ msgid "Returns to home page" msgstr "Palaa etusivulle" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "Palaa edelliselle sivulle" #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Tallenna" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "Tallenna" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Tallenna vaihtoehtoinen ALT-teksti" @@ -4213,20 +5295,29 @@ msgstr "Tallenna muutokset" msgid "Save handle change" msgstr "Tallenna käyttäjätunnuksen muutos" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "Tallenna kuvan rajaus" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" msgstr "Tallenna syötteisiini" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" msgstr "Tallennetut syötteet" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" msgstr "" @@ -4234,8 +5325,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "Tallennettu kuvagalleriaasi." -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "Tallennettu syötteisiisi" @@ -4251,37 +5342,45 @@ msgstr "Tallentaa käyttäjätunnuksen muutoksen muotoon {handle}" msgid "Saves image crop settings" msgstr "Tallentaa kuvan rajausasetukset" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "Tiede" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "Vieritä alkuun" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "Haku" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "Haku hakusanalla \"{query}\"" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" msgstr "" @@ -4293,25 +5392,32 @@ msgstr "Hae kaikki @{authorHandle}:n julkaisut, joissa on aihetunniste {displayT msgid "Search for all posts with tag {displayTag}" msgstr "Etsi kaikki viestit aihetunnisteella {displayTag}." -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." msgstr "" -#: src/view/com/auth/LoggedOut.tsx:105 +#: src/components/dms/NewChat.tsx:226 +#~ msgid "Search for someone to start a conversation with." +#~ msgstr "" + #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "Hae käyttäjiä" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "Hae GIF-animaatioita" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" msgstr "" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "Hae Tenorista" @@ -4336,11 +5442,11 @@ msgid "See <0>{displayTag} posts by this user" msgstr "Näytä tämän käyttäjän <0>{displayTag} viestit" #: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "Katso profiilia" +#: src/view/com/util/UserAvatar.tsx:402 +#~ msgid "See profile" +#~ msgstr "Katso profiilia" -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "Katso tämä opas" @@ -4368,15 +5474,15 @@ msgstr "" msgid "Select from an existing account" msgstr "Valitse olemassa olevalta tililtä" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" msgstr "Valitse GIF" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" msgstr "Valitse GIF \"{0}\"" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "Valitse kielet" @@ -4389,14 +5495,14 @@ msgid "Select option {i} of {numItems}" msgstr "Valitse vaihtoehto {i} / {numItems}" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "Valitse alla olevista tileistä jotain seurattavaksi" +#~ msgid "Select some accounts below to follow" +#~ msgstr "Valitse alla olevista tileistä jotain seurattavaksi" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4405,69 +5511,80 @@ msgid "Select the service that hosts your data." msgstr "Valitse palvelu, joka hostaa tietojasi." #: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" -msgstr "Valitse ajankohtaisia syötteitä alla olevasta listasta" +#~ msgid "Select topical feeds to follow from the list below" +#~ msgstr "Valitse ajankohtaisia syötteitä alla olevasta listasta" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" +msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "Valitse, mitä haluat nähdä (tai olla näkemättä) ja me huolehdimme lopusta." +#~ msgid "Select what you want to see (or not see), and we’ll handle the rest." +#~ msgstr "Valitse, mitä haluat nähdä (tai olla näkemättä) ja me huolehdimme lopusta." -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." msgstr "Valitse, mitä kieliä haluat tilattujen syötteidesi sisältävän. Jos mitään ei ole valittu, kaikki kielet näytetään." -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "Valitse sovelluksen käyttöliittymän kieli." -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "Aseta syntymäaikasi" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "Valitse kiinnostuksen kohteesi alla olevista vaihtoehdoista" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." msgstr "Valitse käännösten kieli syötteessäsi." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "Valitse ensisijaiset algoritmisyötteet" +#~ msgid "Select your primary algorithmic feeds" +#~ msgstr "Valitse ensisijaiset algoritmisyötteet" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" -msgstr "Valitse toissijaiset algoritmisyötteet" +#~ msgid "Select your secondary algorithmic feeds" +#~ msgstr "Valitse toissijaiset algoritmisyötteet" + +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" +msgstr "" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Lähetä vahvistussähköposti" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "Lähetä sähköposti" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "Lähetä sähköposti" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "Lähetä palautetta" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." +msgstr "" + +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "Lähetä raportti" @@ -4480,7 +5597,12 @@ msgstr "" msgid "Send verification email" msgstr "Lähetä vahvistussähköposti" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "Lähettää sähköpostin tilin poistamiseen tarvittavan vahvistuskoodin" @@ -4488,7 +5610,7 @@ msgstr "Lähettää sähköpostin tilin poistamiseen tarvittavan vahvistuskoodin msgid "Server address" msgstr "Palvelimen osoite" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "Aseta syntymäaika" @@ -4496,23 +5618,23 @@ msgstr "Aseta syntymäaika" msgid "Set new password" msgstr "Aseta uusi salasana" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Aseta tämä asetus \"Ei\"-tilaan piilottaaksesi kaikki lainaukset syötteestäsi. Uudelleenjulkaisut näkyvät silti." -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Aseta tämä asetus \"Ei\"-tilaan piilottaaksesi kaikki vastaukset syötteestäsi." -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Aseta tämä asetus \"Ei\"-tilaan piilottaaksesi kaikki uudelleenjulkaisut syötteestäsi." -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Aseta tämä asetus \"Kyllä\" tilaan näyttääksesi vastaukset ketjumaisessa näkymässä. Tämä on kokeellinen ominaisuus." -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Aseta tämä asetus \"Kyllä\"-tilaan nähdäksesi esimerkkejä tallennetuista syötteistäsi seuraamissasi syötteessäsi. Tämä on kokeellinen ominaisuus." @@ -4524,23 +5646,23 @@ msgstr "Luo käyttäjätili" msgid "Sets Bluesky username" msgstr "Asettaa Bluesky-käyttäjätunnuksen" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "Muuttaa väriteeman tummaksi" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "Muuttaa väriteeman vaaleaksi" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "Muuttaa väriteeman käyttöjärjestelmän mukaiseksi" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "Muuttaa tumman väriteeman tummaksi" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "Asettaa tumman teeman himmeäksi teemaksi" @@ -4560,12 +5682,11 @@ msgstr "Asettaa kuvan kuvasuhteen korkeaksi" msgid "Sets image aspect ratio to wide" msgstr "Asettaa kuvan kuvasuhteen leveäksi" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "Asetukset" @@ -4577,45 +5698,86 @@ msgstr "Erotiikka tai muu aikuisviihde." msgid "Sexually Suggestive" msgstr "Seksuaalisesti vihjaileva" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "Jaa" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "Jaa" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "Jaa" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "Jaa kuitenkin" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "Jaa syöte" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "Jaa linkki" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "Jakaa linkitetyn verkkosivun" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "Näytä" @@ -4623,7 +5785,7 @@ msgstr "Näytä" #~ msgid "Show all replies" #~ msgstr "Näytä kaikki vastaukset" -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" msgstr "" @@ -4641,82 +5803,90 @@ msgstr "" msgid "Show badge and filter from feeds" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "Näytä seurannat samankaltaisilta käyttäjiltä kuin {0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 msgid "Show less like this" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "Näytä lisää" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" msgstr "Näytä viestit omista syötteistäni" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "Näytä lainatut viestit" #: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "Näytä lainatut viestit seurattavien syötteessä" +#~ msgid "Show quote-posts in Following feed" +#~ msgstr "Näytä lainatut viestit seurattavien syötteessä" #: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "Näytä lainaukset seurattavissa" +#~ msgid "Show quotes in Following" +#~ msgstr "Näytä lainaukset seurattavissa" #: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "Näytä uudelleenjulkaistut viestit seurattavissa" +#~ msgid "Show re-posts in Following feed" +#~ msgstr "Näytä uudelleenjulkaistut viestit seurattavissa" -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "Näytä vastaukset" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "Näytä seurattujen henkilöiden vastaukset ennen muita vastauksia." #: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "Näytä vastaukset seurattavissa" +#~ msgid "Show replies in Following" +#~ msgstr "Näytä vastaukset seurattavissa" #: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "Näytä vastaukset seurattavissa" +#~ msgid "Show replies in Following feed" +#~ msgstr "Näytä vastaukset seurattavissa" #: src/view/screens/PreferencesFollowingFeed.tsx:70 #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Näytä vastaukset, joissa on vähintään {value} {0}" -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "Näytä uudelleenjulkaisut" #: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "Näytä uudelleenjulkaisut seurattavissa" +#~ msgid "Show reposts in Following" +#~ msgstr "Näytä uudelleenjulkaisut seurattavissa" -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "Näytä sisältö" #: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "Näytä käyttäjät" +#~ msgid "Show users" +#~ msgstr "Näytä käyttäjät" #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" @@ -4734,17 +5904,17 @@ msgstr "Näyttää viestit käyttäjältä {0} syötteessäsi" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4767,17 +5937,17 @@ msgstr "Kirjaudu sisään tai luo tili osallistuaksesi keskusteluun!" msgid "Sign into Bluesky or create a new account" msgstr "Kirjaudu Blueskyhin tai luo uusi käyttäjätili" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "Kirjaudu ulos" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4793,7 +5963,7 @@ msgstr "Rekisteröidy tai kirjaudu sisään liittyäksesi keskusteluun" msgid "Sign-in Required" msgstr "Sisäänkirjautuminen vaaditaan" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "Kirjautunut sisään nimellä" @@ -4802,56 +5972,94 @@ msgstr "Kirjautunut sisään nimellä" msgid "Signed in as @{0}" msgstr "Kirjautunut sisään käyttäjätunnuksella @{0}" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "Ohita" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "Ohita tämä vaihe" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "Ohjelmistokehitys" -#: src/screens/Messages/Conversation/index.tsx:89 +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" +msgstr "" + +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:203 +#~ msgid "Some subtitle" +#~ msgstr "" + +#: src/screens/Messages/Conversation/index.tsx:106 msgid "Something went wrong" msgstr "" +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "Jotain meni pieleen, yritä uudelleen" -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "" + +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "Pahoittelut! Istuntosi on vanhentunut. Kirjaudu sisään uudelleen." -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "Lajittele vastaukset" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "Lajittele saman viestin vastaukset seuraavasti:" #: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" -msgstr "Lähde:" +#~ msgid "Source:" +#~ msgstr "Lähde:" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "Roskapostia" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "Urheilu" @@ -4859,15 +6067,50 @@ msgstr "Urheilu" msgid "Square" msgstr "Neliö" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" msgstr "" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "" + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." +msgstr "" + #: src/view/screens/Settings/index.tsx:862 #~ msgid "Status page" #~ msgstr "Tilasivu" -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" msgstr "" @@ -4875,53 +6118,60 @@ msgstr "" #~ msgid "Step" #~ msgstr "Askel" -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" msgstr "" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "Tallennustila tyhjennetty, sinun on käynnistettävä sovellus uudelleen." -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "Lähetä" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "Tilaa" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "Tilaa {0}-syöte" +#~ msgid "Subscribe to the {0} feed" +#~ msgstr "Tilaa {0}-syöte" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "Tilaa tämä lista" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "Mahdollisia seurattavia" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "" +#: src/view/screens/Search/Search.tsx:425 +#~ msgid "Suggested Follows" +#~ msgstr "Mahdollisia seurattavia" + +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Suositeltua sinulle" @@ -4930,7 +6180,7 @@ msgstr "Suositeltua sinulle" msgid "Suggestive" msgstr "Viittaava" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -4941,19 +6191,23 @@ msgstr "Tuki" msgid "Switch Account" msgstr "Vaihda käyttäjätiliä" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "Vaihda käyttäjään {0}" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "Vaihtaa sisäänkirjautuneen käyttäjän tilin" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "Järjestelmä" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "Järjestelmäloki" @@ -4969,29 +6223,51 @@ msgstr "Aihetunnistevalikko: {displayTag}" msgid "Tall" msgstr "Pitkä" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "Napauta nähdäksesi kokonaan" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "Teknologia" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "Ehdot" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Käyttöehdot" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "" @@ -4999,12 +6275,13 @@ msgstr "" msgid "text" msgstr "teksti" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Tekstikenttä" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "Kiitos. Raporttisi on lähetetty." @@ -5012,12 +6289,21 @@ msgstr "Kiitos. Raporttisi on lähetetty." msgid "That contains the following:" msgstr "Se sisältää seuraavaa:" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "Tuo käyttätunnus on jo käytössä." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "Käyttäjä voi olla vuorovaikutuksessa kanssasi, kun poistat eston." @@ -5033,15 +6319,24 @@ msgstr "Yhteisöohjeet on siirretty kohtaan <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "Tekijänoikeuskäytäntö on siirretty kohtaan <0/>" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "" @@ -5049,8 +6344,8 @@ msgstr "" msgid "The following steps will help customize your Bluesky experience." msgstr "Seuraavat vaiheet auttavat mukauttamaan Bluesky-kokemustasi." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Viesti saattaa olla poistettu." @@ -5058,6 +6353,10 @@ msgstr "Viesti saattaa olla poistettu." msgid "The Privacy Policy has been moved to <0/>" msgstr "Tietosuojakäytäntö on siirretty kohtaan <0/>" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "" + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "Tukilomake on siirretty. Jos tarvitset apua, käy osoitteessa <0/> tai vieraile {HELP_DESK_URL} ottaaksesi meihin yhteyttä." @@ -5067,51 +6366,56 @@ msgid "The Terms of Service have been moved to" msgstr "Käyttöehdot on siirretty kohtaan" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" -msgstr "On monia syötteitä kokeiltavaksi:" +#~ msgid "There are many feeds to try:" +#~ msgstr "On monia syötteitä kokeiltavaksi:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Emme saaneet yhteyttä palvelimeen, tarkista internetyhteytesi ja yritä uudelleen." -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Syötteen poistossa on ongelmia. Tarkista internetyhteytesi ja yritä uudelleen." #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Syötteiden päivittämisessä on ongelmia, tarkista internetyhteytesi ja yritä uudelleen." -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." msgstr "Yhteyden muodostamisessa Tenoriin ilmeni ongelma." #: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" +#~ msgid "There was an issue connecting to the chat." +#~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "Yhteydenotto palvelimeen epäonnistui" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "Yhteydenotto palvelimeen epäonnistui" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Ongelma ilmoitusten hakemisessa. Napauta tästä yrittääksesi uudelleen." -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Ongelma viestien hakemisessa. Napauta tästä yrittääksesi uudelleen." @@ -5119,57 +6423,59 @@ msgstr "Ongelma viestien hakemisessa. Napauta tästä yrittääksesi uudelleen." msgid "There was an issue fetching the list. Tap here to try again." msgstr "Ongelma listan hakemisessa. Napauta tästä yrittääksesi uudelleen." -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Ongelma listojesi hakemisessa. Napauta tästä yrittääksesi uudelleen." -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Raportin lähettämisessä ilmeni ongelma. Tarkista internet-yhteytesi." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "Ongelma asetuksiesi synkronoinnissa palvelimelle" +#~ msgid "There was an issue syncing your preferences with the server" +#~ msgstr "Ongelma asetuksiesi synkronoinnissa palvelimelle" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Sovellussalasanojen hakemisessa tapahtui virhe" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "Ilmeni ongelma! {0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "Ilmeni joku ongelma. Tarkista internet-yhteys ja yritä uudelleen." -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "Sovelluksessa ilmeni odottamaton ongelma. Kerro meille, jos tämä tapahtui sinulle!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "Blueskyyn on tullut paljon uusia käyttäjiä! Aktivoimme tilisi niin pian kuin mahdollista." #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "Nämä ovat suosittuja tilejä, joista saatat pitää:" +#~ msgid "These are popular accounts you might like:" +#~ msgstr "Nämä ovat suosittuja tilejä, joista saatat pitää:" #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" @@ -5179,14 +6485,26 @@ msgstr "Tämä {screenDescription} on liputettu:" msgid "This account has requested that users sign in to view their profile." msgstr "Tämä käyttäjätili on pyytänyt, että käyttät kirjautuvat sisään nähdäkseen profiilinsa." -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:26 +#~ msgid "This chat was disconnected due to a network error." +#~ msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." msgstr "Moderaattorit ovat piilottaneet tämän sisällön." @@ -5200,33 +6518,43 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Tämä sisältö on hostattu palvelussa {0}. Haluatko sallia ulkoisen median?" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Tämä sisältö ei ole saatavilla, koska toinen käyttäjistä on estänyt toisen." -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "Tätä sisältöä ei voi katsoa ilman Bluesky-tiliä." -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Tämä syöte saa tällä hetkellä paljon liikennettä ja on tilapäisesti pois käytöstä. Yritä uudelleen myöhemmin." #: src/screens/Profile/Sections/Feed.tsx:59 #: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "Tämä syöte on tyhjä!" +#: src/view/screens/ProfileList.tsx:729 +#~ msgid "This feed is empty!" +#~ msgstr "Tämä syöte on tyhjä!" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Tämä syöte on tyhjä! Sinun on ehkä seurattava useampia käyttäjiä tai säädettävä kieliasetuksiasi." -#: src/view/com/posts/FeedShutdownMsg.tsx:97 +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:99 msgid "This feed is no longer online. We are showing <0>Discover instead." msgstr "" @@ -5251,10 +6579,14 @@ msgid "This label was applied by the author." msgstr "" #: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" +#~ msgid "This label was applied by you" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "" @@ -5262,7 +6594,7 @@ msgstr "" msgid "This link is taking you to the following website:" msgstr "Tämä linkki vie sinut tälle verkkosivustolle:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "Tämä lista on tyhjä!" @@ -5270,24 +6602,24 @@ msgstr "Tämä lista on tyhjä!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "Tämä nimi on jo käytössä" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "Tämä viesti on poistettu." -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Tämä julkaisu on näkyvissä vain kirjautuneille käyttäjille. Sitä ei näytetä kirjautumattomille henkilöille." -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "Tämä julkaisu piilotetaan syötteistä." -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Tämä profiili on näkyvissä vain kirjautuneille käyttäjille. Sitä ei näytetä kirjautumattomille henkilöille." @@ -5303,8 +6635,12 @@ msgstr "" msgid "This user doesn't have any followers." msgstr "Tällä käyttäjällä ei ole yhtään seuraajaa" +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "Tämä käyttäjä on estänyt sinut. Et voi nähdä hänen sisältöä." @@ -5320,6 +6656,10 @@ msgstr "Tämä käyttäjä on <0>{0}-listassa, jonka olet estänyt." msgid "This user is included in the <0>{0} list which you have muted." msgstr "Tämä käyttäjä on <0>{0}-listassa, jonka olet hiljentänyt." +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "" + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "Tämä käyttäjä ei seuraa ketään." @@ -5332,20 +6672,24 @@ msgstr "Tämä käyttäjä ei seuraa ketään." msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Tämä poistaa {0}:n hiljennetyistä sanoistasi. Voit lisätä sen takaisin myöhemmin." -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" msgstr "Keskusteluketjun asetukset" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "Keskusteluketjun asetukset" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "Ketjumainen näkymä" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "Keskusteluketjujen asetukset" @@ -5353,7 +6697,7 @@ msgstr "Keskusteluketjujen asetukset" msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "Jos haluat poistaa sähköpostiin perustuvan kaksivaiheisen tunnistautumisen käytöstä, vahvista pääsysi sähköpostiosoitteeseen." -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." msgstr "" @@ -5365,16 +6709,16 @@ msgstr "Kenelle haluaisit lähettää tämän raportin?" msgid "Toggle between muted word options." msgstr "Vaihda hiljennysvaihtoehtojen välillä." -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "Vaihda pudotusvalikko" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "Vaihda ottaaksesi käyttöön tai poistaaksesi käytöstä aikuisille tarkoitettu sisältö." #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "" @@ -5382,10 +6726,12 @@ msgstr "" msgid "Transformations" msgstr "Muutokset" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "Käännä" @@ -5394,11 +6740,15 @@ msgctxt "action" msgid "Try again" msgstr "Yritä uudelleen" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "Kaksivaiheinen tunnistautuminen" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" msgstr "" @@ -5406,53 +6756,65 @@ msgstr "" msgid "Type:" msgstr "Tyyppi:" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "Poista listan esto" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "Poista listan hiljennys" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Yhteys palveluusi ei onnistu. Tarkista internet-yhteytesi." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "Poista esto" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "Poista esto" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "Poista käyttäjätilin esto" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" msgstr "Poista esto?" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "Kumoa uudelleenjulkaisu" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "Lopeta seuraaminen" @@ -5461,12 +6823,12 @@ msgstr "Lopeta seuraaminen" msgid "Unfollow" msgstr "Älä seuraa" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "Lopeta seuraaminen {0}" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "Lopeta käyttäjätilin seuraaminen" @@ -5474,12 +6836,12 @@ msgstr "Lopeta käyttäjätilin seuraaminen" #~ msgid "Unlike" #~ msgstr "En tykkää" -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "Poista tykkäys tästä syötteestä" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "Poista hiljennys" @@ -5487,8 +6849,8 @@ msgstr "Poista hiljennys" msgid "Unmute {truncatedTag}" msgstr "Poista hiljennys {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "Poista käyttäjätilin hiljennys" @@ -5496,46 +6858,54 @@ msgstr "Poista käyttäjätilin hiljennys" msgid "Unmute all {displayTag} posts" msgstr "Poista hiljennys kaikista {displayTag}-julkaisuista" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/components/dms/ConvoMenu.tsx:140 +#~ msgid "Unmute notifications" +#~ msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" msgstr "Poista keskusteluketjun hiljennys" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "Poista kiinnitys" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "Poista kiinnitys etusivulta" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "Poista moderointilistan kiinnitys" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Peruuta tilaus" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "" #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" +#~ msgid "Unwanted sexual content" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 +#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:85 msgid "Unwanted Sexual Content" msgstr "Ei-toivottu seksuaalinen sisältö" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "Päivitä {displayName} listoissa" @@ -5547,7 +6917,7 @@ msgstr "Päivitä {handle}\"" msgid "Updating..." msgstr "Päivitetään..." -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" msgstr "" @@ -5555,20 +6925,20 @@ msgstr "" msgid "Upload a text file to:" msgstr "Lataa tekstitiedosto kohteeseen:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "Lataa kamerasta" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "Lataa tiedostoista" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -5578,7 +6948,7 @@ msgstr "Lataa kirjastosta" msgid "Use a file on your server" msgstr "Käytä palvelimellasi olevaa tiedostoa" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Käytä sovellussalasanoja kirjautuaksesi muihin Bluesky-sovelluksiin antamatta niille täyttä hallintaa tilillesi tai salasanallesi." @@ -5608,7 +6978,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Käytä tätä kirjautuaksesi toiseen sovellukseen käyttäjätunnuksellasi." @@ -5617,19 +6987,23 @@ msgid "Used by:" msgstr "Käyttänyt:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "Käyttäjä estetty" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr "\"{0}\" on estänyt käyttäjän." +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "Käyttäjä on estetty listalla" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "Käyttäjä on estänyt sinut" @@ -5637,46 +7011,53 @@ msgstr "Käyttäjä on estänyt sinut" msgid "User Blocks You" msgstr "Käyttäjä on estänyt sinut" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "Käyttäjälistan on tehnyt {0}" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "Käyttäjälistan on tehnyt <0/>" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "Käyttäjälistasi" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "Käyttäjälista luotu" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "Käyttäjälista päivitetty" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "Käyttäjälistat" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "Käyttäjätunnus tai sähköpostiosoite" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "Käyttäjät" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "käyttäjät, joita <0/> seuraa" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "Käyttäjät listassa \"{0}\"" @@ -5696,15 +7077,15 @@ msgstr "Arvo:" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "Varmista sähköposti" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "Vahvista sähköpostini" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "Vahvista sähköpostini" @@ -5725,31 +7106,44 @@ msgstr "Vahvista sähköpostisi" #~ msgid "Version {0}" #~ msgstr "Versio {0}" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "Videopelit" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "Katso {0}:n avatar" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "Katso vianmääritystietue" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "Näytä tiedot" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "Näytä tiedot tekijänoikeusrikkomuksen ilmoittamisesta" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "Katso koko keskusteluketju" @@ -5757,13 +7151,15 @@ msgstr "Katso koko keskusteluketju" msgid "View information about these labels" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Katso profiilia" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "Katso avatar" @@ -5771,10 +7167,15 @@ msgstr "Katso avatar" msgid "View the labeling service provided by @{0}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "Katso, kuka tykkää tästä syötteestä" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -5783,7 +7184,6 @@ msgstr "Vieraile sivustolla" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Varoita" @@ -5799,15 +7199,15 @@ msgstr "" msgid "We couldn't find any results for that hashtag." msgstr "Emme löytäneet tuloksia tuolla aihetunnisteella." -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" msgstr "" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Arvioimme, että tilisi valmistumiseen on {estimatedTime} aikaa." -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Toivomme sinulle ihania hetkiä. Muista, että Bluesky on:" @@ -5820,34 +7220,38 @@ msgid "We recommend avoiding common words that appear in many posts, since it ca msgstr "Suosittelemme välttämään yleisiä sanoja, jotka esiintyvät monissa viesteissä. Se voi johtaa siihen, ettei mitään viestejä näytetä." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "Suosittelemme \"Tutustu\"-syötettämme:" +#~ msgid "We recommend our \"Discover\" feed:" +#~ msgstr "Suosittelemme \"Tutustu\"-syötettämme:" #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "" -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Yhteyden muodostaminen ei onnistunut. Yritä uudelleen jatkaaksesi tilisi määritystä. Jos ongelma jatkuu, voit ohittaa tämän vaiheen." -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "Ilmoitamme sinulle, kun käyttäjätilisi on valmis." -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "Käytämme tätä mukauttaaksemme kokemustasi." -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "Olemme innoissamme, että liityt joukkoomme!" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Pahoittelemme, emme saaneet avattua tätä listaa. Jos ongelma jatkuu, ota yhteyttä listan tekijään: @{handleOrDid}." @@ -5855,30 +7259,50 @@ msgstr "Pahoittelemme, emme saaneet avattua tätä listaa. Jos ongelma jatkuu, o msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Pahoittelemme, emme pystyneet lataamaan hiljennettyjä sanojasi tällä hetkellä. Yritä uudelleen." -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Pahoittelemme, hakuasi ei voitu suorittaa loppuun. Yritä uudelleen muutaman minuutin kuluttua." -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "" + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Pahoittelut! Emme löydä etsimääsi sivua." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 +#~ msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#~ msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "" + +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" msgstr "" #: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Tervetuloa <0>Bluesky:iin" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" msgstr "Mitkä ovat kiinnostuksenkohteesi?" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "" + #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "Mitä kuuluu?" @@ -5890,36 +7314,53 @@ msgstr "Mitä kieliä tässä viestissä käytetään?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Mitä kieliä haluaisit nähdä algoritmisissä syötteissä?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "Kuka voi vastata" -#: src/screens/Home/NoFeedsPinned.tsx:92 +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "" + +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "Miksi tämä sisältö tulisi arvioida?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "Miksi tämä syöte tulisi arvioida?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "Miksi tämä lista tulisi arvioida?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "Miksi tämä viesti tulisi arvioida?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "Miksi tämä käyttäjä tulisi arvioida?" @@ -5927,39 +7368,61 @@ msgstr "Miksi tämä käyttäjä tulisi arvioida?" msgid "Wide" msgstr "Leveä" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "Kirjoita viesti" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "Kirjoita vastauksesi" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "Kirjoittajat" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "Kyllä" -#: src/components/dms/MessageItem.tsx:158 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "" + +#: src/components/dms/MessageItem.tsx:182 msgid "Yesterday, {time}" msgstr "" -#: src/screens/Deactivated.tsx:136 +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "Olet jonossa." @@ -5967,29 +7430,49 @@ msgstr "Olet jonossa." msgid "You are not following anyone." msgstr "Et seuraa ketään." -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "Voit myös selata uusia mukautettuja syötteitä seurattavaksi." +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." -msgstr "Voit muuttaa näitä asetuksia myöhemmin." +#~ msgid "You can change these settings later." +#~ msgstr "Voit muuttaa näitä asetuksia myöhemmin." + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "" + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." msgstr "Voit nyt kirjautua sisään uudella salasanallasi." +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "Sinulla ei ole kyhtään seuraajaa." +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Sinulla ei ole vielä kutsukoodia! Lähetämme sinulle sellaisen, kun olet ollut Bluesky-palvelussa hieman pidempään." -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." msgstr "Sinulla ei ole kiinnitettyjä syötteitä." @@ -5997,28 +7480,32 @@ msgstr "Sinulla ei ole kiinnitettyjä syötteitä." #~ msgid "You don't have any saved feeds!" #~ msgstr "Sinulla ei ole tallennettuja syötteitä!" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." msgstr "Sinulla ei ole tallennettuja syötteitä." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Olet estänyt tekijän tai sinut on estetty tekijän toimesta." +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "Olet estänyt tämän käyttäjän. Et voi nähdä hänen sisältöä." #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Olet syöttänyt virheellisen koodin. Sen tulisi näyttää muodoltaan XXXXX-XXXXX." -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "Olet piilottanut tämän viestin" @@ -6027,32 +7514,36 @@ msgid "You have hidden this post." msgstr "Olet piilottanut tämän viestin." #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "Olet hiljentänyt tämän käyttäjätilin." -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "Olet hiljentänyt tämän käyttäjän" -#: src/view/com/feeds/ProfileFeedgens.tsx:144 +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "" + +#: src/view/com/feeds/ProfileFeedgens.tsx:137 msgid "You have no feeds." msgstr "Sinulla ei ole syötteitä." -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." msgstr "Sinulla ei ole listoja." #: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "" +#~ msgid "You have no messages yet. Start a conversation with someone!" +#~ msgstr "" #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "Et ole vielä estänyt yhtään käyttäjää. Estääksesi käyttäjän, siirry heidän profiiliinsa ja valitse \"Estä käyttäjä\"-vaihtoehto valikosta." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Et ole vielä luonut yhtään sovelluksen salasanaa. Voit luoda sellaisen painamalla alla olevaa painiketta." @@ -6060,35 +7551,67 @@ msgstr "Et ole vielä luonut yhtään sovelluksen salasanaa. Voit luoda sellaise msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "Et ole hiljentänyt vielä yhtään käyttäjää. Hiljentääksesi käyttäjän, mene hänen profiiliin ja valitse \"Hiljennä käyttäjä\" valikosta." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Et ole vielä hiljentänyt yhtään sanaa tai aihetunnistetta" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Voit valittaa näistä merkinnöistä, jos ne ovat mielestäsi virheellisiä." +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "" + #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "Sinun on oltava vähintään 13-vuotias rekisteröityäksesi." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" -msgstr "Sinun on oltava vähintään 18-vuotias katsoaksesi aikuissisältöä" +#~ msgid "You must be 18 years or older to enable adult content" +#~ msgstr "Sinun on oltava vähintään 18-vuotias katsoaksesi aikuissisältöä" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "" + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "Et enää saa ilmoituksia tästä keskustelusta" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "Saat nyt ilmoituksia tästä keskustelusta" @@ -6096,60 +7619,98 @@ msgstr "Saat nyt ilmoituksia tästä keskustelusta" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Saat sähköpostin \"nollauskoodin\". Syötä koodi tähän ja syötä sitten uusi salasanasi." -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" msgstr "" -#: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "Sinulla on ohjat" +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" +msgstr "" + +#: src/screens/Onboarding/StepModeration/index.tsx:60 +#~ msgid "You're in control" +#~ msgstr "Sinulla on ohjat" + +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "Olet jonossa" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "" + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "Olet valmis aloittamaan!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "Olet halunnut piilottaa sanan tai aihetunnisteen tässä viestissä" -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Olet saavuttanut syötteesi lopun! Etsi lisää käyttäjiä seurattavaksi." -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "Käyttäjätilisi" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "Käyttäjätilisi on poistettu" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "Käyttäjätilisi arkisto, joka sisältää kaikki julkiset tietueet, voidaan ladata \"CAR\"-tiedostona. Tämä tiedosto ei sisällä upotettuja mediaelementtejä, kuten kuvia, tai yksityisiä tietojasi, jotka on haettava erikseen." -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "Syntymäaikasi" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "Valintasi tallennetaan, mutta sitä voit muuttaa myöhemmin asetuksissa." #: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "Oletussyötteesi on \"Following\"" +#~ msgid "Your default feed is \"Following\"" +#~ msgstr "Oletussyötteesi on \"Following\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "Sähköpostiosoitteesi näyttää olevan virheellinen." @@ -6161,11 +7722,15 @@ msgstr "Sähköpostiosoitteesi on päivitetty, mutta sitä ei ole vielä vahvist msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Sähköpostiosoitettasi ei ole vielä vahvistettu. Tämä on tärkeä turvatoimi, jonka suosittelemme suorittamaan." -#: src/view/com/posts/FollowingEmptyState.tsx:47 +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:43 msgid "Your following feed is empty! Follow more users to see what's happening." msgstr "Seuraamiesi syöte on tyhjä! Seuraa lisää käyttäjiä nähdäksesi, mitä tapahtuu." -#: src/screens/Signup/StepHandle.tsx:73 +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "Käyttäjätunnuksesi tulee olemaan" @@ -6177,30 +7742,34 @@ msgstr "Käyttäjätunnuksesi tulee olemaan <0>@{0}" msgid "Your muted words" msgstr "Hiljentämäsi sanat" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "Salasanasi on vaihdettu onnistuneesti!" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "Viestisi on julkaistu" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Julkaisusi, tykkäyksesi ja estosi ovat julkisia. Hiljennykset ovat yksityisiä." -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "Profiilisi" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "" + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "Vastauksesi on julkaistu" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" msgstr "" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "Käyttäjätunnuksesi" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 777023e0f7..c8714c5719 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -8,200 +8,254 @@ msgstr "" "Language: fr\n" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-04-22 15:00+0100\n" +"PO-Revision-Date: 2024-07-12 14:40+0100\n" "Last-Translator: surfdude29\n" "Language-Team: Stanislas Signoud (@signez.fr), surfdude29\n" "Plural-Forms: \n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "(contient du contenu intégré)" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(pas d’e-mail)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" -msgstr "" +msgstr "{0, plural, one {{formattedCount} autre} other {{formattedCount} autres}}" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" -msgstr "" +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" +msgstr "{0, plural, one {# étiquette a été placée sur ce compte} other {# étiquettes ont été placées sur ce compte}}" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" -msgstr "" +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" +msgstr "{0, plural, one {# étiquette a été placée sur ce contenu} other {# étiquettes ont été placées sur ce contenu}}" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" -msgstr "" +msgstr "{0, plural, one {# repost} other {# reposts}}" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" -msgstr "" +msgstr "{0, plural, one {abonné·e} other {abonné·e·s}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" -msgstr "" +msgstr "{0, plural, one {abonnement} other {abonnements}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" -msgstr "" +msgstr "{0, plural, one {Liker (# like)} other {Liker (# likes)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" -msgstr "" +msgstr "{0, plural, one {like} other {likes}}" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{0, plural, one {Liké par # compte} other {Liké par # comptes}}" #: src/screens/Profile/Header/Metrics.tsx:59 msgid "{0, plural, one {post} other {posts}}" -msgstr "" +msgstr "{0, plural, one {post} other {posts}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" -msgstr "" +msgstr "{0, plural, one {Répondre (# réponse)} other {Répondre (# réponses)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" -msgstr "" +msgstr "{0, plural, one {repost} other {reposts}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" -msgstr "" +msgstr "{0, plural, one {Déliker (# like)} other {Déliker (# likes)}}" -#: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" -msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "{0} personnes se sont inscrites cette semaine" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "{0} personnes ont utilisé ce kit de démarrage !" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "Avatar de {0}" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "Les fils d’actu et les personnes préférées de {0} – faites comme moi !" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" +msgstr "Kit de démarrage de {0}" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{count, plural, one {Liké par # compte} other {Liké par # comptes}}" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "{diff, plural, one {jour} other {jours}}" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "{diff, plural, one {heure} other {heures}}" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "{diff, plural, one {minute} other {minutes}}" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "{diff, plural, one {mois} other {mois}}" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "{diffSeconds, plural, one {seconde} other {secondes}}" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "Kit de démarrage de {displayName}" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" -msgstr "" +msgstr "{estimatedTimeHrs, plural, one {heure} other {heures}}" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" -msgstr "" +msgstr "{estimatedTimeMins, plural, one {minute} other {minutes}}" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} abonnements" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 -msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "{handle} ne peut être contacté par message" -#: src/view/shell/Drawer.tsx:461 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 +msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" +msgstr "{likeCount, plural, one {Liké par # compte} other {Liké par # comptes}}" + +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} non lus" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "{profileName} a rejoint Bluesky il y a {0}" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "{profileName} a rejoint Bluesky en utilisant un kit de démarrage il y a {0}" + #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" -msgstr "" +msgstr "{value, plural, =0 {Voir toutes les réponses} one {Voir les réponses avec au moins # like} other {Voir les réponses avec au moins # likes}}" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "<0/> membres" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}, <1>{1} et {2, plural, one {# autre} other {# autres}} font partie de votre kit de démarrage" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}, <1>{1} et {2, plural, one {# autre} other {# autres}} sont inclus dans votre kit de démarrage" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" -msgstr "" +msgstr "<0>{0} {1, plural, one {abonné·e} other {abonné·e·s}}" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" -msgstr "" +msgstr "<0>{0} {1, plural, one {abonnement} other {abonnements}}" -#: src/view/shell/Drawer.tsx:96 -#~ msgid "<0>{0} following" -#~ msgstr "<0>{0} abonnements" +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "<0>{0} et<1> <2>{1} faites partie de votre pack de démarrage" -#: src/components/ProfileHoverCard/index.web.tsx:437 -#~ msgid "<0>{followers} <1>{pluralizedFollowers}" -#~ msgstr "<0>{followers} <1>{pluralizedFollowers}" - -#: src/components/ProfileHoverCard/index.web.tsx:449 -#: src/screens/Profile/Header/Metrics.tsx:45 -#~ msgid "<0>{following} <1>following" -#~ msgstr "<0>{following} <1>abonnements" - -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:31 -#~ msgid "<0>Choose your<1>Recommended<2>Feeds" -#~ msgstr "<0>Choisissez vos<1>fils d’actu<2>recommandés" - -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:38 -#~ msgid "<0>Follow some<1>Recommended<2>Users" -#~ msgstr "<0>Suivre certains<1>comptes<2>recommandés" +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "<0>{0} fait partie de votre kit de démarrage" #: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." -msgstr "" +msgstr "<0>Pas applicable. Cet avertissement est seulement disponible pour les posts qui ont des médias qui leur sont attachés." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:21 -#~ msgid "<0>Welcome to<1>Bluesky" -#~ msgstr "<0>Bienvenue sur<1>Bluesky" +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "<0>Vous et<1> <2>{0} faites partie de votre pack de démarrage" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "⚠Pseudo invalide" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" -msgstr "" +msgstr "Confirmation 2FA" -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "Une infobulle d’aide" + +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "Accède aux liens de navigation et aux paramètres" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "Accède au profil et aux autres liens de navigation" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "Accessibilité" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" -msgstr "" +msgstr "Paramètres d’accessibilité" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" -msgstr "" +msgstr "Paramètres d’accessibilité" -#: src/components/moderation/LabelsOnMe.tsx:42 -#~ msgid "account" -#~ msgstr "compte" - -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "Compte" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "Compte bloqué" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "Compte suivi" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "Compte masqué" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "Compte masqué" @@ -217,37 +271,46 @@ msgstr "Options de compte" msgid "Account removed from quick access" msgstr "Compte supprimé de l’accès rapide" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "Compte débloqué" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "Compte désabonné" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "Compte démasqué" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "Ajouter" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "Ajouter {0} autres pour continuer" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "Ajouter {displayName} au kit de démarrage" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Ajouter un avertissement sur le contenu" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "Ajouter un compte à cette liste" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "Ajouter un compte" @@ -256,28 +319,16 @@ msgstr "Ajouter un compte" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Ajouter un texte alt" -#: src/view/com/composer/GifAltText.tsx:175 -#~ msgid "Add ALT text" -#~ msgstr "" - -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Ajouter un mot de passe d’application" -#: src/view/com/composer/Composer.tsx:467 -#~ msgid "Add link card" -#~ msgstr "Ajouter une carte de lien" - -#: src/view/com/composer/Composer.tsx:472 -#~ msgid "Add link card:" -#~ msgstr "Ajouter une carte de lien :" - #: src/components/dialogs/MutedWords.tsx:157 msgid "Add mute word for configured settings" msgstr "Ajouter un mot masqué pour les paramètres configurés" @@ -286,65 +337,90 @@ msgstr "Ajouter un mot masqué pour les paramètres configurés" msgid "Add muted words and tags" msgstr "Ajouter des mots et des mots-clés masqués" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" -msgstr "" +msgstr "Ajouter les fils d’actu recommandés" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" +msgstr "Ajoutez des fils d’actu à votre kit de démarrage !" + +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" -msgstr "" +msgstr "Ajouter le fil d’actu par défaut avec seulement les comptes que vous suivez" #: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Ajoutez l’enregistrement DNS suivant à votre domaine :" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "Ajouter ce fil à vos fils d’actu" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "Ajouter aux listes" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" msgstr "Ajouter à mes fils d’actu" -#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:139 -#~ msgid "Added" -#~ msgstr "Ajouté" - -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "Ajouté à la liste" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" msgstr "Ajouté à mes fils d’actu" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Définissez le nombre de likes qu’une réponse doit avoir pour être affichée dans votre fil d’actu." #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Contenu pour adultes" +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "Le contenu pour adultes ne peut être activé que via le Web sur <0>bsky.app." + #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." msgstr "Le contenu pour adultes est désactivé." -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "Avancé" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "Entraînement de l’algorithme terminé !" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "Tous les comptes ont été suivis !" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." msgstr "Tous les fils d’actu que vous avez enregistrés, au même endroit." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "Autoriser l’accès à vos messages privés" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "Autoriser les nouveaux messages de" + #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "Avez-vous déjà un code ?" @@ -354,23 +430,23 @@ msgstr "Déjà connecté·e en tant que @{0}" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" -msgstr "Texte Alt" +msgstr "Texte alt" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" -msgstr "" +msgstr "Texte alt" #: src/view/com/composer/photos/Gallery.tsx:224 msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." -msgstr "Le texte Alt décrit les images pour les personnes aveugles et malvoyantes, et aide à donner un contexte à tout le monde." +msgstr "Le texte alt décrit les images pour les personnes aveugles et malvoyantes, et aide à donner un contexte à tout le monde." #: src/view/com/modals/VerifyEmail.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 @@ -381,117 +457,149 @@ msgstr "Un e-mail a été envoyé à {0}. Il comprend un code de confirmation qu msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Un e-mail a été envoyé à votre ancienne adresse, {0}. Il comprend un code de confirmation que vous pouvez saisir ici." -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" -msgstr "" +msgstr "Une erreur s’est produite" -#: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." -msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" +msgstr "Une erreur s’est produite lors de la génération de votre kit de démarrage. Vous voulez réessayer ?" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "Une erreur s’est produite lors de l’enregistrement du code QR !" + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "Une erreur s’est produite en essayant de suivre tous les comptes" + +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "Un problème qui ne fait pas partie de ces options" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Un problème est survenu, veuillez réessayer." -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" -msgstr "" +msgstr "une erreur inconnue s’est produite" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "et" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "Animaux" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" -msgstr "" +msgstr "GIF animé" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "Comportement antisocial" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "Langue de l’application" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Mot de passe d’application supprimé" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "Les noms de mots de passe d’application ne peuvent contenir que des lettres, des chiffres, des espaces, des tirets et des tirets bas." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "Les noms de mots de passe d’application doivent comporter au moins 4 caractères." -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "Paramètres de mot de passe d’application" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "Mots de passe d’application" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "Faire appel" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "Faire appel de l’étiquette « {0} »" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" -msgstr "" +msgstr "Appel soumis" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 -#~ msgid "Appeal submitted." -#~ msgstr "Appel soumis." +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "Faire appel de cette décision" -#: src/view/screens/Settings/index.tsx:430 +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "Affichage" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" -msgstr "" +msgstr "Utiliser les fils d’actu recommandés par défaut" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Êtes-vous sûr de vouloir supprimer le mot de passe de l’application « {name} » ?" -#: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." -msgstr "" +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." +msgstr "Êtes-vous sûr de vouloir supprimer ce message ? Ce message sera supprimé pour vous, mais pas pour l’autre personne." -#: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." -msgstr "" +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" +msgstr "Êtes-vous sûr de vouloir supprimer ce kit de démarrage ?" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." +msgstr "Êtes-vous sûr de vouloir partir de cette conversation ? Vos messages seront supprimés pour vous, mais pas pour l’autre personne." + +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Êtes-vous sûr de vouloir supprimer {0} de vos fils d’actu ?" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "Êtes-vous sûr de vouloir supprimer cela de vos fils d’actu ?" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "Êtes-vous sûr de vouloir rejeter ce brouillon ?" @@ -503,7 +611,8 @@ msgstr "Vous confirmez ?" msgid "Are you writing in <0>{0}?" msgstr "Écrivez-vous en <0>{0} ?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "Art" @@ -511,32 +620,31 @@ msgstr "Art" msgid "Artistic or non-erotic nudity." msgstr "Nudité artistique ou non érotique." -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "Au moins 3 caractères" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "Arrière" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "En fonction de votre intérêt pour {interestsText}" - -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "Principes de base" @@ -544,56 +652,56 @@ msgstr "Principes de base" msgid "Birthday" msgstr "Date de naissance" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "Date de naissance :" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "Bloquer" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" -msgstr "" +msgstr "Bloquer le compte" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "Bloquer ce compte" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "Bloquer ce compte ?" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "Bloquer ces comptes" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "Liste de blocage" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "Bloquer ces comptes ?" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "Bloqué" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "Comptes bloqués" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "Comptes bloqués" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Les comptes bloqués ne peuvent pas répondre à vos discussions, vous mentionner ou interagir avec vous." @@ -601,19 +709,19 @@ msgstr "Les comptes bloqués ne peuvent pas répondre à vos discussions, vous m msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Les comptes bloqués ne peuvent pas répondre à vos discussions, vous mentionner ou interagir avec vous. Vous ne verrez pas leur contenu et ils ne pourront pas voir le vôtre." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "Post bloqué." -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Le blocage n’empêche pas cet étiqueteur de placer des étiquettes sur votre compte." -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Le blocage est public. Les comptes bloqués ne peuvent pas répondre à vos discussions, vous mentionner ou interagir avec vous." -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." msgstr "Le blocage n’empêchera pas les étiquettes d’être appliquées à votre compte, mais il empêchera ce compte de répondre à vos discussions ou d’interagir avec vous." @@ -630,22 +738,15 @@ msgstr "Bluesky" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "Bluesky est un réseau ouvert où vous pouvez choisir votre hébergeur. L’auto-hébergement est désormais disponible en version bêta pour les développeurs." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 -#~ msgid "Bluesky is flexible." -#~ msgstr "Bluesky est adaptable." +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "Bluesky est meilleur entre ami·e·s !" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 -#~ msgid "Bluesky is open." -#~ msgstr "Bluesky est ouvert." +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "Bluesky choisira un ensemble de comptes recommandés parmi les personnes de votre réseau." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 -#~ msgid "Bluesky is public." -#~ msgstr "Bluesky est public." - -#: src/screens/Moderation/index.tsx:533 +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky n’affichera pas votre profil et vos posts à des personnes non connectées. Il est possible que d’autres applications n’honorent pas cette demande. Cela ne privatise pas votre compte." @@ -657,36 +758,47 @@ msgstr "Flouter les images" msgid "Blur images and filter from feeds" msgstr "Flouter les images et les filtrer des fils d’actu" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "Livres" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" +msgstr "Parcourir d’autres comptes sur la page « Explore »" + +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "Parcourir d’autres fils d’actu sur la page « Explore »" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "Parcourir d’autres suggestions" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "Parcourir d’autres suggestions sur la page « Explore »" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 msgid "Browse other feeds" -msgstr "" +msgstr "Parcourir d’autres fils d’actu" #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "Affaires" -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "par —" -#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:100 -#~ msgid "by {0}" -#~ msgstr "par {0}" - #: src/components/LabelingServiceCard/index.tsx:56 msgid "By {0}" msgstr "Par {0}" -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" - -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "par <0/>" @@ -694,7 +806,7 @@ msgstr "par <0/>" msgid "By creating an account you agree to the {els}." msgstr "En créant un compte, vous acceptez les {els}." -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "par vous" @@ -702,7 +814,7 @@ msgstr "par vous" msgid "Camera" msgstr "Caméra" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Ne peut contenir que des lettres, des chiffres, des espaces, des tirets et des tirets bas. La longueur doit être d’au moins 4 caractères, mais pas plus de 32." @@ -710,14 +822,15 @@ msgstr "Ne peut contenir que des lettres, des chiffres, des espaces, des tirets #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -725,23 +838,23 @@ msgstr "Ne peut contenir que des lettres, des chiffres, des espaces, des tirets #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "Annuler" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "Annuler" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "Annuler la suppression de compte" @@ -757,12 +870,16 @@ msgstr "Annuler le recadrage de l’image" msgid "Cancel profile editing" msgstr "Annuler la modification du profil" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "Annuler la citation" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "Annuler la réactivation et se déconnecter" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "Annuler la recherche" @@ -774,17 +891,17 @@ msgstr "Annule l’ouverture du site web lié" msgid "Change" msgstr "Modifier" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "Modifier" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "Modifier le pseudo" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "Modifier le pseudo" @@ -792,12 +909,12 @@ msgstr "Modifier le pseudo" msgid "Change my email" msgstr "Modifier mon e-mail" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "Modifier le mot de passe" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "Modifier le mot de passe" @@ -809,103 +926,113 @@ msgstr "Modifier la langue de post en {0}" msgid "Change Your Email" msgstr "Modifier votre e-mail" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" -msgstr "" +msgstr "Discussions" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" -msgstr "" +msgstr "Discussion masquée" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" -msgstr "" +msgstr "Paramètres de discussion" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "Paramètres de discussion" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" -msgstr "" +msgstr "Discussion réaffichée" -#: src/screens/Messages/Conversation/index.tsx:26 -#~ msgid "Chat with {chatId}" -#~ msgstr "" - -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "Vérifier mon statut" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:122 -#~ msgid "Check out some recommended feeds. Tap + to add them to your list of pinned feeds." -#~ msgstr "Consultez quelques fils d’actu recommandés. Appuyez sur + pour les ajouter à votre liste de fils d’actu." - -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:186 -#~ msgid "Check out some recommended users. Follow them to see similar users." -#~ msgstr "Consultez quelques comptes recommandés. Suivez-les pour voir des personnes similaires." - -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." -msgstr "" +msgstr "Vérifiez votre boîte e-mail pour un code de connexion et saisissez-le ici." -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Consultez votre boîte de réception, vous avez du recevoir un e-mail contenant un code de confirmation à saisir ci-dessous :" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "Choisir « Tout le monde » ou « Personne »" +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "Choisissez 3 ou plus :" + +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "Choisissez au moins {0} de plus" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "Choisissez des fils d’actu" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "Choisir pour moi" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "Choisissez des personnes" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "Choisir un service" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." msgstr "Choisissez les algorithmes qui alimentent vos fils d’actu personnalisés." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 -#~ msgid "Choose the algorithms that power your experience with custom feeds." -#~ msgstr "Choisissez les algorithmes qui alimentent votre expérience avec des fils d’actu personnalisés." - #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 msgid "Choose this color as your avatar" -msgstr "" +msgstr "Choisir cette couleur comme avatar" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "Choisissez vos principaux fils d’actu" +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" +msgstr "Choisissez qui peut répondre" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "Choisissez votre mot de passe" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "Effacer toutes les données de stockage existantes" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "Effacer toutes les données de stockage existantes (redémarrer ensuite)" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "Effacer toutes les données de stockage" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "Effacer toutes les données de stockage (redémarrer ensuite)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "Effacer la recherche" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "Efface toutes les données de stockage existantes" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "Efface toutes les données de stockage" @@ -913,31 +1040,45 @@ msgstr "Efface toutes les données de stockage" msgid "click here" msgstr "cliquez ici" -#: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." -msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" +msgstr "Cliquez ici pour plus d’informations sur la désactivation de votre compte" + +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "Cliquez ici pour plus d’informations." #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Cliquez ici pour ouvrir le menu de mot-clé pour {tag}" -#: src/components/RichText.tsx:198 -#~ msgid "Click here to open tag menu for #{tag}" -#~ msgstr "Cliquez ici pour ouvrir le menu de mot-clé pour #{tag}" +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "Cliquer pour réessayer l’envoi échoué du message" -#: src/screens/Onboarding/index.tsx:47 +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "Climat" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "Cataclop 🐴 cataclop 🐴" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "Fermer" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "Fermer le dialogue actif" @@ -949,13 +1090,14 @@ msgstr "Fermer l’alerte" msgid "Close bottom drawer" msgstr "Fermer le tiroir du bas" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" -msgstr "" +msgstr "Fermer le dialogue" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" -msgstr "" +msgstr "Fermer le dialogue des GIFs" #: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" @@ -965,6 +1107,10 @@ msgstr "Fermer l’image" msgid "Close image viewer" msgstr "Fermer la visionneuse d’images" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "Fermer la modale" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "Fermer le pied de page de navigation" @@ -982,7 +1128,7 @@ msgstr "Ferme la barre de navigation du bas" msgid "Closes password update alert" msgstr "Ferme la notification de mise à jour du mot de passe" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "Ferme la fenêtre de rédaction et supprime le brouillon" @@ -990,43 +1136,45 @@ msgstr "Ferme la fenêtre de rédaction et supprime le brouillon" msgid "Closes viewer for header image" msgstr "Ferme la visionneuse pour l’image d’en-tête" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "Fermer la liste des comptes" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "Réduit la liste des comptes pour une notification donnée" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "Comédie" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "Bandes dessinées" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Directives communautaires" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "Terminez le didacticiel et commencez à utiliser votre compte" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "Compléter le défi" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Permet d’écrire des posts de {MAX_GRAPHEME_LENGTH} caractères maximum" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "Rédiger une réponse" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "Configurer les paramètres de filtrage de contenu pour la catégorie : {0}" - #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" msgstr "Configure les paramètres de filtrage de contenu pour la catégorie : {name}" @@ -1035,13 +1183,11 @@ msgstr "Configure les paramètres de filtrage de contenu pour la catégorie : { msgid "Configured in <0>moderation settings." msgstr "Configuré dans <0>les paramètres de modération." -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -1056,66 +1202,62 @@ msgstr "Confirmer le changement" msgid "Confirm content language settings" msgstr "Confirmer les paramètres de langue" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "Confirmer la suppression du compte" -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "Confirmez votre âge :" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "Confirme votre date de naissance" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Code de confirmation" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "Connexion…" -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "Contacter le support" -#: src/components/moderation/LabelsOnMe.tsx:42 -#~ msgid "content" -#~ msgstr "contenu" - #: src/lib/moderation/useGlobalLabelStrings.ts:18 msgid "Content Blocked" msgstr "Contenu bloqué" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "Filtres de contenu" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "Langues du contenu" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "Contenu non disponible" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "Avertissement sur le contenu" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "Avertissements sur le contenu" @@ -1123,12 +1265,8 @@ msgstr "Avertissements sur le contenu" msgid "Context menu backdrop, click to close the menu." msgstr "Menu contextuel en arrière-plan, cliquez pour fermer le menu." -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "Continuer" @@ -1136,41 +1274,39 @@ msgstr "Continuer" msgid "Continue as {0} (currently signed in)" msgstr "Continuer comme {0} (actuellement connecté)" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "Poursuivre le fil de discussion…" + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "Passer à l’étape suivante" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "Passer à l’étape suivante" +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" +msgstr "Conversation supprimée" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" -msgstr "Passer à l’étape suivante sans suivre aucun compte" - -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "Cuisine" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Copié" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "Version de build copiée dans le presse-papier" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "Copié dans le presse-papier" @@ -1178,11 +1314,12 @@ msgstr "Copié dans le presse-papier" msgid "Copied!" msgstr "Copié !" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Copie le mot de passe d’application" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Copier" @@ -1195,64 +1332,90 @@ msgstr "Copier {0}" msgid "Copy code" msgstr "Copier ce code" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "Copier le lien" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "Copier le lien" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "Copier le lien vers la liste" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "Copier le lien vers le post" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" -msgstr "" +msgstr "Copier le texte du message" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "Copier le texte du post" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "Copier le code QR" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Politique sur les droits d’auteur" -#: src/components/dms/ConvoMenu.tsx:80 -msgid "Could not leave chat" -msgstr "" +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" +msgstr "Impossible de compresser la vidéo" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/components/dms/LeaveConvoPrompt.tsx:39 +msgid "Could not leave chat" +msgstr "Impossible de partir de la discussion" + +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" msgstr "Impossible de charger le fil d’actu" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "Impossible de charger la liste" -#: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "" - -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" -msgstr "" +msgstr "Impossible de masquer la discussion" -#: src/components/dms/ConvoMenu.tsx:68 -#~ msgid "Could not unmute chat" -#~ msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "Créer" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "Créer un nouveau compte" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "Créer un compte Bluesky" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "Créer un code QR pour un kit de démarrage" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "Créer un kit de démarrage" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "Créer un kit de démarrage pour moi" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "Créer un compte" @@ -1261,11 +1424,15 @@ msgstr "Créer un compte" msgid "Create an account" msgstr "Créer un compte" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" -msgstr "" +msgstr "Créer plutôt un avatar" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" +msgstr "Créer un autre" + +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Créer un mot de passe d’application" @@ -1274,19 +1441,16 @@ msgstr "Créer un mot de passe d’application" msgid "Create new account" msgstr "Créer un nouveau compte" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "Créer un rapport pour {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0} créé" -#: src/view/com/composer/Composer.tsx:469 -#~ msgid "Creates a card with a thumbnail. The card links to {url}" -#~ msgstr "Crée une carte avec une miniature. La carte pointe vers {url}" - -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "Culture" @@ -1299,8 +1463,8 @@ msgstr "Personnalisé" msgid "Custom domain" msgstr "Domaine personnalisé" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Les fils d’actu personnalisés élaborés par la communauté vous font vivre de nouvelles expériences et vous aident à trouver le contenu que vous aimez." @@ -1308,8 +1472,8 @@ msgstr "Les fils d’actu personnalisés élaborés par la communauté vous font msgid "Customize media from external sites." msgstr "Personnaliser les médias provenant de sites externes." -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "Sombre" @@ -1317,15 +1481,24 @@ msgstr "Sombre" msgid "Dark mode" msgstr "Mode sombre" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "Thème sombre" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "Date de naissance" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "Désactiver le compte" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "Désactiver mon compte" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" msgstr "Déboguer la modération" @@ -1333,80 +1506,97 @@ msgstr "Déboguer la modération" msgid "Debug panel" msgstr "Panneau de débug" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "Supprimer" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "Supprimer le compte" -#: src/view/com/modals/DeleteAccount.tsx:87 -#~ msgid "Delete Account" -#~ msgstr "Supprimer le compte" - -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" -msgstr "" +msgstr "Suppression du compte <0>« <1>{0}<2> »" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Supprimer le mot de passe de l’appli" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Supprimer le mot de passe de l’appli ?" -#: src/components/dms/MessageMenu.tsx:101 -msgid "Delete for me" -msgstr "" +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "Supprimer la déclaration d’ouverture aux discussions" -#: src/view/screens/ProfileList.tsx:466 +#: src/components/dms/MessageMenu.tsx:124 +msgid "Delete for me" +msgstr "Supprimer pour moi" + +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "Supprimer la liste" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" -msgstr "" +msgstr "Supprimer le message" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" -msgstr "" +msgstr "Supprimer le message pour moi" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "Supprimer mon compte" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "Supprimer mon compte…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "Supprimer le post" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "Supprimer le kit de démarrage" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "Supprimer le kit de démarrage ?" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "Supprimer cette liste ?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "Supprimer ce post ?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "Supprimé" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." msgstr "Post supprimé." -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "Supprime l’enregistrement de déclaration de discussion" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1414,65 +1604,79 @@ msgstr "Description" #: src/view/com/composer/GifAltText.tsx:140 msgid "Descriptive alt text" -msgstr "" +msgstr "Texte alt descriptif" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "Vous vouliez dire quelque chose ?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "Atténué" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "Les messages privés sont arrivés !" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" -msgstr "" +msgstr "Désactiver la lecture automatique des GIFs" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" -msgstr "" +msgstr "Désactiver le 2FA par e-mail" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" -msgstr "" - -#: src/view/screens/Settings/index.tsx:697 -#~ msgid "Disable haptics" -#~ msgstr "Désactiver l’haptique" - -#: src/view/screens/Settings/index.tsx:697 -#~ msgid "Disable vibrations" -#~ msgstr "Désactiver les vibrations" +msgstr "Désactiver le retour haptique" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "Désactivé" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" -msgstr "Ignorer" +msgstr "Abandonner" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "Abandonner le brouillon ?" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "Empêcher les applis de montrer mon compte aux personnes non connectées" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "« Discover » apprend quels sont les posts que vous aimez au fur et à mesure que vous naviguez." + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" msgstr "Découvrir des fils d’actu personnalisés" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "Découvrir de nouveaux fils d’actu" + +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "Découvrir de nouveaux fils d’actu" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "Annuler le guide de démarrage" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "Afficher des badges de texte alt plus grands" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "Afficher le nom" @@ -1489,7 +1693,7 @@ msgstr "Panneau DNS" msgid "Does not include nudity." msgstr "Ne comprend pas de nudité." -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "Ne commence pas ou ne se termine pas par un trait d’union" @@ -1503,30 +1707,27 @@ msgstr "Domaine vérifié !" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "Terminé" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "Terminer" @@ -1535,19 +1736,19 @@ msgstr "Terminer" msgid "Done{extraText}" msgstr "Terminé{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "Télécharger Bluesky" + +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "Télécharger le fichier CAR" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "Déposer pour ajouter des images" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "En raison des politiques d’Apple, le contenu pour adultes ne peut être activé que via le Web une fois l’inscription terminée." - #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "ex. alice" @@ -1568,19 +1769,19 @@ msgstr "ex. Artiste, amoureuse des chiens et lectrice passionnée." msgid "E.g. artistic nudes." msgstr "Ex. nus artistiques." -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "ex. Les meilleurs comptes" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "ex. Spammeurs" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "ex. Ces comptes qui ne ratent jamais leur coup." -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "ex. Les comptes qui répondent toujours avec des pubs." @@ -1588,32 +1789,45 @@ msgstr "ex. Les comptes qui répondent toujours avec des pubs." msgid "Each code works once. You'll receive more invite codes periodically." msgstr "Chaque code ne fonctionne qu’une seule fois. Vous recevrez régulièrement d’autres codes d’invitation." +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "Modifier" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "Modifier" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "Modifier l’avatar" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "Modifier les fils d’actu" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "Modifier l’image" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "Modifier les infos de la liste" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "Modifier la liste de modération" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" msgstr "Modifier mes fils d’actu" @@ -1621,25 +1835,32 @@ msgstr "Modifier mes fils d’actu" msgid "Edit my profile" msgstr "Modifier mon profil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "Modifier les personnes" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "Modifier le profil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "Modifier le profil" -#: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "Modifier les fils d’actu enregistrés" +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "Modifier le kit de démarrage" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "Modifier la liste de comptes" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "Modifier qui peut répondre" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "Modifier votre nom d’affichage" @@ -1648,18 +1869,27 @@ msgstr "Modifier votre nom d’affichage" msgid "Edit your profile description" msgstr "Modifier votre description de profil" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "Modifier votre kit de démarrage" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "Éducation" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "Choisissez soit « Tout le monde », soit « Personne »" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "E-mail" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" -msgstr "" +msgstr "2FA par e-mail désactivé" #: src/screens/Login/ForgotPasswordForm.tsx:99 msgid "Email address" @@ -1678,7 +1908,7 @@ msgstr "E-mail mis à jour" msgid "Email verified" msgstr "Adresse e-mail vérifiée" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "E-mail :" @@ -1687,8 +1917,8 @@ msgid "Embed HTML code" msgstr "Code HTML à intégrer" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" msgstr "Intégrer le post" @@ -1700,29 +1930,25 @@ msgstr "Intégrez ce post à votre site web. Il suffit de copier l’extrait sui msgid "Enable {0} only" msgstr "Activer {0} uniquement" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "Activer le contenu pour adultes" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "Activer le contenu pour adultes" - -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "Activer le contenu pour adultes dans vos fils d’actu" - #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 msgid "Enable external media" msgstr "Activer les médias externes" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "Activer les lecteurs médias pour" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "Activez ce paramètre pour ne voir que les réponses des personnes que vous suivez." @@ -1730,7 +1956,9 @@ msgstr "Activez ce paramètre pour ne voir que les réponses des personnes que v msgid "Enable this source only" msgstr "Active cette source uniquement" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "Activé" @@ -1738,7 +1966,11 @@ msgstr "Activé" msgid "End of feed" msgstr "Fin du fil d’actu" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "Fin de la fenêtre de la visite d’accueil. N’avancez pas. Au lieu de cela, revenez en arrière pour plus d’options, ou appuyez pour passer." + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Entrer un nom pour ce mot de passe d’application" @@ -1755,7 +1987,7 @@ msgstr "Saisir un mot ou un mot-clé" msgid "Enter Confirmation Code" msgstr "Entrer un code de confirmation" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "Saisissez le code que vous avez reçu pour modifier votre mot de passe." @@ -1772,7 +2004,7 @@ msgid "Enter your birth date" msgstr "Saisissez votre date de naissance" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "Entrez votre e-mail" @@ -1788,32 +2020,45 @@ msgstr "Entrez votre nouvelle e-mail ci-dessous." msgid "Enter your username and password" msgstr "Entrez votre pseudo et votre mot de passe" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" -msgstr "" +msgstr "Échec lors de la sauvegarde du fichier" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "Erreur de réception de la réponse captcha." -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "Erreur :" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "Tout le monde" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "Tout le monde peut répondre" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "Tout le monde" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "Mentions ou réponses excessives" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" -msgstr "" +msgstr "Messages excessifs ou non-sollicités" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "Sort du processus de suppression du compte" @@ -1829,8 +2074,8 @@ msgstr "Sort du processus de recadrage de l’image" msgid "Exits image view" msgstr "Sort de la vue de l’image" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "Sort de la saisie de la recherche" @@ -1838,11 +2083,19 @@ msgstr "Sort de la saisie de la recherche" msgid "Expand alt text" msgstr "Développer le texte alt" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "Développer la liste des comptes" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "Développe ou réduit le post complet auquel vous répondez" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "Médias explicites ou potentiellement dérangeants." @@ -1851,12 +2104,12 @@ msgstr "Médias explicites ou potentiellement dérangeants." msgid "Explicit sexual images." msgstr "Images sexuelles explicites." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "Exporter mes données" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "Exporter mes données" @@ -1866,149 +2119,188 @@ msgid "External Media" msgstr "Média externe" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "Les médias externes peuvent permettre à des sites web de collecter des informations sur vous et votre appareil. Aucune information n’est envoyée ou demandée tant que vous n’appuyez pas sur le bouton de lecture." -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "Préférences sur les médias externes" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "Préférences sur les médias externes" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "Échec de la création du mot de passe d’application." -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "Échec de la création du kit de démarrage" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "Échec de la création de la liste. Vérifiez votre connexion Internet et réessayez." -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" -msgstr "" +msgstr "Échec de la suppression du message" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "Échec de la suppression du post, veuillez réessayer" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "Échec de la suppression du kit de démarrage" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "Échec du chargement des fils d’actu" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" -msgstr "" +msgstr "Échec du chargement des GIFs" -#: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." -msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" +msgstr "Échec du chargement de l’historique" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:110 -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:143 -#~ msgid "Failed to load recommended feeds" -#~ msgstr "Échec du chargement des fils d’actu recommandés" +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "Échec du chargement des fils d’actu suggerés" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "Échec du chargement des suivis suggérés" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "Échec de l’enregistrement de l’image : {0}" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "Échec de l’envoi" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "Échec de l’envoi de l’appel, veuillez réessayer." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "Échec de l’activation ou désactivation du masquage du fil de discussion, veuillez réessayer" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "Échec de la mise à jour des fils d’actu" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "Échec de la mise à jour des paramètres" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "Fil d’actu" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "Fil d’actu par {0}" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "Fil d’actu hors ligne" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "Ajouter/enlever le fil d’actu" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "Feedback" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" msgstr "Fils d’actu" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:58 -#~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." -#~ msgstr "Les fils d’actu sont créés par d’autres personnes pour rassembler du contenu. Choisissez des fils d’actu qui vous intéressent." - -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Les fils d’actu sont des algorithmes personnalisés qui se construisent avec un peu d’expertise en programmation. <0/> pour plus d’informations." -#: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" -msgstr "Les fils d’actu peuvent également être thématiques !" +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" +msgstr "Fils d’actu mis à jour !" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Contenu du fichier" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" -msgstr "" +msgstr "Fichier sauvegardé avec succès !" #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Filtrer des fils d’actu" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "Finalisation" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "Trouver des comptes à suivre" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "Trouvez d’autres fils d’actu et comptes à suivre dans la page « Explore »." + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" -msgstr "" +msgstr "Trouver des posts et comptes sur Bluesky" -#: src/view/screens/Search/Search.tsx:589 -#~ msgid "Find users on Bluesky" -#~ msgstr "Trouver des comptes sur Bluesky" - -#: src/view/screens/Search/Search.tsx:587 -#~ msgid "Find users with the search tool on the right" -#~ msgstr "Trouvez des comptes à l’aide de l’outil de recherche, à droite" - -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 -#~ msgid "Finding similar accounts..." -#~ msgstr "Recherche de comptes similaires…" - -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." msgstr "Affine le contenu affiché sur votre fil d’actu « Following »." -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "Affine les fils de discussion." -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "Terminer" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "Terminer la visite et commencer à utiliser l’application" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "Fitness" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "Flexible" @@ -2021,112 +2313,156 @@ msgstr "Miroir horizontal" msgid "Flip vertically" msgstr "Miroir vertical" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "Suivre" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "Suivre" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Suivre {0}" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "Suivre {name}" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "Suivre 7 comptes" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "Suivre le compte" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" msgstr "Suivre tous" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "Suivre en retour" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" -msgstr "Suivre les comptes sélectionnés et passer à l’étape suivante" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "Suivez plus de comptes pour vous connecter à vos centres d’intérêt et développer votre réseau." -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:65 -#~ msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." -#~ msgstr "Suivez quelques comptes pour commencer. Nous pouvons vous recommander d’autres comptes en fonction des personnes qui vous intéressent." +#: src/view/com/profile/ProfileCard.tsx:190 +#~ msgid "Followed by {0}" +#~ msgstr "Suivi par {0}" -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" -msgstr "Suivi par {0}" +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" +msgstr "Suivi par <0>{0}" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "Suivi par <0>{0} et {1, plural, one {# autre} other {# autres}}" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "Suivi par <0>{0} et <1>{1}" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "Suivi par <0>{0}, <1>{1} et {2, plural, one {# autre} other {# autres}}" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "Comptes suivis" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "Comptes suivis uniquement" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "vous suit" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "vous a suivi" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Abonné·e·s" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "Abonné·e·s de @{0} que vous connaissez" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "Abonné·e·s que vous connaissez" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "Suivi" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" msgstr "Suit {0}" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "Suit {name}" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" msgstr "Préférences du fil d’actu « Following »" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" -msgstr "Préférences en matière de fil d’actu « Following »" +msgstr "Préférences du fil d’actu « Following »" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "« Following » affiche les derniers posts des personnes que vous suivez." + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "Vous suit" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "Vous suit" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "Nourriture" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Pour des raisons de sécurité, nous devrons envoyer un code de confirmation à votre e-mail." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Pour des raisons de sécurité, vous ne pourrez plus afficher ceci. Si vous perdez ce mot de passe, vous devrez en générer un autre." @@ -2135,15 +2471,15 @@ msgstr "Pour des raisons de sécurité, vous ne pourrez plus afficher ceci. Si v msgid "Forgot Password" msgstr "Mot de passe oublié" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "Mot de passe oublié ?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "Oublié ?" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "Publication fréquente de contenu indésirable" @@ -2151,7 +2487,7 @@ msgstr "Publication fréquente de contenu indésirable" msgid "From @{sanitizedAuthor}" msgstr "De @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "Tiré de <0/>" @@ -2160,48 +2496,77 @@ msgstr "Tiré de <0/>" msgid "Gallery" msgstr "Galerie" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "Générer un kit de démarrage" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "C’est parti" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "C’est parti" -#: src/screens/Onboarding/StepProfile/index.tsx:228 -msgid "Give your profile a face" -msgstr "" +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" +msgstr "Pour commencer" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "GIF" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 +msgid "Give your profile a face" +msgstr "Donner à votre profil un visage" + +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "Violations flagrantes de la loi ou des conditions d’utilisation" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "Retour" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "Retour" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:189 +#~ msgid "Go back to previous screen" +#~ msgstr "Retour à l’écran précédent" + +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "Retour à l’étape précédente" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "Retour à l’étape précédente" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "Accéder à l’accueil" @@ -2210,134 +2575,127 @@ msgstr "Accéder à l’accueil" msgid "Go Home" msgstr "Accéder à l’accueil" -#: src/view/screens/Search/Search.tsx:827 -#: src/view/shell/desktop/Search.tsx:263 -#~ msgid "Go to @{queryMaybeHandle}" -#~ msgstr "Aller à @{queryMaybeHandle}" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "Aller à la conversation avec {0}" #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "Aller à la suite" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" -msgstr "" +msgstr "Voir le profil" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" +msgstr "Passer à l’étape suivante de la visite" + +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" -msgstr "" +msgstr "Voir le profil du compte" #: src/lib/moderation/useGlobalLabelStrings.ts:46 msgid "Graphic Media" msgstr "Médias crus" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "On y est presque !" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Pseudo" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" -msgstr "" +msgstr "Haptiques" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "Harcèlement, trolling ou intolérance" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "Mot-clé" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "Mot-clé : #{tag}" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "Un souci ?" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "Aide" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." -msgstr "" +msgstr "Aidez les gens à savoir que vous n’êtes pas un bot en envoyant une image ou en créant un avatar." -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "Voici quelques comptes à suivre" - -#: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "Voici quelques fils d’actu thématiques populaires. Vous pouvez choisir d’en suivre autant que vous le souhaitez." - -#: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "Voici quelques fils d’actu thématiques basés sur vos centres d’intérêt : {interestsText}. Vous pouvez choisir d’en suivre autant que vous le souhaitez." - -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Voici le mot de passe de votre appli." -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "Cacher" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "Cacher" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "Cacher ce post" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "Cacher ce contenu" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "Cacher ce post ?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "Cacher la liste des comptes" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Hmm, un problème s’est produit avec le serveur de fils d’actu. Veuillez informer la personne propriétaire du fil d’actu de ce problème." -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Hmm, le serveur du fils d’actu semble être mal configuré. Veuillez informer la personne propriétaire du fil d’actu de ce problème." -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Hmm, le serveur de fils d’actu semble être hors ligne. Veuillez informer la personne propriétaire du fil d’actu de ce problème." -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Hmm, le serveur de fils d’actu ne répond pas. Veuillez informer la personne propriétaire du fil d’actu de ce problème." -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, nous n’arrivons pas à trouver ce fil d’actu. Il a peut-être été supprimé." -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." msgstr "Hmm, il semble que nous ayons des difficultés à charger ces données. Voir ci-dessous pour plus de détails. Si le problème persiste, veuillez nous contacter." @@ -2345,11 +2703,12 @@ msgstr "Hmm, il semble que nous ayons des difficultés à charger ces données. msgid "Hmmmm, we couldn't load that moderation service." msgstr "Hmm, nous n’avons pas pu charger ce service de modération." -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "Accueil" @@ -2358,8 +2717,8 @@ msgid "Host:" msgstr "Hébergeur :" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Hébergeur" @@ -2382,13 +2741,14 @@ msgstr "J’ai un code de confirmation" msgid "I have my own domain" msgstr "J’ai mon propre domaine" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" -msgstr "" +msgstr "Je comprends" #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" -msgstr "Si le texte alternatif est trop long, change son mode d’affichage" +msgstr "Si le texte alt est trop long, change son mode d’affichage" #: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." @@ -2398,43 +2758,55 @@ msgstr "Si rien n’est sélectionné, il n’y a pas de restriction d’âge." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Si vous n’êtes pas encore un adulte selon les lois de votre pays, vos parents ou votre tuteur légal doivent lire ces conditions en votre nom." -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "Si vous supprimez cette liste, vous ne pourrez pas la récupérer." -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "Si vous supprimez ce post, vous ne pourrez pas le récupérer." -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Si vous souhaitez modifier votre mot de passe, nous vous enverrons un code pour vérifier qu’il s’agit bien de votre compte." -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "Si vous essayez de changer de pseudo ou d’adresse e-mail, faites-le avant de désactiver votre compte." + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "Illégal et urgent" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "Image" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Texte alt de l’image" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "Image enregistrée dans votre photothèque !" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "Usurpation d’identité ou fausses déclarations concernant l’identité ou l’affiliation" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "Messages inappropriés ou liens explicites" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "Entrez le code envoyé à votre e-mail pour réinitialiser le mot de passe" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "Entrez le code de confirmation pour supprimer le compte" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Entrez le nom du mot de passe de l’appli" @@ -2442,23 +2814,19 @@ msgstr "Entrez le nom du mot de passe de l’appli" msgid "Input new password" msgstr "Entrez le nouveau mot de passe" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "Entrez le mot de passe pour la suppression du compte" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" -msgstr "" +msgstr "Entrez le code qui vous a été envoyé par e-mail" #: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "Entrez le mot de passe associé à {identifier}" - -#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "Entrez le pseudo ou l’adresse e-mail que vous avez utilisé lors de l’inscription" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "Entrez votre mot de passe" @@ -2466,20 +2834,24 @@ msgstr "Entrez votre mot de passe" msgid "Input your preferred hosting provider" msgstr "Entrez votre hébergeur préféré" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "Entrez votre pseudo" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "Et voici les Messages Privés" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." -msgstr "" +msgstr "Code de confirmation 2FA invalide." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "Enregistrement de post invalide ou non pris en charge" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "Pseudo ou mot de passe incorrect" @@ -2487,11 +2859,11 @@ msgstr "Pseudo ou mot de passe incorrect" msgid "Invite a Friend" msgstr "Inviter un ami" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "Code d’invitation" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Code d’invitation refusé. Vérifiez que vous l’avez saisi correctement et réessayez." @@ -2503,69 +2875,85 @@ msgstr "Code d’invitation : {0} disponible" msgid "Invite codes: 1 available" msgstr "Invitations : 1 code dispo" -#: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." -msgstr "Il affiche les posts des personnes que vous suivez au fur et à mesure qu’ils sont publiés." +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "Invitez les gens à ce kit de démarrage !" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "Invitez vos ami·e·s à suivre vos fils d’actu et vos personnes préférées" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "Invitations, mais personnelles" + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." +msgstr "Il n’y a que vous pour l’instant ! Ajoutez d’autres personnes à votre kit de démarrage en effectuant une recherche ci-dessus." #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "Emplois" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "Rejoignez Bluesky" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "Participez à la conversation" + +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "Journalisme" -#: src/components/moderation/LabelsOnMe.tsx:59 -#~ msgid "label has been placed on this {labelTarget}" -#~ msgstr "étiquette a été placée sur ce {labelTarget}" - -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "Étiqueté par {0}." -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "Étiqueté par l’auteur." -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "Étiquettes" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "Les étiquettes sont des annotations sur les comptes et le contenu. Elles peuvent être utilisées pour masquer, avertir et catégoriser le réseau." -#: src/components/moderation/LabelsOnMe.tsx:61 -#~ msgid "labels have been placed on this {labelTarget}" -#~ msgstr "étiquettes ont été placées sur ce {labelTarget}" - -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "Étiquettes sur votre compte" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "Étiquettes sur votre contenu" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "Sélection de la langue" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "Préférences de langue" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "Paramètres linguistiques" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "Langues" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "Dernier" @@ -2573,33 +2961,40 @@ msgstr "Dernier" msgid "Learn More" msgstr "En savoir plus" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "En savoir plus sur la modération appliquée à ce contenu." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "En savoir plus sur cet avertissement" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "En savoir plus sur ce qui est public sur Bluesky." -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "En savoir plus." -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" -msgstr "" +msgstr "Partir" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "Partir de la discussion" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" -msgstr "" +msgstr "Partir de la conversation" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." @@ -2609,39 +3004,49 @@ msgstr "Si vous ne cochez rien, toutes les langues s’afficheront." msgid "Leaving Bluesky" msgstr "Quitter Bluesky" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "devant vous dans la file." -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Stockage ancien effacé, vous devez redémarrer l’application maintenant." +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "Laissez-moi choisir" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "Réinitialisez votre mot de passe !" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "Allons-y !" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "Clair" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:197 -#~ msgid "Like" -#~ msgstr "Liker" +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "Liker 10 posts" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "Liker 10 posts pour former le fil d’actu « Discover »" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "Liker ce fil d’actu" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "Liké par" @@ -2651,89 +3056,92 @@ msgstr "Liké par" msgid "Liked By" msgstr "Liké par" -#: src/view/com/feeds/FeedSourceCard.tsx:268 -#~ msgid "Liked by {0} {1}" -#~ msgstr "Liké par {0} {1}" - -#: src/components/LabelingServiceCard/index.tsx:72 -#~ msgid "Liked by {count} {0}" -#~ msgstr "Liké par {count} {0}\"" - -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:287 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:301 -#: src/view/screens/ProfileFeed.tsx:600 -#~ msgid "Liked by {likeCount} {0}" -#~ msgstr "Liké par {likeCount} {0}" - -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" msgstr "liké votre fil d’actu personnalisé" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" msgstr "liké votre post" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "Likes" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "Likes sur ce post" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "Liste" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "Liste des avatars" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "Liste bloquée" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "Liste par {0}" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "Liste supprimée" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "Liste masquée" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "Nom de liste" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "Liste débloquée" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "Liste démasquée" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "Listes" -#: src/view/screens/Notifications.tsx:159 +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "Listes qui bloquent ce compte :" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "Charger plus" + +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "Charger d’autres fils d’actu suggérés" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "Charger d’autres suggestions de suivis" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "Charger les nouvelles notifications" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "Charger les nouveaux posts" @@ -2741,18 +3149,23 @@ msgstr "Charger les nouveaux posts" msgid "Loading..." msgstr "Chargement…" -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "Journaux" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "Se connecter ou s’inscrire" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "Déconnexion" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "Visibilité déconnectée" @@ -2760,9 +3173,9 @@ msgstr "Visibilité déconnectée" msgid "Login to account that is not listed" msgstr "Se connecter à un compte qui n’est pas listé" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" -msgstr "" +msgstr "Appuyer longtemps pour ouvrir le menu de mot-clé pour #{tag}" #: src/screens/Login/SetNewPasswordForm.tsx:116 msgid "Looks like XXXXX-XXXXX" @@ -2770,15 +3183,19 @@ msgstr "De la forme XXXXX-XXXXX" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." -msgstr "" +msgstr "On dirait que vous n’avez plus de fils d’actu enregistrés ! Utilisez nos recommandations ou parcourez en plus ci-dessous." -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" -msgstr "" +msgstr "On dirait que vous avez désépinglé tous vos fils d’actu. Mais pas d’inquiétudes : vous pouvez en ajouter ci-dessous 😄" -#: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." -msgstr "" +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "On dirait que vous n’avez plus de fil d’actu « Following ». <0>Cliquez ici pour en rajouter un." + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" +msgstr "En faire un pour moi" #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" @@ -2788,72 +3205,69 @@ msgstr "Assurez-vous que c’est bien là que vous avez l’intention d’aller msgid "Manage your muted words and tags" msgstr "Gérer les mots et les mots-clés masqués" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" -msgstr "" +msgstr "Marqué comme lu" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "Média" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "comptes mentionnés" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "Comptes mentionnés" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "Menu" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "Envoyer un message à {0}" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" -msgstr "" +msgstr "Message supprimé" #: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Message du serveur : {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" -msgstr "" +msgstr "Champ d’écriture du message" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" -msgstr "" +msgstr "Le message est trop long" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" -msgstr "" +msgstr "Paramètres des messages" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" -msgstr "" +msgstr "Messages" -#: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "" - -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "Compte trompeur" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "Modération" @@ -2861,56 +3275,57 @@ msgstr "Modération" msgid "Moderation details" msgstr "Détails de la modération" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" msgstr "Liste de modération par {0}" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "Liste de modération par <0/>" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "Liste de modération par vous" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "Liste de modération créée" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "Liste de modération mise à jour" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "Listes de modération" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Listes de modération" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "Paramètres de modération" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "États de modération" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "Outils de modération" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "La modération a choisi d’ajouter un avertissement général sur le contenu." -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "Plus" @@ -2918,14 +3333,22 @@ msgstr "Plus" msgid "More feeds" msgstr "Plus de fils d’actu" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "Plus d’options" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "Réponses les plus likées en premier" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "Cinéma" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "Musique" + #: src/components/TagMenu/index.tsx:249 msgid "Mute" msgstr "Masquer" @@ -2934,12 +3357,12 @@ msgstr "Masquer" msgid "Mute {truncatedTag}" msgstr "Masquer {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "Masquer le compte" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "Masquer les comptes" @@ -2947,6 +3370,11 @@ msgstr "Masquer les comptes" msgid "Mute all {displayTag} posts" msgstr "Masquer tous les posts {displayTag}" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "Masquer la conversation" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" msgstr "Masquer dans les mots-clés uniquement" @@ -2955,16 +3383,11 @@ msgstr "Masquer dans les mots-clés uniquement" msgid "Mute in text & tags" msgstr "Masquer dans le texte et les mots-clés" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "Masquer la liste" -#: src/components/dms/ConvoMenu.tsx:136 -#: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "" - -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "Masquer ces comptes ?" @@ -2976,25 +3399,25 @@ msgstr "Masquer ce mot dans le texte du post et les mots-clés" msgid "Mute this word in tags only" msgstr "Masquer ce mot dans les mots-clés uniquement" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" msgstr "Masquer ce fil de discussion" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "Masquer les mots et les mots-clés" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "Masqué" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "Comptes masqués" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "Comptes masqués" @@ -3003,15 +3426,15 @@ msgstr "Comptes masqués" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Les comptes masqués voient leurs posts supprimés de votre fil d’actu et de vos notifications. Cette option est totalement privée." -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "Masqué par « {0} »" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "Les mots et les mots-clés masqués" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Ce que vous masquez reste privé. Les comptes masqués peuvent interagir avec vous, mais vous ne verrez pas leurs posts et ne recevrez pas de notifications de leur part." @@ -3020,61 +3443,66 @@ msgstr "Ce que vous masquez reste privé. Les comptes masqués peuvent interagir msgid "My Birthday" msgstr "Ma date de naissance" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" msgstr "Mes fils d’actu" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "Mon profil" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" msgstr "Mes fils d’actu enregistrés" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" msgstr "Mes fils d’actu enregistrés" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "Nom" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "Le nom est requis" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "Nom ou description qui viole les normes communautaires" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "Nature" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "Navigue vers {0}" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "Navigue vers le kit de démarrage" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "Navigue vers le prochain écran" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "Navigue vers votre profil" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "Besoin de signaler une violation des droits d’auteur ?" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 -#~ msgid "Never lose access to your followers and data." -#~ msgstr "Ne perdez jamais l’accès à vos abonné·e·s et à vos données." - -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "Ne perdez jamais l’accès à vos abonné·e·s ou à vos données." @@ -3082,7 +3510,7 @@ msgstr "Ne perdez jamais l’accès à vos abonné·e·s ou à vos données." msgid "Nevermind, create a handle for me" msgstr "Peu importe, créez un pseudo pour moi" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "Nouveau" @@ -3091,88 +3519,97 @@ msgstr "Nouveau" msgid "New" msgstr "Nouveau" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" -msgstr "" +msgstr "Nouvelle discussion" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "Nouveaux messages" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "Nouvelle liste de modération" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "Nouveau mot de passe" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "Nouveau mot de passe" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "Nouveau post" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "Nouveau post" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "Nouveau post" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "Dialogue d’information sur un nouveau compte" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "Nouvelle liste de comptes" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "Réponses les plus récentes en premier" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "Actualités" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "Suivant" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:103 -#~ msgctxt "action" -#~ msgid "Next" -#~ msgstr "Suivant" - #: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "Image suivante" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "Non" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "Aucune description" @@ -3180,78 +3617,104 @@ msgstr "Aucune description" msgid "No DNS Panel" msgstr "Pas de panneau DNS" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." -msgstr "" +msgstr "Aucun GIFs vedettes à afficher. Il y a peut-être un souci chez Tenor." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "Aucun fil d’actu n’a été trouvé. Essayez de chercher autre chose." + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "Ne suit plus {0}" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "Pas plus de 253 caractères" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" -msgstr "" +msgstr "Pas encore de messages" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "Plus aucune conversation à afficher" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "Pas encore de notifications !" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "Personne" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "Pas encore de posts." + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Aucun résultat" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "Aucun résultat" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Aucun résultat trouvé" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "Aucun résultat trouvé pour « {query} »" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "Aucun résultat trouvé pour {query}" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." -msgstr "" - -#: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "" +msgstr "Pas de résultats pour « {search} »." #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "Non merci" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "Personne" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "Personne ne peut répondre" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "Personne n’a encore liké. Peut-être devriez-vous ouvrir la voie !" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "Personne n’a été trouvé. Essayez de chercher quelqu’un d’autre." + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "Nudité non sexuelle" -#: src/view/com/modals/SelfLabel.tsx:135 -#~ msgid "Not Applicable." -#~ msgstr "Sans objet." - -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "Introuvable" @@ -3260,57 +3723,83 @@ msgstr "Introuvable" msgid "Not right now" msgstr "Pas maintenant" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "Note sur le partage" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Remarque : Bluesky est un réseau ouvert et public. Ce paramètre limite uniquement la visibilité de votre contenu sur l’application et le site Web de Bluesky, et d’autres applications peuvent ne pas respecter ce paramètre. Votre contenu peut toujours être montré aux personnes non connectées par d’autres applications et sites Web." -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "Rien ici" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "Sons de notification" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "Sons de notification" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "Notifications" -#: src/components/dms/MessageItem.tsx:145 +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" +msgstr "maintenant" + +#: src/components/dms/MessageItem.tsx:169 msgid "Now" -msgstr "" +msgstr "Maintenant" #: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Nudité" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "Nudité ou contenu adulte non identifié comme tel" -#: src/screens/Signup/index.tsx:145 -#~ msgid "of" -#~ msgstr "sur" - #: src/lib/moderation/useLabelBehaviorDescription.ts:11 msgid "Off" msgstr "Éteint" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "Oh non !" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "Oh non ! Il y a eu un problème." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "OK" @@ -3318,107 +3807,143 @@ msgstr "OK" msgid "Okay" msgstr "D’accord" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "Plus anciennes réponses en premier" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "sur" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "le {str}" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "Réinitialiser le didacticiel" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "Étape de la visite d’accueil {0} : {1}" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "Une ou plusieurs images n’ont pas de texte alt." -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" -msgstr "" +msgstr "Seuls les fichiers .jpg et .png sont acceptés" -#: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." -msgstr "Seul {0} peut répondre." +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" +msgstr "Seul {0} peut répondre" -#: src/screens/Signup/StepHandle.tsx:98 +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "Ne contient que des lettres, des chiffres et des traits d’union" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Oups, quelque chose n’a pas marché !" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "Oups !" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "Ouvert" -#: src/screens/Onboarding/StepProfile/index.tsx:280 -msgid "Open avatar creator" -msgstr "" +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "Ouvre le menu de raccourci du profil de {name}" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Onboarding/StepProfile/index.tsx:277 +msgid "Open avatar creator" +msgstr "Ouvre le créateur d’avatar" + +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "Ouvrir les options de conversation" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "Ouvrir le sélecteur d’emoji" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "Ouvrir le menu des options de fil d’actu" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "Ouvrir des liens avec le navigateur interne à l’appli" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "Ouvrir les options de message" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "Ouvrir les paramètres des mots masqués et mots-clés" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "Navigation ouverte" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "Ouvrir le menu d’options du post" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "Ouvrir le menu du kit de démarrage" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "Ouvrir la page Storybook" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "Ouvrir le journal du système" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "Ouvre {numItems} options" -#: src/view/screens/Settings/index.tsx:501 -msgid "Opens accessibility settings" -msgstr "" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "Ouvre une boîte de dialogue permettant de choisir qui peut répondre à ce fil de discussion" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Settings/index.tsx:512 +msgid "Opens accessibility settings" +msgstr "Ouvre les paramètres d’accessibilité" + +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "Ouvre des détails supplémentaires pour une entrée de débug" -#: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "Ouvre une liste étendue des comptes dans cette notification" - #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "Ouvre l’appareil photo de l’appareil" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "Ouvre les paramètres de discussion" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "Ouvre le rédacteur" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "Ouvre les paramètres linguistiques configurables" @@ -3426,7 +3951,7 @@ msgstr "Ouvre les paramètres linguistiques configurables" msgid "Opens device photo gallery" msgstr "Ouvre la galerie de photos de l’appareil" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "Ouvre les paramètres d’intégration externe" @@ -3440,31 +3965,35 @@ msgstr "Ouvre le flux de création d’un nouveau compte Bluesky" msgid "Opens flow to sign into your existing Bluesky account" msgstr "Ouvre le flux pour vous connecter à votre compte Bluesky existant" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" -msgstr "" +msgstr "Ouvre la sélection de GIF" #: src/view/com/modals/InviteCodes.tsx:173 msgid "Opens list of invite codes" msgstr "Ouvre la liste des codes d’invitation" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "Ouvre la fenêtre modale pour confirmer la désactivation du compte" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Ouvre la fenêtre modale pour confirmer la suppression du compte. Requiert un code e-mail." -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "Ouvre une fenêtre modale pour changer le mot de passe de Bluesky" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Ouvre une fenêtre modale pour choisir un nouveau pseudo Bluesky" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Ouvre une fenêtre modale pour télécharger les données du compte Bluesky (dépôt)" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "Ouvre une fenêtre modale pour la vérification de l’e-mail" @@ -3472,28 +4001,23 @@ msgstr "Ouvre une fenêtre modale pour la vérification de l’e-mail" msgid "Opens modal for using custom domain" msgstr "Ouvre une fenêtre modale pour utiliser un domaine personnalisé" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" msgstr "Ouvre les paramètres de modération" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "Ouvre le formulaire de réinitialisation du mot de passe" -#: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "Ouvre l’écran pour modifier les fils d’actu enregistrés" - -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" msgstr "Ouvre l’écran avec tous les fils d’actu enregistrés" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "Ouvre les paramètres du mot de passe de l’application" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" msgstr "Ouvre les préférences du fil d’actu « Following »" @@ -3501,37 +4025,50 @@ msgstr "Ouvre les préférences du fil d’actu « Following »" msgid "Opens the linked website" msgstr "Ouvre le site web lié" -#: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "" - -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "Ouvre la page de l’historique" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "Ouvre la page du journal système" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "Ouvre les préférences relatives aux fils de discussion" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "Ouvre ce profil" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "Ouvre le sélecteur de vidéos" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "Option {0} sur {numItems}" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "Ajoutez des informations supplémentaires ci-dessous (optionnel) :" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "Ou une combinaison de ces options :" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "Ou continuer avec un autre compte." + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "Ou connectez-vous à l’un de vos autres comptes." + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "Autre" @@ -3539,11 +4076,15 @@ msgstr "Autre" msgid "Other account" msgstr "Autre compte" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "Autre…" -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "Notre modération a examiné les signalements qu’elle a reçu et a décidé de désactiver votre accès aux discussions sur Bluesky." + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Page introuvable" @@ -3552,14 +4093,14 @@ msgstr "Page introuvable" msgid "Page Not Found" msgstr "Page introuvable" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "Mot de passe" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "Mot de passe modifié" @@ -3571,62 +4112,76 @@ msgstr "Mise à jour du mot de passe" msgid "Password updated!" msgstr "Mot de passe mis à jour !" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" -msgstr "" +msgstr "Mettre en pause" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "Personnes" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "Personnes suivies par @{0}" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "Personnes qui suivent @{0}" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." msgstr "Permission d’accès à la pellicule requise." -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "Permission d’accès à la pellicule refusée. Veuillez l’activer dans les paramètres de votre système." -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "Ajouter/enlever per les personnes" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "Animaux domestiques" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "Photographie" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Images destinées aux adultes." -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "Ajouter à l’accueil" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "Ajouter à l’accueil" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "Fils épinglés" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "Épinglé à vos fils d’actu" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" -msgstr "" +msgstr "Lire" #: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:123 msgid "Play {0}" msgstr "Lire {0}" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" -msgstr "" +msgstr "Lire ou mettre en pause le GIF" #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:57 #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:58 @@ -3637,15 +4192,16 @@ msgstr "Lire la vidéo" msgid "Plays the GIF" msgstr "Lit le GIF" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "Veuillez choisir votre pseudo." -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "Veuillez choisir votre mot de passe." -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "Veuillez compléter le captcha de vérification." @@ -3653,11 +4209,11 @@ msgstr "Veuillez compléter le captcha de vérification." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Veuillez confirmer votre e-mail avant de le modifier. Ceci est temporairement requis pendant que des outils de mise à jour d’e-mail sont ajoutés, cette étape ne sera bientôt plus nécessaire." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Veuillez entrer un nom pour votre mot de passe d’application. Les espaces ne sont pas autorisés." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Veuillez saisir un nom unique pour le mot de passe de l’application ou utiliser celui que nous avons généré de manière aléatoire." @@ -3665,31 +4221,42 @@ msgstr "Veuillez saisir un nom unique pour le mot de passe de l’application ou msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Veuillez entrer un mot, un mot-clé ou une phrase valide à masquer" -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "Veuillez entrer votre e-mail." -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "Veuillez saisir votre code d’invitation." + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "Veuillez également entrer votre mot de passe :" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Veuillez expliquer pourquoi vous pensez que cette étiquette a été appliquée à tort par {0}" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "Veuillez expliquer pourquoi vous pensez que vos discussions ont été désactivées de manière indûe" + #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" -msgstr "" +msgstr "Veuillez vous identifier comme @{0}" #: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "Veuillez vérifier votre e-mail" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "Veuillez patienter le temps que votre carte de lien soit chargée" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "Politique" @@ -3697,46 +4264,46 @@ msgstr "Politique" msgid "Porn" msgstr "Porno" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "Poster" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" msgstr "Post" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "Post de {0}" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "Post de @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "Post supprimé" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Post caché" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" msgstr "Post caché par mot masqué" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" msgstr "Post caché par vous" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "Langue du post" @@ -3744,8 +4311,8 @@ msgstr "Langue du post" msgid "Post Languages" msgstr "Langues du post" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Post introuvable" @@ -3753,7 +4320,8 @@ msgstr "Post introuvable" msgid "posts" msgstr "posts" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "Posts" @@ -3761,7 +4329,7 @@ msgstr "Posts" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Les posts peuvent être masqués en fonction de leur texte, de leurs mots-clés ou des deux." -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "Posts cachés" @@ -3769,61 +4337,76 @@ msgstr "Posts cachés" msgid "Potentially Misleading Link" msgstr "Lien potentiellement trompeur" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "Appuyer pour tenter une reconnection" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "Appuyer pour changer d’hébergeur" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "Appuyer pour réessayer" -#: src/screens/Messages/Conversation/MessagesList.tsx:47 -#: src/screens/Messages/Conversation/MessagesList.tsx:53 -#~ msgid "Press to Retry" -#~ msgstr "" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "Appuyer pour voir les personnes qui suivent ce compte et que vous suivez également" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Image précédente" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "Langue principale" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "Définissez des priorités de vos suivis" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "Vie privée" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Charte de confidentialité" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "Discuter en privé avec d’autres comptes." + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "Traitement…" -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "profil" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "Profil" @@ -3831,11 +4414,11 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil mis à jour" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "Protégez votre compte en vérifiant votre e-mail." -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "Public" @@ -3843,33 +4426,42 @@ msgstr "Public" msgid "Public, shareable lists of users to mute or block in bulk." msgstr "Listes publiques et partageables de comptes à masquer ou à bloquer." -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." msgstr "Les listes publiques et partageables qui peuvent alimenter les fils d’actu." -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "Publier le post" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "Publier la réponse" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "Code QR copié dans votre presse-papier !" + +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "Code QR a été téléchargé !" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "Code QR enregistré dans votre photothèque !" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "Petite astuce" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "Citer le post" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 -msgid "Quote post" -msgstr "Citer le post" - -#: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "Citer le post" - -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "Aléatoire" @@ -3877,36 +4469,51 @@ msgstr "Aléatoire" msgid "Ratios" msgstr "Ratios" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" -msgstr "" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" +msgstr "Réactiver votre compte" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "Raison :" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "Recherches récentes" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:117 -#~ msgid "Recommended Feeds" -#~ msgstr "Fils d’actu recommandés" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "Se reconnecter" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:181 -#~ msgid "Recommended Users" -#~ msgstr "Comptes recommandés" +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "Rafraîchir les conversations" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Supprimer" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "Supprimer {displayName} du kit de démarrage" + #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Supprimer compte" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "Supprimer l’avatar" @@ -3914,9 +4521,13 @@ msgstr "Supprimer l’avatar" msgid "Remove Banner" msgstr "Supprimer l’image d’en-tête" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "Supprimer l’intégration" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "Supprimer le fil d’actu" @@ -3924,15 +4535,16 @@ msgstr "Supprimer le fil d’actu" msgid "Remove feed?" msgstr "Supprimer le fil d’actu ?" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "Supprimer de mes fils d’actu" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "Supprimer de mes fils d’actu ?" @@ -3940,7 +4552,7 @@ msgstr "Supprimer de mes fils d’actu ?" msgid "Remove image" msgstr "Supprimer l’image" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "Supprimer l’aperçu d’image" @@ -3948,11 +4560,20 @@ msgstr "Supprimer l’aperçu d’image" msgid "Remove mute word from your list" msgstr "Supprimer le mot masqué de votre liste" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 -msgid "Remove quote" -msgstr "" +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "Supprimer le profil" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "Supprimer le profil de l’historique de recherche" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 +msgid "Remove quote" +msgstr "Supprimer la citation" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "Supprimer le repost" @@ -3960,145 +4581,166 @@ msgstr "Supprimer le repost" msgid "Remove this feed from your saved feeds" msgstr "Supprimer ce fil d’actu de vos fils d’actu enregistrés" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "Supprimé de la liste" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" msgstr "Supprimé de mes fils d’actu" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" msgstr "Supprimé de vos fils d’actu" #: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "Supprime la miniature par défaut de {0}" +#~ msgid "Removes default thumbnail from {0}" +#~ msgstr "Supprime la miniature par défaut de {0}" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" -msgstr "" +msgstr "Supprime le post cité" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" +msgstr "Supprime l’aperçu de l’image" + +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 msgid "Replace with Discover" -msgstr "" +msgstr "Remplacer par Discover" -#: src/view/screens/Profile.tsx:194 +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "Réponses" -#: src/view/com/threadgate/WhoCanReply.tsx:98 +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "Les réponses sont désactivées" + +#: src/components/WhoCanReply.tsx:243 msgid "Replies to this thread are disabled" msgstr "Les réponses à ce fil de discussion sont désactivées" -#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "Répondre" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "Filtres de réponse" -#: src/view/com/post/Post.tsx:177 -#: src/view/com/posts/FeedItem.tsx:285 -#~ msgctxt "description" -#~ msgid "Reply to <0/>" -#~ msgstr "Réponse à <0/>" - -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" -msgstr "" +msgstr "Réponse à <0><1/>" -#: src/components/dms/MessageMenu.tsx:109 +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" +msgstr "Réponse à un post bloqué" + +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "Réponse à vous" + +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 msgid "Report" -msgstr "" +msgstr "Signaler" -#: src/components/dms/ConvoMenu.tsx:146 -#: src/components/dms/ConvoMenu.tsx:150 -#~ msgid "Report account" -#~ msgstr "" - -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "Signaler le compte" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" -msgstr "" +msgstr "Signaler la conversation" #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "Fenêtre de dialogue de signalement" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "Signaler le fil d’actu" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "Signaler la liste" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" -msgstr "" +msgstr "Signaler le message" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "Signaler le post" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "Signaler le kit de démarrage" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "Signaler ce contenu" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "Signaler ce fil d’actu" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "Signaler cette liste" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" -msgstr "" +msgstr "Signaler ce message" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "Signaler ce post" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "Signaler ce kit de démarrage" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "Signaler ce compte" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "Republier" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "Republier" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "Republier ou citer" @@ -4106,19 +4748,24 @@ msgstr "Republier ou citer" msgid "Reposted By" msgstr "Republié par" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "Republié par {0}" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "Republié par <0><1/>" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "Republié par vous" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "a republié votre post" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "Reposts de ce post" @@ -4127,38 +4774,38 @@ msgstr "Reposts de ce post" msgid "Request Change" msgstr "Demande de modification" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "Demander un code" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "Nécessiter un texte alt avant de publier" #: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" -msgstr "" +msgstr "Nécessiter un code par e-mail pour se connecter au compte" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "Obligatoire pour cet hébergeur" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" -msgstr "" +msgstr "Renvoyer l’e-mail" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "Réinitialiser le code" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "Code de réinitialisation" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "Réinitialisation du didacticiel" @@ -4166,20 +4813,20 @@ msgstr "Réinitialisation du didacticiel" msgid "Reset password" msgstr "Réinitialiser mot de passe" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "Réinitialiser l’état des préférences" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "Réinitialise l’état d’accueil" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "Réinitialise l’état des préférences" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "Réessaye la connection" @@ -4188,26 +4835,24 @@ msgstr "Réessaye la connection" msgid "Retries the last action, which errored out" msgstr "Réessaye la dernière action, qui a échoué" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" msgstr "Réessayer" -#: src/screens/Messages/Conversation/MessageListError.tsx:54 -#~ msgid "Retry." -#~ msgstr "" - #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "Retourne à la page précédente" @@ -4216,26 +4861,28 @@ msgid "Returns to home page" msgstr "Retour à la page d’accueil" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "Retour à la page précédente" #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Enregistrer" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "Enregistrer" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Enregistrer le texte alt" @@ -4251,29 +4898,34 @@ msgstr "Enregistrer les modifications" msgid "Save handle change" msgstr "Enregistrer le changement de pseudo" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "Enregistrer l’image" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "Enregistrer le recadrage de l’image" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "Enregistrer le code QR" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" msgstr "Enregistrer dans mes fils d’actu" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" msgstr "Fils d’actu enregistrés" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" -msgstr "" +msgstr "Enregistré dans votre photothèque" -#: src/view/com/lightbox/Lightbox.tsx:81 -#~ msgid "Saved to your camera roll." -#~ msgstr "Enregistré dans votre photothèque" - -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "Enregistré à mes fils d’actu" @@ -4289,39 +4941,47 @@ msgstr "Enregistre le changement de pseudo en {handle}" msgid "Saves image crop settings" msgstr "Enregistre les paramètres de recadrage de l’image" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "Dites bonjour !" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "Science" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "Remonter en haut" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "Recherche" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "Recherche de « {query} »" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" -msgstr "" +msgstr "Recherche de « {searchText} »" #: src/components/TagMenu/index.tsx:145 msgid "Search for all posts by @{authorHandle} with tag {displayTag}" @@ -4331,27 +4991,30 @@ msgstr "Rechercher tous les posts de @{authorHandle} avec le mot-clé {displayTa msgid "Search for all posts with tag {displayTag}" msgstr "Rechercher tous les posts avec le mot-clé {displayTag}" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." -msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." +msgstr "Recherchez des fils d’actu que vous voulez suggérer à d’autres personnes." -#: src/view/com/auth/LoggedOut.tsx:105 #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "Rechercher des comptes" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" -msgstr "" +msgstr "Rechercher des GIFs" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" -msgstr "" +msgstr "Rechercher dans les profils" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" -msgstr "" +msgstr "Rechercher dans Tenor" #: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" @@ -4373,12 +5036,7 @@ msgstr "Voir les posts <0>{displayTag}" msgid "See <0>{displayTag} posts by this user" msgstr "Voir les posts <0>{displayTag} de ce compte" -#: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "Voir le profil" - -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "Voir ce guide" @@ -4388,7 +5046,7 @@ msgstr "Sélectionner {item}" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 msgid "Select a color" -msgstr "" +msgstr "Sélectionner une couleur" #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" @@ -4396,25 +5054,25 @@ msgstr "Sélectionner un compte" #: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 msgid "Select an avatar" -msgstr "" +msgstr "Sélectionner un avatar" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 msgid "Select an emoji" -msgstr "" +msgstr "Sélectionner un emoji" #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "Sélectionner un compte existant" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" -msgstr "" +msgstr "Sélectionner le GIF" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" -msgstr "" +msgstr "Sélectionner le GIF « {0} »" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "Sélectionner les langues" @@ -4426,15 +5084,11 @@ msgstr "Sélectionner une modération" msgid "Select option {i} of {numItems}" msgstr "Sélectionne l’option {i} sur {numItems}" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "Sélectionnez quelques comptes à suivre ci-dessous" - #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" -msgstr "" +msgstr "Sélectionner l’emoji {emojiName} comme avatar" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "Sélectionnez le(s) service(s) de modération destinataires du signalement" @@ -4442,70 +5096,65 @@ msgstr "Sélectionnez le(s) service(s) de modération destinataires du signaleme msgid "Select the service that hosts your data." msgstr "Sélectionnez le service qui héberge vos données." -#: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" -msgstr "Sélectionnez les fils d’actu thématiques à suivre dans la liste ci-dessous" +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" +msgstr "Sélectionner une vidéo" -#: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "Sélectionnez ce que vous voulez voir (ou ne pas voir), et nous nous occupons du reste." - -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." msgstr "Sélectionnez les langues que vous souhaitez voir figurer dans les fils d’actu que vous suivez. Si aucune langue n’est sélectionnée, toutes les langues seront affichées." -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "Sélectionnez votre langue par défaut pour les textes de l’application." -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "Sélectionnez votre date de naissance" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "Sélectionnez vos centres d’intérêt parmi les options ci-dessous" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." msgstr "Sélectionnez votre langue préférée pour traduire votre fils d’actu." -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "Sélectionnez vos principaux fils d’actu algorithmiques" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" -msgstr "Sélectionnez vos fils d’actu algorithmiques secondaires" +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" +msgstr "Envoyez un site chouette !" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Envoyer un e-mail de confirmation" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "Envoyer e-mail" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "Envoyer l’e-mail" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "Envoyer des commentaires" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" -msgstr "" +msgstr "Envoyer le message" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." +msgstr "Envoyer le post à…" + +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "Envoyer le rapport" @@ -4516,9 +5165,14 @@ msgstr "Envoyer le rapport à {0}" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" -msgstr "" +msgstr "Envoyer l’e-mail de vérification" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "Envoyer par message privé" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "Envoie un e-mail avec le code de confirmation pour la suppression du compte" @@ -4526,7 +5180,7 @@ msgstr "Envoie un e-mail avec le code de confirmation pour la suppression du com msgid "Server address" msgstr "Adresse du serveur" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "Entrez votre date de naissance" @@ -4534,23 +5188,23 @@ msgstr "Entrez votre date de naissance" msgid "Set new password" msgstr "Définir un nouveau mot de passe" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Choisissez « Non » pour cacher toutes les citations sur votre fils d’actu. Les reposts seront toujours visibles." -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Choisissez « Non » pour cacher toutes les réponses dans votre fils d’actu." -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Choisissez « Non » pour cacher toutes les reposts de votre fils d’actu." -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Choisissez « Oui » pour afficher les réponses dans un fil de discussion. C’est une fonctionnalité expérimentale." -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Choisissez « Oui » pour afficher des échantillons de vos fils d’actu enregistrés dans votre fil d’actu « Following ». C’est une fonctionnalité expérimentale." @@ -4562,23 +5216,23 @@ msgstr "Créez votre compte" msgid "Sets Bluesky username" msgstr "Définit le pseudo Bluesky" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "Change le thème de couleur en sombre" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "Change le thème de couleur en clair" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "Change le thème de couleur en fonction du paramètre système" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "Change le thème sombre comme étant le plus sombre" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "Change le thème sombre comme étant le thème atténué" @@ -4598,12 +5252,11 @@ msgstr "Définit le rapport d’aspect de l’image comme portrait" msgid "Sets image aspect ratio to wide" msgstr "Définit le rapport d’aspect de l’image comme paysage" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "Paramètres" @@ -4615,55 +5268,92 @@ msgstr "Activité sexuelle ou nudité érotique." msgid "Sexually Suggestive" msgstr "Sexuellement suggestif" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "Partager" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "Partager" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "Partager" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "Partagez une histoire sympa !" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "Partagez une anecdote insolite !" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "Partager quand même" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "Partager le fil d’actu" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "Partager le lien" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "Partager le lien" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "Dialogue pour le partage d’un lien" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "Partager le code QR" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "Partagez ce kit de démarrage" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "Partagez ce kit de démarrage et aidez les gens à rejoindre votre communauté sur Bluesky." + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "Partagez votre fil d’actu favori !" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "Testeur de préférences partagées" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "Partage le site web lié" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "Afficher" -#: src/view/screens/PreferencesFollowingFeed.tsx:68 -#~ msgid "Show all replies" -#~ msgstr "Afficher toutes les réponses" - -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" -msgstr "" +msgstr "Voir le texte alt" #: src/components/moderation/ScreenHider.tsx:169 #: src/components/moderation/ScreenHider.tsx:172 @@ -4679,83 +5369,59 @@ msgstr "Afficher le badge" msgid "Show badge and filter from feeds" msgstr "Afficher les badges et filtrer des fils d’actu" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "Afficher les suivis similaires à {0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 -msgid "Show less like this" -msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "Afficher les réponses cachées" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 +msgid "Show less like this" +msgstr "En montrer moins comme ça" + +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "Voir plus" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" -msgstr "" +msgstr "En montrer plus comme ça" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "Afficher les réponses masquées" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" msgstr "Afficher les posts de mes fils d’actu" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "Afficher les citations" -#: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "Afficher les citations dans le fil d’actu « Following »" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "Afficher les citations dans le fil d’actu « Following »" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "Afficher les reposts dans le fil d’actu « Following »" - -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "Afficher les réponses" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "Afficher les réponses des personnes que vous suivez avant toutes les autres réponses." -#: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "Afficher les réponses dans le fil d’actu « Following »" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "Afficher les réponses dans le fil d’actu « Following »" - -#: src/view/screens/PreferencesFollowingFeed.tsx:70 -#~ msgid "Show replies with at least {value} {0}" -#~ msgstr "Afficher les réponses avec au moins {value} {0}" - -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "Afficher les reposts" -#: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "Afficher les reposts dans le fil d’actu « Following »" - -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "Afficher le contenu" -#: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "Afficher les comptes" - #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" msgstr "Afficher l’avertissement" @@ -4772,17 +5438,17 @@ msgstr "Affiche les posts de {0} dans votre fil d’actu" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4805,17 +5471,17 @@ msgstr "Connectez-vous ou créez votre compte pour participer à la conversation msgid "Sign into Bluesky or create a new account" msgstr "Connectez-vous à Bluesky ou créez un nouveau compte" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "Déconnexion" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4831,7 +5497,7 @@ msgstr "S’inscrire ou se connecter pour participer à la conversation" msgid "Sign-in Required" msgstr "Connexion requise" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "Connecté en tant que" @@ -4840,56 +5506,86 @@ msgstr "Connecté en tant que" msgid "Signed in as @{0}" msgstr "Connecté en tant que @{0}" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "s’est inscrit·e avec votre kit de démarrage" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "S’inscrire sans kit de démarrage" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "Ignorer" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "Passer cette étape" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "Développement de logiciels" -#: src/screens/Messages/Conversation/index.tsx:89 +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" +msgstr "Quelques autres fils d’actu qui pourraient vous intéresser" + +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "Quelques comptes peuvent répondre" + +#: src/screens/Messages/Conversation/index.tsx:106 msgid "Something went wrong" -msgstr "" +msgstr "Quelque chose n’a pas marché" + +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "Quelque chose n’a pas marché, veuillez réessayer" #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "Quelque chose n’a pas marché, veuillez réessayer." -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "" + +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "Désolé ! Votre session a expiré. Essayez de vous reconnecter." -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "Trier les réponses" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "Trier les réponses au même post par :" -#: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" -msgstr "Source :" +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" +msgstr "Source : <0>{0}" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "Spam" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "Spam ; mentions ou réponses excessives" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "Sports" @@ -4897,69 +5593,94 @@ msgstr "Sports" msgid "Square" msgstr "Carré" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" -msgstr "" +msgstr "Démarrer une nouvelle discussion" -#: src/view/screens/Settings/index.tsx:862 -#~ msgid "Status page" -#~ msgstr "État du service" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "Démarrer une discussion avec {displayName}" -#: src/view/screens/Settings/index.tsx:896 +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "Démarrer les discussions" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "Début de la fenêtre de la visite d’accueil. Ne revenez pas en arrière. Allez plutôt vers l’avant pour plus d’options, ou appuyez pour passer." + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "Kit de démarrage" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "Kit de démarrage par {0}" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "Le kit de démarrage n’est pas valide" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "Kits de démarrage" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." +msgstr "Les kits de démarrage vous permettent de partager facilement vos fils d’actu et vos personnes préférées avec vos ami·e·s." + +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" -msgstr "" +msgstr "État du service" -#: src/screens/Signup/index.tsx:145 -#~ msgid "Step" -#~ msgstr "Étape" - -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" -msgstr "" +msgstr "Étape {0} sur {1}" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "Stockage effacé, vous devez redémarrer l’application maintenant." -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "Historique" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "Envoyer" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "S’abonner" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "Abonnez-vous à @{0} pour utiliser ces étiquettes :" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "S’abonner à l’étiqueteur" -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "S’abonner au fil d’actu {0}" - -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "S’abonner à cet étiqueteur" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "S’abonner à cette liste" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "Suivis suggérés" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "Comptes suggérés" +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Suggérés pour vous" @@ -4968,7 +5689,7 @@ msgstr "Suggérés pour vous" msgid "Suggestive" msgstr "Suggestif" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -4979,19 +5700,23 @@ msgstr "Soutien" msgid "Switch Account" msgstr "Changer de compte" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "Basculez d’un fil d’actu à l’autre pour contrôler votre expérience." + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "Basculer sur {0}" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "Bascule le compte auquel vous êtes connectés vers" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "Système" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "Journal système" @@ -5007,29 +5732,51 @@ msgstr "Menu de mot-clé : {displayTag}" msgid "Tall" msgstr "Grand" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "Tapper pour annuler" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "Tapper pour voir en entier" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "Tâche accomplie - 10 likes !" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "Apprendre à notre algorithme ce que vous aimez" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "Technologie" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "Racontez une blague !" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "Dites-nous en un peu plus" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "Conditions générales" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Conditions d’utilisation" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "Termes utilisés qui violent les normes de la communauté" @@ -5037,12 +5784,13 @@ msgstr "Termes utilisés qui violent les normes de la communauté" msgid "text" msgstr "texte" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Champ de saisie de texte" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "Nous vous remercions. Votre rapport a été envoyé." @@ -5050,19 +5798,24 @@ msgstr "Nous vous remercions. Votre rapport a été envoyé." msgid "That contains the following:" msgstr "Qui contient les éléments suivants :" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "Ce pseudo est déjà occupé." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "Ce kit de démarrage n’a pas pu être trouvé." + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "Ce compte pourra interagir avec vous après le déblocage." -#: src/components/moderation/ModerationDetailsDialog.tsx:127 -#~ msgid "the author" -#~ msgstr "l’auteur" - #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "Les lignes directrices communautaires ont été déplacées vers <0/>" @@ -5071,15 +5824,24 @@ msgstr "Les lignes directrices communautaires ont été déplacées vers <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "Notre politique de droits d’auteur a été déplacée vers <0/>" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 -msgid "The feed has been replaced with Discover." -msgstr "" +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" +msgstr "Le fil d’actu « Discover » sait désormais ce que vous aimez" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "L’expérience est meilleure dans l’application. Téléchargez Bluesky maintenant et nous reprendrons là où vous en étiez." + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 +msgid "The feed has been replaced with Discover." +msgstr "Ce fil d’actu a été remplacé par Discover." + +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "Les étiquettes suivantes ont été appliquées à votre compte." -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "Les étiquettes suivantes ont été appliquées à votre contenu." @@ -5087,8 +5849,8 @@ msgstr "Les étiquettes suivantes ont été appliquées à votre contenu." msgid "The following steps will help customize your Bluesky experience." msgstr "Les étapes suivantes vous aideront à personnaliser votre expérience avec Bluesky." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Ce post a peut-être été supprimé." @@ -5096,6 +5858,10 @@ msgstr "Ce post a peut-être été supprimé." msgid "The Privacy Policy has been moved to <0/>" msgstr "Notre politique de confidentialité a été déplacée vers <0/>" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "Le kit de démarrage que vous essayez de consulter n’est pas valide. Vous pouvez supprimer ce kit de démarrage à la place." + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "Le formulaire d’assistance a été déplacé. Si vous avez besoin d’aide, veuillez <0/> ou rendez-vous sur {HELP_DESK_URL} pour nous contacter." @@ -5104,52 +5870,49 @@ msgstr "Le formulaire d’assistance a été déplacé. Si vous avez besoin d’ msgid "The Terms of Service have been moved to" msgstr "Nos conditions d’utilisation ont été déplacées vers" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" -msgstr "Il existe de nombreux fils d’actu à essayer :" +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." +msgstr "Il n’y a pas de limite de temps pour la désactivation du compte, revenez quand vous voulez." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Il y a eu un problème de connexion au serveur, veuillez vérifier votre connexion Internet et réessayez." -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Il y a eu un problème lors de la suppression du fil, veuillez vérifier votre connexion Internet et réessayez." #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Il y a eu un problème lors de la mise à jour de vos fils d’actu, veuillez vérifier votre connexion Internet et réessayez." -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." -msgstr "" +msgstr "Il y a eu un problème de connexion à Tenor." -#: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" - -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "Il y a eu un problème de connexion au serveur" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "Il y a eu un problème de connexion à votre serveur" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Il y a eu un problème lors de la récupération des notifications. Appuyez ici pour réessayer." -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Il y a eu un problème lors de la récupération des posts. Appuyez ici pour réessayer." @@ -5157,58 +5920,52 @@ msgstr "Il y a eu un problème lors de la récupération des posts. Appuyez ici msgid "There was an issue fetching the list. Tap here to try again." msgstr "Il y a eu un problème lors de la récupération de la liste. Appuyez ici pour réessayer." -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Il y a eu un problème lors de la récupération de vos listes. Appuyez ici pour réessayer." -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Il y a eu un problème lors de l’envoi de votre rapport. Veuillez vérifier votre connexion internet." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "Il y a eu un problème de synchronisation de vos préférences avec le serveur" - -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Il y a eu un problème lors de la récupération de vos mots de passe d’application" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "Il y a eu un problème ! {0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "Il y a eu un problème. Veuillez vérifier votre connexion Internet et réessayez." -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "Un problème inattendu s’est produit dans l’application. N’hésitez pas à nous faire savoir si cela vous est arrivé !" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "Il y a eu un afflux de nouveaux personnes sur Bluesky ! Nous activerons ton compte dès que possible." -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "Voici des comptes populaires qui pourraient vous intéresser :" - #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" msgstr "Ce {screenDescription} a été signalé :" @@ -5217,13 +5974,21 @@ msgstr "Ce {screenDescription} a été signalé :" msgid "This account has requested that users sign in to view their profile." msgstr "Ce compte a demandé aux personnes de se connecter pour voir son profil." -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "Ce compte est bloqué par un ou plusieurs de vos listes de modération. Pour le débloquer, veuillez visiter les listes directement et en retirer ce compte." + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "Cet appel sera envoyé à <0>{0}." -#: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." -msgstr "" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." +msgstr "Cet appel sera envoyé au service de modération de Bluesky." + +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "Cette discussion a été déconnectée" #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." @@ -5238,35 +6003,39 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Ce contenu est hébergé par {0}. Voulez-vous activer les médias externes ?" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Ce contenu n’est pas disponible car l’un des comptes impliqués a bloqué l’autre." -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "Ce contenu n’est pas visible sans un compte Bluesky." -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "Cette conversation concerne un compte supprimé ou désactivé. Appuyez pour obtenir des options." + +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "Cette fonctionnalité est en version bêta. Vous pouvez en savoir plus sur les exportations de dépôts dans <0>ce blogpost." -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Ce fil d’actu reçoit actuellement un trafic important, il est temporairement indisponible. Veuillez réessayer plus tard." -#: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "Ce fil d’actu est vide !" - #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Ce fil d’actu est vide ! Vous devriez peut-être suivre plus de comptes ou ajuster vos paramètres de langue." -#: src/view/com/posts/FeedShutdownMsg.tsx:97 +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." +msgstr "Ce fil d’actu est vide." + +#: src/view/com/posts/FeedShutdownMsg.tsx:99 msgid "This feed is no longer online. We are showing <0>Discover instead." -msgstr "" +msgstr "Ce fil d’actu n’est plus disponible. Nous vous montrons <0>Discover à la place." #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." @@ -5276,23 +6045,19 @@ msgstr "Ces informations ne sont pas partagées avec d’autres personnes." msgid "This is important in case you ever need to change your email or reset your password." msgstr "Ceci est important au cas où vous auriez besoin de changer d’e-mail ou de réinitialiser votre mot de passe." -#: src/components/moderation/ModerationDetailsDialog.tsx:124 -#~ msgid "This label was applied by {0}." -#~ msgstr "Cette étiquette a été apposée par {0}." - #: src/components/moderation/ModerationDetailsDialog.tsx:127 msgid "This label was applied by <0>{0}." -msgstr "" +msgstr "Cette étiquette a été apposée par <0>{0}." #: src/components/moderation/ModerationDetailsDialog.tsx:125 msgid "This label was applied by the author." -msgstr "" +msgstr "Cette étiquette a été apposée par l’auteur·ice." -#: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" -msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." +msgstr "Cette étiquette a été apposée par vous." -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "Cet étiqueteur n’a pas déclaré les étiquettes qu’il publie et peut ne pas être actif." @@ -5300,7 +6065,7 @@ msgstr "Cet étiqueteur n’a pas déclaré les étiquettes qu’il publie et pe msgid "This link is taking you to the following website:" msgstr "Ce lien vous conduit au site Web suivant :" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "Cette liste est vide !" @@ -5308,24 +6073,24 @@ msgstr "Cette liste est vide !" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "Ce service de modération n’est pas disponible. Voir ci-dessous pour plus de détails. Si le problème persiste, contactez-nous." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "Ce nom est déjà utilisé" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "Ce post a été supprimé." -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Ce post n’est visible que pour les personnes connectées. Il ne sera pas visible pour les personnes qui ne sont pas connectées." -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "Ce post sera masqué des fils d’actu." -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Ce profil n’est visible que pour les personnes connectées. Il ne sera pas visible pour les personnes qui ne sont pas connectées." @@ -5341,8 +6106,12 @@ msgstr "Cela devrait créer un enregistrement de domaine à :" msgid "This user doesn't have any followers." msgstr "Ce compte n’a pas d’abonné·e·s." +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "Ce compte vous a bloqué·e" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "Ce compte vous a bloqué. Vous ne pouvez pas voir son contenu." @@ -5358,42 +6127,46 @@ msgstr "Ce compte est inclus dans la liste <0>{0} que vous avez bloquée." msgid "This user is included in the <0>{0} list which you have muted." msgstr "Ce compte est inclus dans la liste <0>{0} que vous avez masquée." +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "Ce compte est nouveau ici. Appuyez pour obtenir plus d’informations sur sa date d’arrivée." + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "Ce compte ne suit personne." -#: src/view/com/modals/SelfLabel.tsx:137 -#~ msgid "This warning is only available for posts with media attached." -#~ msgstr "Cet avertissement n’est disponible que pour les posts contenant des médias." - #: src/components/dialogs/MutedWords.tsx:283 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Cela supprimera {0} de vos mots masqués. Vous pourrez toujours le réintégrer plus tard." -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" msgstr "Préférences des fils de discussion" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "Préférences des fils de discussion" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "Paramètres du fil de discussion mis à jour" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "Mode arborescent" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "Préférences des fils de discussion" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." -msgstr "" +msgstr "Pour désactiver le 2FA par e-mail, veuillez vérifier votre accès à l’adresse e-mail." -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." -msgstr "" +msgstr "Pour signaler une conversation, veuillez signaler un de ses messages via l’écran de conversation. Cela permettra à la modération de comprendre le contexte du problème." #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" @@ -5403,16 +6176,16 @@ msgstr "À qui souhaitez-vous envoyer ce rapport ?" msgid "Toggle between muted word options." msgstr "Basculer entre les options pour les mots masqués." -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "Activer le menu déroulant" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "Activer ou désactiver le contenu pour adultes" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "Meilleur" @@ -5420,10 +6193,12 @@ msgstr "Meilleur" msgid "Transformations" msgstr "Transformations" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "Traduire" @@ -5432,65 +6207,81 @@ msgctxt "action" msgid "Try again" msgstr "Réessayer" -#: src/view/screens/Settings/index.tsx:711 -msgid "Two-factor authentication" -msgstr "" +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "TV" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/view/screens/Settings/index.tsx:747 +msgid "Two-factor authentication" +msgstr "Authentification à deux facteurs" + +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" -msgstr "" +msgstr "Écrivez votre message ici" #: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "Type :" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "Débloquer la liste" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "Réafficher cette liste" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Impossible de contacter votre service. Veuillez vérifier votre connexion Internet." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "Impossible de supprimer" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "Débloquer" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "Débloquer" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "Débloquer le compte" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "Débloquer le compte" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" msgstr "Débloquer le compte ?" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "Annuler le repost" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "Se désabonner" @@ -5499,25 +6290,21 @@ msgstr "Se désabonner" msgid "Unfollow" msgstr "Se désabonner" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "Se désabonner de {0}" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "Se désabonner du compte" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:197 -#~ msgid "Unlike" -#~ msgstr "Déliker" - -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "Déliker ce fil d’actu" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "Réafficher" @@ -5525,8 +6312,8 @@ msgstr "Réafficher" msgid "Unmute {truncatedTag}" msgstr "Réafficher {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "Réafficher ce compte" @@ -5534,46 +6321,46 @@ msgstr "Réafficher ce compte" msgid "Unmute all {displayTag} posts" msgstr "Réafficher tous les posts {displayTag}" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" -msgstr "" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" +msgstr "Réafficher la conversation" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" msgstr "Réafficher ce fil de discussion" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "Désépingler" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "Désépingler de l’accueil" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "Supprimer la liste de modération" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "Désépinglé de vos fils d’actu" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Se désabonner" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "Se désabonner de cet étiqueteur" +#: src/lib/moderation/useReportOptions.ts:72 #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" - -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "Contenu sexuel non désiré" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "Mise à jour de {displayName} dans les listes" @@ -5585,28 +6372,28 @@ msgstr "Mettre à jour pour {handle}" msgid "Updating..." msgstr "Mise à jour…" -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" -msgstr "" +msgstr "Envoyer plutôt une photo" #: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Envoyer un fichier texte vers :" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "Envoyer à partir de l’appareil photo" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "Envoyer à partir de fichiers" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -5616,7 +6403,7 @@ msgstr "Envoyer à partir de la photothèque" msgid "Use a file on your server" msgstr "Utiliser un fichier sur votre serveur" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utilisez les mots de passe de l’appli pour se connecter à d’autres clients Bluesky sans donner un accès complet à votre compte ou à votre mot de passe." @@ -5640,13 +6427,13 @@ msgstr "Utiliser mon navigateur par défaut" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 msgid "Use recommended" -msgstr "" +msgstr "Utiliser les recommandés" #: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "Utiliser le panneau DNS" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Utilisez-le pour vous connecter à l’autre application avec votre identifiant." @@ -5655,19 +6442,23 @@ msgid "Used by:" msgstr "Utilisé par :" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "Compte bloqué" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr "Compte bloqué par « {0} »" +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "Compte bloqué par liste" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "Compte bloqué par liste" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "Compte qui vous bloque" @@ -5675,46 +6466,53 @@ msgstr "Compte qui vous bloque" msgid "User Blocks You" msgstr "Compte qui vous bloque" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "Liste de compte de {0}" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "Liste de compte par <0/>" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "Liste de compte par vous" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "Liste de compte créée" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "Liste de compte mise à jour" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "Listes de comptes" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "Pseudo ou e-mail" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "Comptes" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "comptes suivis par <0/>" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "Comptes que je suis" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "Comptes dans « {0} »" @@ -5726,23 +6524,19 @@ msgstr "Comptes qui ont liké ce contenu ou ce profil" msgid "Value:" msgstr "Valeur :" -#: src/view/com/modals/ChangeHandle.tsx:510 -#~ msgid "Verify {0}" -#~ msgstr "Vérifier {0}" - #: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" -msgstr "" +msgstr "Vérifier l’enregistrement DNS" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "Confirmer l’e-mail" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "Confirmer mon e-mail" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "Confirmer mon e-mail" @@ -5753,41 +6547,50 @@ msgstr "Confirmer le nouvel e-mail" #: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" -msgstr "" +msgstr "Vérifier le fichier texte" #: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "Vérifiez votre e-mail" -#: src/view/screens/Settings/index.tsx:852 -#~ msgid "Version {0}" -#~ msgstr "Version {0}" - -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" -msgstr "" +msgstr "Version {appVersion} {bundleInfo}" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "Jeux vidéo" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "Les vidéos ne peuvent pas dépasser 100 Mo" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "Voir l’avatar de {0}" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "Voir le profil de {0}" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "Voir le profil du compte bloqué" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "Afficher l’entrée de débogage" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "Voir les détails" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "Voir les détails pour signaler une violation du droit d’auteur" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "Voir le fil de discussion entier" @@ -5795,13 +6598,15 @@ msgstr "Voir le fil de discussion entier" msgid "View information about these labels" msgstr "Voir les informations sur ces étiquettes" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Voir le profil" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "Afficher l’avatar" @@ -5809,10 +6614,15 @@ msgstr "Afficher l’avatar" msgid "View the labeling service provided by @{0}" msgstr "Voir le service d’étiquetage fourni par @{0}" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "Voir les comptes qui a liké ce fil d’actu" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "Consultez vos fils d’actu et explorez-en plus" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -5821,7 +6631,6 @@ msgstr "Visiter le site" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Avertir" @@ -5837,15 +6646,15 @@ msgstr "Avertir du contenu et filtrer des fils d’actu" msgid "We couldn't find any results for that hashtag." msgstr "Nous n’avons trouvé aucun résultat pour ce mot-clé." -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" -msgstr "" +msgstr "Nous ne pouvons pas charger cette conversation" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Nous estimons que votre compte sera prêt dans {estimatedTime}." -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Nous espérons que vous passerez un excellent moment. N’oubliez pas que Bluesky est :" @@ -5857,35 +6666,35 @@ msgstr "Nous n’avons plus de posts provenant des comptes que vous suivez. Voic msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "Nous vous recommandons d’éviter les mots communs qui apparaissent dans de nombreux posts, car cela peut avoir pour conséquence qu’aucun post ne s’affiche." -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "Nous vous recommandons notre fil d’actu « Discover » :" - #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "Nous n’avons pas pu charger vos préférences en matière de date de naissance. Veuillez réessayer." -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "Nous n’avons pas pu charger vos étiqueteurs configurés pour le moment." -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Nous n’avons pas pu nous connecter. Veuillez réessayer pour continuer à configurer votre compte. Si l’échec persiste, vous pouvez sauter cette étape." -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "Nous vous informerons lorsque votre compte sera prêt." -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "Nous utiliserons ces informations pour personnaliser votre expérience." -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "Nous avons des soucis de réseau, réessayez" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "Nous sommes ravis de vous accueillir !" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Nous sommes désolés, mais nous n’avons pas pu charger cette liste. Si cela persiste, veuillez contacter l’origine de la liste, @{handleOrDid}." @@ -5893,30 +6702,42 @@ msgstr "Nous sommes désolés, mais nous n’avons pas pu charger cette liste. S msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Nous sommes désolés, mais nous n’avons pas pu charger vos mots masqués pour le moment. Veuillez réessayer." -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Nous sommes désolés, mais votre recherche a été annulée. Veuillez réessayer dans quelques minutes." -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "Nous sommes désolés ! Le post auquel vous répondez a été supprimé." + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Nous sommes désolés ! La page que vous recherchez est introuvable." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." -msgstr "Nous sommes désolés ! Vous ne pouvez vous abonner qu’à dix étiqueteurs, et vous avez atteint votre limite de dix." +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "Nous sommes désolés ! Vous ne pouvez vous abonner qu’à vingt étiqueteurs, et vous avez atteint votre limite de vingt." -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 -#~ msgid "Welcome to <0>Bluesky" -#~ msgstr "Bienvenue sur <0>Bluesky" +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" +msgstr "Bienvenue !" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "Bienvenue et enchanté !" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" msgstr "Quels sont vos centres d’intérêt ?" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "Quel est le nom de votre kit de démarrage ?" + #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "Quoi de neuf ?" @@ -5928,36 +6749,53 @@ msgstr "Quelles sont les langues utilisées dans ce post ?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Quelles langues aimeriez-vous voir apparaître dans vos fils d’actu algorithmiques ?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "Qui peut discuter avec vous ?" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "Qui peut répondre ?" -#: src/screens/Home/NoFeedsPinned.tsx:92 -msgid "Whoops!" -msgstr "" +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "Dialogue qui permet de changer qui peut répondre" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "Qui peut répondre ?" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 +msgid "Whoops!" +msgstr "Oups !" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "Pourquoi ce contenu doit-il être examiné ?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "Pourquoi ce fil d’actu doit-il être examiné ?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "Pourquoi cette liste devrait-elle être examinée ?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" -msgstr "" +msgstr "Pourquoi ce message devrait-il être examiné ?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "Pourquoi ce post devrait-il être examiné ?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "Pourquoi ce kit de démarrage devrait-il être examiné ?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "Pourquoi ce compte doit-il être examiné ?" @@ -5965,39 +6803,61 @@ msgstr "Pourquoi ce compte doit-il être examiné ?" msgid "Wide" msgstr "Large" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" -msgstr "" +msgstr "Écrire un message" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "Rédiger un post" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "Rédigez votre réponse" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "Écrivain·e·s" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "Oui" -#: src/components/dms/MessageItem.tsx:158 -msgid "Yesterday, {time}" -msgstr "" +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "Oui, désactiver" -#: src/screens/Deactivated.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "Oui, supprimer ce kit de démarrage" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "Oui, réactiver mon compte" + +#: src/components/dms/MessageItem.tsx:182 +msgid "Yesterday, {time}" +msgstr "Hier, {time}" + +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "vous" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "Vous" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "Vous êtes dans la file d’attente." @@ -6005,58 +6865,74 @@ msgstr "Vous êtes dans la file d’attente." msgid "You are not following anyone." msgstr "Vous ne suivez personne." -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "Vous pouvez aussi découvrir de nouveaux fils d’actu personnalisés à suivre." -#: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." -msgstr "Vous pouvez modifier ces paramètres ultérieurement." +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "Vous pouvez également désactiver temporairement votre compte et le réactiver quand vous voulez." + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "Vous pouvez changer cela à tout moment." + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "Vous pouvez poursuivre les conversations en cours quel que soit le paramètre que vous choisissez." #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." msgstr "Vous pouvez maintenant vous connecter avec votre nouveau mot de passe." +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "Vous pouvez réactiver votre compte pour continuer à vous connecter. Votre profil et vos posts seront visibles par les autres personnes." + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "Vous n’avez pas d’abonné·e·s." +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "Vous ne suivez aucun des comptes qui suivent @{name}." + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Vous n’avez encore aucun code d’invitation ! Nous vous en enverrons lorsque vous serez sur Bluesky depuis un peu plus longtemps." -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." -msgstr "Vous n’avez encore aucun fil épinglé." +msgstr "Vous n’avez encore aucun fil d’actu épinglé." -#: src/view/screens/Feeds.tsx:477 -#~ msgid "You don't have any saved feeds!" -#~ msgstr "Vous n’avez encore aucun fil enregistré !" - -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." -msgstr "Vous n’avez encore aucun fil enregistré." +msgstr "Vous n’avez encore aucun fil d’actu enregistré." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Vous avez bloqué cet auteur ou vous avez été bloqué par celui-ci." +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "Vous avez bloqué ce compte" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "Vous avez bloqué ce compte. Vous ne pouvez pas voir son contenu." #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Vous avez introduit un code non valide. Il devrait ressembler à XXXXX-XXXXX." -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "Vous avez caché ce post" @@ -6065,32 +6941,32 @@ msgid "You have hidden this post." msgstr "Vous avez caché ce post." #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "Vous avez masqué ce compte." -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "Vous avez masqué ce compte" -#: src/view/com/feeds/ProfileFeedgens.tsx:144 -msgid "You have no feeds." -msgstr "Vous n’avez aucun fil." +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "Vous n’avez pas encore de conversations. Démarrez en une !" -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/feeds/ProfileFeedgens.tsx:137 +msgid "You have no feeds." +msgstr "Vous n’avez aucun fil d’actu." + +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." msgstr "Vous n’avez aucune liste." -#: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "" - #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "Vous n’avez pas encore bloqué de comptes. Pour bloquer un compte, allez sur son profil et sélectionnez « Bloquer le compte » dans le menu de son compte." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Vous n’avez encore créé aucun mot de passe pour l’appli. Vous pouvez en créer un en cliquant sur le bouton suivant." @@ -6098,35 +6974,63 @@ msgstr "Vous n’avez encore créé aucun mot de passe pour l’appli. Vous pouv msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "Vous n’avez encore masqué aucun compte. Pour masquer un compte, allez sur son profil et sélectionnez « Masquer le compte » dans le menu de son compte." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "Vous avez atteint la fin" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "Vous n’avez pas encore créé de kit de démarrage !" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Vous n’avez pas encore masqué de mot ou de mot-clé" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." -msgstr "" +msgstr "Vous pouvez faire appel des étiquettes poseés par des tiers si vous pensez qu’elles ont été appliquées par erreur." -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Vous pouvez faire appel de ces étiquettes si vous estimez qu’elles ont été apposées par erreur." +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "Vous ne pouvez ajouter que 50 fils d’actu au maximum" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "Vous ne pouvez ajouter que 50 profils au maximum" + #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "Vous devez avoir 13 ans ou plus pour vous inscrire." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" -msgstr "Vous devez avoir 18 ans ou plus pour activer le contenu pour adultes." +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." +msgstr "Vous devez suivre au moins sept autres personnes pour générer un kit de démarrage." -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "Vous devez autoriser l’accès à votre photothèque pour enregistrer un code QR" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "Vous devez autoriser l’accès à votre photothèque pour enregistrer l’image." + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "Vous devez sélectionner au moins un étiqueteur pour un rapport" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "Vous avez précédemment désactivé @{0}." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "Vous ne recevrez plus de notifications pour ce fil de discussion" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "Vous recevrez désormais des notifications pour ce fil de discussion" @@ -6134,60 +7038,90 @@ msgstr "Vous recevrez désormais des notifications pour ce fil de discussion" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Vous recevrez un e-mail contenant un « code de réinitialisation ». Saisissez ce code ici, puis votre nouveau mot de passe." -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" -msgstr "" +msgstr "Vous : {0}" -#: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "Vous avez le contrôle" +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "Vous : {defaultEmbeddedContentMessage}" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "Vous : {short}" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "Vous suivrez les comptes et fils d’actu suggérés une fois que vous aurez créé votre compte !" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "Vous suivrez les comptes suggérés une fois que vous aurez créé votre compte !" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "Vous suivrez ces personnes et {0} autres" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "Vous suivrez ces personnes immédiatement" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" +msgstr "Vous resterez informé grâce à ces fils d’actu" + +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "Vous êtes dans la file d’attente" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "Vous êtes connecté·e avec un mot de passe d’application. Veuillez vous connecter avec votre mot de passe principal pour continuer à désactiver votre compte." + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "Vous êtes prêt à partir !" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "Vous avez choisi de masquer un mot ou un mot-clé dans ce post." -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Vous avez atteint la fin de votre fil d’actu ! Trouvez d’autres comptes à suivre." -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "Votre compte" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "Votre compte a été supprimé" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "Le dépôt de votre compte, qui contient toutes les données publiques, peut être téléchargé sous la forme d’un fichier « CAR ». Ce fichier n’inclut pas les éléments multimédias, tels que les images, ni vos données privées, qui doivent être récupérées séparément." -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "Votre date de naissance" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "Vos discussions ont été désactivées" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "Votre choix sera enregistré, mais vous pourrez le modifier ultérieurement dans les paramètres." -#: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "Votre fil d’actu par défaut est « Following »" - #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "Votre e-mail semble être invalide." @@ -6199,11 +7133,15 @@ msgstr "Votre e-mail a été mis à jour, mais n’a pas été vérifié. L’é msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Votre e-mail n’a pas encore été vérifié. Il s’agit d’une mesure de sécurité importante que nous recommandons." -#: src/view/com/posts/FollowingEmptyState.tsx:47 +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "Votre premier « like » !" + +#: src/view/com/posts/FollowingEmptyState.tsx:43 msgid "Your following feed is empty! Follow more users to see what's happening." msgstr "Votre fil d’actu des comptes suivis est vide ! Suivez plus de comptes pour voir ce qui se passe." -#: src/screens/Signup/StepHandle.tsx:73 +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "Votre nom complet sera" @@ -6215,30 +7153,34 @@ msgstr "Votre pseudo complet sera <0>@{0}" msgid "Your muted words" msgstr "Vos mots masqués" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "Votre mot de passe a été modifié avec succès !" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "Votre post a été publié" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Vos posts, les likes et les blocages sont publics. Les silences (comptes masqués) sont privés." -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "Votre profil" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "Votre profil, vos posts, vos fils d’actu et vos listes ne seront plus visibles par d’autres personnes sur Bluesky. Vous pouvez réactiver votre compte à tout moment en vous connectant." + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "Votre réponse a été publiée" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" -msgstr "" +msgstr "Votre rapport sera envoyé au Service de Modération de Bluesky" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "Votre pseudo" diff --git a/src/locale/locales/ga/messages.po b/src/locale/locales/ga/messages.po index 3814055007..51d196a40c 100644 --- a/src/locale/locales/ga/messages.po +++ b/src/locale/locales/ga/messages.po @@ -12,121 +12,222 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? 3 : 4\n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "(tá ábhar leabaithe ann)" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(gan ríomhphost)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" -msgstr "" +msgstr "{0, plural, one {duine amháin eile} two {beirt eile} few {{formattedCount} dhuine eile} many {{formattedCount} nduine eile} other {{formattedCount} duine eile}}" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" -msgstr "" +#, fuzzy +#~ msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgstr "{0, plural, one {Cuireadh # lipéad amháin ar an gcuntas seo} two {Cuireadh # lipéad ar an gcuntas seo} few {Cuireadh # lipéad ar an gcuntas seo} many {Cuireadh # lipéad ar an gcuntas seo} other {Cuireadh # lipéad ar an gcuntas seo}}" + +#: src/components/moderation/LabelsOnMe.tsx:55 +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" +msgstr "{0, plural, one {Cuireadh lipéad amháin ar an gcuntas seo} two {Cuireadh # lipéad ar an gcuntas seo} few {Cuireadh # lipéad ar an gcuntas seo} many {Cuireadh # lipéad ar an gcuntas seo} other {Cuireadh # lipéad ar an gcuntas seo}}" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" -msgstr "" +#, fuzzy +#~ msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgstr "{0, plural, one {Cuireadh # lipéad amháin ar an ábhar seo} two {Cuireadh # lipéad ar an ábhar seo} few {Cuireadh # lipéad ar an ábhar seo} many {Cuireadh # lipéad ar an ábhar seo} other {Cuireadh # lipéad ar an ábhar seo}}" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" +msgstr "{0, plural, one {Cuireadh lipéad amháin ar an ábhar seo} two {Cuireadh # lipéad ar an ábhar seo} few {Cuireadh # lipéad ar an ábhar seo} many {Cuireadh # lipéad ar an ábhar seo} other {Cuireadh # lipéad ar an ábhar seo}}" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" -msgstr "" +msgstr "{0, plural, one {# athphostáil} two {# athphostáil} few {# athphostáil} many {# n-athphostáil} other {# athphostáil}}" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/KnownFollowers.tsx:179 +#~ msgid "{0, plural, one {and # other} other {and # others}}" +#~ msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" -msgstr "" +msgstr "{0, plural, one {leantóir} two {leantóir} few {leantóir} many {leantóir} other {leantóir}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" -msgstr "" +msgstr "{0, plural, one {á leanúint} two {á leanúint} few {á leanúint} many {á leanúint} other {á leanúint}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" -msgstr "" +msgstr "{0, plural, one {Mol (# mholadh)} two {Mol (# mholadh)} few {Mol (# mholadh)} many {Mol (# moladh)} other {Mol (# moladh)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" -msgstr "" +msgstr "{0, plural, one {moladh} two {mholadh} few {mholadh} many {moladh} other {moladh}}" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{0, plural, one {Molta ag úsáideoir amháin} two {Molta ag beirt úsáideoirí} few {Molta ag # úsáideoir} many {Molta ag # n-úsáideoir} other {Molta ag # úsáideoir}}" #: src/screens/Profile/Header/Metrics.tsx:59 msgid "{0, plural, one {post} other {posts}}" -msgstr "" +msgstr "{0, plural, one {phostáil} two {phostáil} few {phostáil} many {bpostáil} other {postáil}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" -msgstr "" +msgstr "{0, plural, one {Freagair (# fhreagra)} two {Freagair (# fhreagra)} few {Freagair (# fhreagra)} many {Freagair (# bhfreagra)} other {Freagair (# freagra)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" +msgstr "{0, plural, one {athphostáil} two {athphostáil} few {athphostáil} many {athphostáil} other {athphostáil}}" + +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 +msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" +msgstr "{0, plural, one {Dímhol (# mholadh)} two {Dímhol (# mholadh)} few {Dímhol (# mholadh)} many {Dímhol (# moladh)} other {Dímhol (# moladh)}}" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 -msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" msgstr "" #: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" +#, fuzzy +#~ msgid "{0} your feeds" +#~ msgstr "Sábháilte le mo chuid fothaí" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "abhatár {0}" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" msgstr "" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" +msgstr "{count, plural, one {Molta ag úsáideoir amháin} two {Molta ag beirt úsáideoirí} few {Molta ag # úsáideoir} many {Molta ag # n-úsáideoir} other {Molta ag # úsáideoir}}" + +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" msgstr "" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" -msgstr "" +msgstr "{estimatedTimeHrs, plural, one {uair} two {uair} few {uair} many {uair} other {uair}}" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" -msgstr "" +msgstr "{estimatedTimeMins, plural, one {nóiméad} two {nóiméad} few {nóiméad} many {nóiméad} other {nóiméad}}" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} á leanúint" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 -msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "Ní féidir TD a chur chuig {handle}" -#: src/view/shell/Drawer.tsx:461 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 +msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" +msgstr "{likeCount, plural, one {Molta ag úsáideoir amháin} two {Molta ag beirt úsáideoirí} few {Molta ag # úsáideoir} many {Molta ag # n-úsáideoir} other {Molta ag # úsáideoir}}" + +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} gan léamh" -#: src/view/screens/PreferencesFollowingFeed.tsx:67 -msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:67 +msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" +msgstr "{value, plural, =0 {Taispeáin gach freagra} one {Taispeáin freagraí a bhfuil ar a laghad moladh amháin acu} two {Taispeáin freagraí a bhfuil ar a laghad # mholadh acu} few {Taispeáin freagraí a bhfuil ar a laghad # mholadh acu} many {Taispeáin freagraí a bhfuil ar a laghad # moladh acu} other {Taispeáin freagraí a bhfuil ar a laghad # moladh acu}}" + +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "<0/> ball" -#: src/view/shell/Drawer.tsx:101 -msgid "<0>{0} {1, plural, one {follower} other {followers}}" +#: src/screens/StarterPack/Wizard/index.tsx:485 +#~ msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" msgstr "" -#: src/view/shell/Drawer.tsx:112 +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:497 +#~ msgid "<0>{0}, <1>{1}, and {2} {3, plural, one {other} other {others}} are included in your starter pack" +#~ msgstr "" + +#: src/view/shell/Drawer.tsx:100 +msgid "<0>{0} {1, plural, one {follower} other {followers}}" +msgstr "<0>{0} {1, plural, one {leantóir} two {leantóir} few {leantóir} many {leantóir} other {leantóir}}" + +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" +msgstr "<0>{0} {1, plural, one {á leanúint} two {á leanúint} few {á leanúint} many {á leanúint} other {á leanúint}}" + +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" msgstr "" #: src/view/shell/Drawer.tsx:96 #~ msgid "<0>{0} following" #~ msgstr "<0>{0} á leanúint" +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "" + #: src/components/ProfileHoverCard/index.web.tsx:437 #~ msgid "<0>{followers} <1>{pluralizedFollowers}" #~ msgstr "<0>{following} <1>{pluralizedFollowers}" -#: src/components/ProfileHoverCard/index.web.tsx:449 -#: src/screens/Profile/Header/Metrics.tsx:45 +#: src/components/ProfileHoverCard/index.web.tsx:NaN #~ msgid "<0>{following} <1>following" #~ msgstr "<0>{following} <1>á leanúint" @@ -140,40 +241,48 @@ msgstr "" #: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." -msgstr "" +msgstr "<0>Neamhbhainteach. Níl an rabhadh seo ar fáil ach le haghaidh postálacha a bhfuil meáin ceangailte leo." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:21 #~ msgid "<0>Welcome to<1>Bluesky" #~ msgstr "<0>Fáilte go<1>Bluesky" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "⚠Leasainm Neamhbhailí" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" msgstr "Dearbhú 2FA" -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "" + +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "Oscail nascanna agus socruithe" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "Oscail próifíl agus nascanna eile" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "Inrochtaineacht" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" msgstr "Socruithe inrochtaineachta" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" msgstr "Socruithe Inrochtaineachta" @@ -181,26 +290,26 @@ msgstr "Socruithe Inrochtaineachta" #~ msgid "account" #~ msgstr "cuntas" -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "Cuntas" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "Cuntas blocáilte" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "Cuntas leanaithe" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "Cuireadh an cuntas i bhfolach" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "Cuireadh an cuntas i bhfolach" @@ -216,37 +325,46 @@ msgstr "Roghanna cuntais" msgid "Account removed from quick access" msgstr "Baineadh an cuntas ón mearliosta" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "Cuntas díbhlocáilte" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "Cuntas díleanaithe" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "Níl an cuntas i bhfolach a thuilleadh" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "Cuir leis" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Cuir rabhadh faoin ábhar leis" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "Cuir cuntas leis an liosta seo" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "Cuir cuntas leis seo" @@ -255,17 +373,18 @@ msgstr "Cuir cuntas leis seo" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Cuir téacs malartach leis seo" #: src/view/com/composer/GifAltText.tsx:175 +#, fuzzy #~ msgid "Add ALT text" -#~ msgstr "" +#~ msgstr "Cuir téacs malartach leis seo" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Cuir pasfhocal aipe leis seo" @@ -285,24 +404,36 @@ msgstr "Cuir focal atá le cur i bhfolach anseo le haghaidh socruithe a rinne t msgid "Add muted words and tags" msgstr "Cuir focail agus clibeanna a cuireadh i bhfolach leis seo" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/StarterPack/Wizard/index.tsx:197 +#~ msgid "Add people to your starter pack that you think others will enjoy following" +#~ msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" +msgstr "Cuir fothaí molta leis seo" + +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" msgstr "" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" -msgstr "" +msgstr "Ná cuir ach fotha réamhshocraithe de na daoine a leanann tú leis seo" #: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Cuir an taifead DNS seo a leanas le d'fhearann:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "Cuir le liostaí" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" msgstr "Cuir le mo chuid fothaí" @@ -310,40 +441,66 @@ msgstr "Cuir le mo chuid fothaí" #~ msgid "Added" #~ msgstr "Curtha leis" -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "Curtha leis an liosta" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" msgstr "Curtha le mo chuid fothaí" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Sonraigh an méid moltaí ar fhreagra atá de dhíth le bheith le feiceáil i d'fhotha." #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Ábhar do dhaoine fásta" +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "" + #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." msgstr "Tá ábhar do dhaoine fásta curtha ar ceal." -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "Ardleibhéal" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." msgstr "Na fothaí go léir a shábháil tú, in áit amháin." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "Ceadaigh fáil ar do chuid TDanna" + +#: src/screens/Messages/Settings.tsx:NaN +#, fuzzy +#~ msgid "Allow messages from" +#~ msgstr "Ceadaigh teachtaireachtaí nua ó" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "Ceadaigh teachtaireachtaí nua ó" + #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "An bhfuil cód agat cheana?" @@ -353,19 +510,19 @@ msgstr "Logáilte isteach cheana mar @{0}" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" msgstr "Téacs malartach" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" -msgstr "" +msgstr "Téacs Malartach" #: src/view/com/composer/photos/Gallery.tsx:224 msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." @@ -380,117 +537,175 @@ msgstr "Cuireadh teachtaireacht ríomhphoist chuig {0}. Tá cód dearbhaithe fao msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Cuireadh teachtaireacht ríomhphoist chuig do sheanseoladh. {0}. Tá cód dearbhaithe faoi iamh." -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" msgstr "Tharla earráid" -#: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/components/StarterPack/ShareDialog.tsx:79 +#~ msgid "An error occurred while saving the image." +#~ msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:134 +#~ msgid "An error occurred while trying to delete the message. Please try again." +#~ msgstr "Tharla earráid agus an teachtaireacht á scriosadh. Bain triail eile as." + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "Rud nach bhfuil ar fáil sna roghanna seo" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Tharla fadhb. Déan iarracht eile, le do thoil." -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" -msgstr "" +msgstr "tharla earráid nach eol dúinn" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "agus" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "Ainmhithe" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" msgstr "GIF beo" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "Iompar Frithshóisialta" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "Teanga na haipe" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Pasfhocal na haipe scriosta" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "Ní féidir ach litreacha, uimhreacha, spásanna, daiseanna agus fostríocanna a bheith in ainmneacha phasfhocal na haipe." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "Caithfear 4 charachtar ar a laghad a bheith in ainmneacha phasfhocal na haipe." -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "Socruithe phasfhocal na haipe" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "Pasfhocal na haipe" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "Achomharc" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "Achomharc in aghaidh lipéid \"{0}\"" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" -msgstr "" +msgstr "Achomharc déanta" #: src/components/moderation/LabelsOnMeDialog.tsx:193 #~ msgid "Appeal submitted." #~ msgstr "Achomharc déanta" -#: src/view/screens/Settings/index.tsx:430 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "Déan achomharc i gcoinne an chinnidh seo" + +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "Cuma" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" -msgstr "" +msgstr "Bain úsáid as fothaí réamhshocraithe a moladh" -#: src/view/screens/AppPasswords.tsx:265 +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +#~ msgid "Are you sure you want delete this starter pack?" +#~ msgstr "" + +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "An bhfuil tú cinnte gur mhaith leat pasfhocal na haipe “{name}” a scriosadh?" #: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#, fuzzy +#~ msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgstr "An bhfuil tú cinnte gur mhaith leat an teachtaireacht seo a scrios? Scriosfar duitse í ach ní don duine eile atá páirteach." + +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." +msgstr "An bhfuil tú cinnte gur mhaith leat an teachtaireacht seo a scrios? Scriosfar duitse í ach ní don duine eile atá páirteach." + +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" msgstr "" #: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." -msgstr "" +#, fuzzy +#~ msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgstr "An bhfuil tú cinnte gur mhaith leat imeacht ón gcomhrá seo? Scriosfar duitse é ach ní don duine eile atá páirteach." -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." +msgstr "An bhfuil tú cinnte gur mhaith leat imeacht ón gcomhrá seo? Scriosfar duitse é ach ní don duine eile atá páirteach." + +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "An bhfuil tú cinnte gur mhaith leat {0} a bhaint de do chuid fothaí?" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "An bhfuil tú cinnte gur mhaith leat an dréacht seo a scriosadh?" @@ -502,7 +717,8 @@ msgstr "Lánchinnte?" msgid "Are you writing in <0>{0}?" msgstr "An bhfuil tú ag scríobh sa teanga <0>{0}?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "Ealaín" @@ -510,32 +726,35 @@ msgstr "Ealaín" msgid "Artistic or non-erotic nudity." msgstr "Lomnochtacht ealaíonta nó gan a bheith gáirsiúil." -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "3 charachtar ar a laghad" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "Ar ais" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "Toisc go bhfuil suim agat in {interestsText}" +#~ msgid "Based on your interest in {interestsText}" +#~ msgstr "Toisc go bhfuil suim agat in {interestsText}" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "Bunrudaí" @@ -543,56 +762,56 @@ msgstr "Bunrudaí" msgid "Birthday" msgstr "Breithlá" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "Breithlá:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "Blocáil" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" -msgstr "" +msgstr "Blocáil an cuntas seo" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "Blocáil an cuntas seo" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "Blocáil an cuntas seo?" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "Blocáil na cuntais seo" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "Liosta blocála" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "An bhfuil fonn ort na cuntais seo a bhlocáil?" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "Blocáilte" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "Cuntais bhlocáilte" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "Cuntais bhlocáilte" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Ní féidir leis na cuntais bhlocáilte freagra a thabhairt ar do chomhráite, tagairt a dhéanamh duit, ná aon phlé eile a bheith acu leat." @@ -600,19 +819,19 @@ msgstr "Ní féidir leis na cuntais bhlocáilte freagra a thabhairt ar do chomhr msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Ní féidir leis na cuntais bhlocáilte freagra a thabhairt ar do chomhráite, tagairt a dhéanamh duit, ná aon phlé eile a bheith acu leat. Ní fheicfidh tú a gcuid ábhair agus ní fheicfidh siad do chuid ábhair." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "Postáil bhlocáilte." -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Ní bhacann blocáil an lipéadóir seo ar lipéid a chur ar do chuntas." -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Tá an bhlocáil poiblí. Ní féidir leis na cuntais bhlocáilte freagra a thabhairt ar do chomhráite, tagairt a dhéanamh duit, ná aon phlé eile a bheith acu leat." -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." msgstr "Ní chuirfidh blocáil cosc ar lipéid a bheith curtha ar do chuntas, ach bacfaidh sí an cuntas seo ar fhreagraí a thabhairt i do chuid snáitheanna agus ar chaidreamh a dhéanamh leat." @@ -629,6 +848,10 @@ msgstr "Bluesky" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "Is líonra oscailte é Bluesky, lenar féidir leat do sholáthraí óstála féin a roghnú. Tá leagan béite d'óstáil shaincheaptha ar fáil d'fhorbróirí anois." +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "" + #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:NaN #~ msgid "Bluesky is flexible." #~ msgstr "Tá Bluesky solúbtha." @@ -641,7 +864,11 @@ msgstr "Is líonra oscailte é Bluesky, lenar féidir leat do sholáthraí óst #~ msgid "Bluesky is public." #~ msgstr "Tá Bluesky poiblí." -#: src/screens/Moderation/index.tsx:533 +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "" + +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Ní thaispeánfaidh Bluesky do phróifíl ná do chuid postálacha d’úsáideoirí atá logáilte amach. Is féidir nach gcloífidh aipeanna eile leis an iarratas seo. I bhfocail eile, ní bheidh do chuntas anseo príobháideach." @@ -653,20 +880,39 @@ msgstr "Déan íomhánna doiléir" msgid "Blur images and filter from feeds" msgstr "Déan íomhánna doiléir agus scag ó fhothaí iad" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "Leabhair" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 -msgid "Browse other feeds" +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" msgstr "" +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 +msgid "Browse other feeds" +msgstr "Tabhair súil ar fhothaí eile" + #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "Gnó" -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "le —" @@ -679,10 +925,10 @@ msgid "By {0}" msgstr "Le {0}" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" +#~ msgid "by @{0}" +#~ msgstr "ag @{0}" -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "le <0/>" @@ -690,7 +936,7 @@ msgstr "le <0/>" msgid "By creating an account you agree to the {els}." msgstr "Le cruthú an chuntais aontaíonn tú leis na {els}." -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "leat" @@ -698,7 +944,7 @@ msgstr "leat" msgid "Camera" msgstr "Ceamara" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Ní féidir ach litreacha, uimhreacha, spásanna, daiseanna agus fostríocanna a bheith ann. Caithfear 4 charachtar ar a laghad a bheith ann agus gan níos mó ná 32 charachtar." @@ -706,14 +952,15 @@ msgstr "Ní féidir ach litreacha, uimhreacha, spásanna, daiseanna agus fostrí #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -721,23 +968,23 @@ msgstr "Ní féidir ach litreacha, uimhreacha, spásanna, daiseanna agus fostrí #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "Cealaigh" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "Cealaigh" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "Ná scrios an chuntas" @@ -753,12 +1000,16 @@ msgstr "Cealaigh bearradh na híomhá" msgid "Cancel profile editing" msgstr "Cealaigh eagarthóireacht na próifíle" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "Ná déan athlua na postála" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "Cuir an t-athghníomhú ar ceal agus logáil amach" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "Cealaigh an cuardach" @@ -770,17 +1021,17 @@ msgstr "Cuireann sé seo oscailt an tsuímh gréasáin atá nasctha ar ceal" msgid "Change" msgstr "Athraigh" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "Athraigh" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "Athraigh mo leasainm" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "Athraigh mo leasainm" @@ -788,12 +1039,12 @@ msgstr "Athraigh mo leasainm" msgid "Change my email" msgstr "Athraigh mo ríomhphost" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "Athraigh mo phasfhocal" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "Athraigh mo phasfhocal" @@ -805,29 +1056,39 @@ msgstr "Athraigh an teanga phostála go {0}" msgid "Change Your Email" msgstr "Athraigh do ríomhphost" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" -msgstr "" +msgstr "Comhrá" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" -msgstr "" +msgstr "Balbhaíodh an comhrá" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" -msgstr "" +msgstr "Socruithe comhrá" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "Socruithe Comhrá" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" -msgstr "" +msgstr "Díbhalbhaíodh an comhrá" #: src/screens/Messages/Conversation/index.tsx:26 #~ msgid "Chat with {chatId}" -#~ msgstr "" +#~ msgstr "Comhrá le {chatId}" -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "Seiceáil mo stádas" @@ -839,23 +1100,43 @@ msgstr "Seiceáil mo stádas" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Cuir súil ar na húsáideoirí seo. Lean iad le húsáideoirí atá cosúil leo a fheiceáil." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." msgstr "Féach ar do bhosca ríomhphoist le haghaidh cód dearbhaithe agus cuir isteach anseo é." -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Féach ar do bhosca ríomhphoist le haghaidh teachtaireachta leis an gcód dearbhaithe atá le cur isteach thíos." -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "Roghnaigh “Chuile Dhuine” nó “Duine Ar Bith”" +#: src/view/com/modals/Threadgate.tsx:75 +#~ msgid "Choose \"Everybody\" or \"Nobody\"" +#~ msgstr "Roghnaigh “Chuile Dhuine” nó “Duine Ar Bith”" + +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "Roghnaigh Seirbhís" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." msgstr "Roghnaigh na halgartaim le haghaidh do chuid sainfhothaí." @@ -865,42 +1146,47 @@ msgstr "Roghnaigh na halgartaim le haghaidh do chuid sainfhothaí." #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 msgid "Choose this color as your avatar" +msgstr "Roghnaigh an dath seo mar abhatár duit" + +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "Roghnaigh do phríomhfhothaí" +#~ msgid "Choose your main feeds" +#~ msgstr "Roghnaigh do phríomhfhothaí" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "Roghnaigh do phasfhocal" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "Glan na sonraí oidhreachta ar fad atá i dtaisce." -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "Glan na sonraí oidhreachta ar fad atá i dtaisce. Ansin atosaigh." -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "Glan na sonraí ar fad atá i dtaisce." -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "Glan na sonraí ar fad atá i dtaisce. Ansin atosaigh." #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "Glan an cuardach" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "Glanann seo na sonraí oidhreachta ar fad atá i dtaisce" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "Glanann seo na sonraí ar fad atá i dtaisce" @@ -908,9 +1194,18 @@ msgstr "Glanann seo na sonraí ar fad atá i dtaisce" msgid "click here" msgstr "cliceáil anseo" +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" +msgstr "Cliceáil anseo le tuilleadh a fhoghlaim faoi dhíghníomhú do chuntais" + +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "Cliceáil anseo do bhreis eolais." + #: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." -msgstr "" +#, fuzzy +#~ msgid "Click here to add one." +#~ msgstr "Cliceáil anseo do bhreis eolais." #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" @@ -920,19 +1215,33 @@ msgstr "Cliceáil anseo le clár na clibe le haghaidh {tag} a oscailt" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "Cliceáil anseo le clár na clibe le haghaidh #{tag} a oscailt" -#: src/screens/Onboarding/index.tsx:47 +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "Cliceáil le triail eile a bhaint as teachtaireacht ar theip uirthi" + +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "Aeráid" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "Trup, Trup a Chapaillín 🐴" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "Dún" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "Dún an dialóg oscailte" @@ -944,11 +1253,12 @@ msgstr "Dún an rabhadh" msgid "Close bottom drawer" msgstr "Dún an tarraiceán íochtair" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" msgstr "Dún an dialóg" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" msgstr "Dún an dialóg GIF" @@ -960,6 +1270,10 @@ msgstr "Dún an íomhá" msgid "Close image viewer" msgstr "Dún amharcóir na n-íomhánna" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "Dún an fhuinneog" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "Dún an buntásc" @@ -977,7 +1291,7 @@ msgstr "Dúnann sé seo an barra nascleanúna ag an mbun" msgid "Closes password update alert" msgstr "Dúnann sé seo an rabhadh faoi uasdátú an phasfhocail" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "Dúnann sé seo cumadóir na postálacha agus ní shábhálann sé an dréacht" @@ -985,42 +1299,48 @@ msgstr "Dúnann sé seo cumadóir na postálacha agus ní shábhálann sé an dr msgid "Closes viewer for header image" msgstr "Dúnann sé seo an t-amharcóir le haghaidh íomhá an cheanntáisc" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "Laghdaigh an liosta úsáideoirí" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "Laghdaíonn sé seo liosta na n-úsáideoirí le haghaidh an fhógra sin" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "Greann" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "Greannáin" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Treoirlínte an phobail" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "Críochnaigh agus tosaigh ag baint úsáide as do chuntas." -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "Freagair an dúshlán" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Scríobh postálacha chomh fada le {MAX_GRAPHEME_LENGTH} litir agus carachtair eile" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "Scríobh freagra" #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "Socraigh scagadh an ábhair le haghaidh catagóir: {0}" +#~ msgid "Configure content filtering setting for category: {0}" +#~ msgstr "Socraigh scagadh an ábhair le haghaidh catagóir: {0}" #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" @@ -1030,13 +1350,11 @@ msgstr "Socraigh scagadh an ábhair le haghaidh catagóir: {name}" msgid "Configured in <0>moderation settings." msgstr "Le socrú i <0>socruithe na modhnóireachta." -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -1051,33 +1369,33 @@ msgstr "Dearbhaigh an t-athrú" msgid "Confirm content language settings" msgstr "Dearbhaigh socruithe le haghaidh teanga an ábhair" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "Dearbhaigh scriosadh an chuntais" -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "Dearbhaigh d'aois:" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "Dearbhaigh do bhreithlá" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Cód dearbhaithe" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "Ag nascadh…" -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "Teagmháil le Support" @@ -1089,28 +1407,28 @@ msgstr "Teagmháil le Support" msgid "Content Blocked" msgstr "Ábhar Blocáilte" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "Scagthaí ábhair" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "Teangacha ábhair" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "Ábhar nach bhfuil ar fáil" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "Rabhadh ábhair" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "Rabhadh ábhair" @@ -1118,12 +1436,8 @@ msgstr "Rabhadh ábhair" msgid "Context menu backdrop, click to close the menu." msgstr "Cúlra an roghchláir comhthéacs, cliceáil chun an roghchlár a dhúnadh." -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "Lean ar aghaidh" @@ -1131,41 +1445,47 @@ msgstr "Lean ar aghaidh" msgid "Continue as {0} (currently signed in)" msgstr "Lean ort mar {0} (atá logáilte isteach faoi láthair)" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "Lean ar aghaidh go dtí an chéad chéim eile" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "Lean ar aghaidh go dtí an chéad chéim eile" +#~ msgid "Continue to the next step" +#~ msgstr "Lean ar aghaidh go dtí an chéad chéim eile" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" -msgstr "Lean ar aghaidh go dtí an chéad chéim eile gan aon chuntas a leanúint" +#~ msgid "Continue to the next step without following any accounts" +#~ msgstr "Lean ar aghaidh go dtí an chéad chéim eile gan aon chuntas a leanúint" -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" +msgstr "Scriosadh an comhrá" + +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "Cócaireacht" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Cóipeáilte" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "Leagan cóipeáilte sa ghearrthaisce" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "Cóipeáilte sa ghearrthaisce" @@ -1173,11 +1493,12 @@ msgstr "Cóipeáilte sa ghearrthaisce" msgid "Copied!" msgstr "Cóipeáilte!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Cóipeálann sé seo pasfhocal na haipe" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Cóipeáil" @@ -1190,64 +1511,99 @@ msgstr "Cóipeáil {0}" msgid "Copy code" msgstr "Cóipeáil an cód" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "Cóipeáil an nasc leis an liosta" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "Cóipeáil an nasc leis an bpostáil" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" -msgstr "" +msgstr "Cóipeáil téacs na teachtaireachta" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "Cóipeáil téacs na postála" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "An polasaí maidir le cóipcheart" -#: src/components/dms/ConvoMenu.tsx:80 -msgid "Could not leave chat" +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" msgstr "" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/components/dms/LeaveConvoPrompt.tsx:39 +msgid "Could not leave chat" +msgstr "Níor éiríodh ar an gcomhrá a fhágail" + +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" msgstr "Ní féidir an fotha a lódáil" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "Ní féidir an liosta a lódáil" #: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "" +#~ msgid "Could not load profiles. Please try again later." +#~ msgstr "Níorbh fhéidir próifílí a lódáil. Bain triail eile as ar ball." -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" -msgstr "" +msgstr "Níor éiríodh ar an gcomhrá a bhalbhú" #: src/components/dms/ConvoMenu.tsx:68 +#, fuzzy #~ msgid "Could not unmute chat" -#~ msgstr "" +#~ msgstr "Níor éiríodh ar an gcomhrá a bhalbhú" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "Cruthaigh cuntas nua" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "Cruthaigh cuntas nua Bluesky" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "Cruthaigh cuntas" @@ -1256,11 +1612,15 @@ msgstr "Cruthaigh cuntas" msgid "Create an account" msgstr "Cruthaigh cuntas" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" +msgstr "Cruthaigh abhatár nua ina ionad sin" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Cruthaigh pasfhocal aipe" @@ -1269,11 +1629,15 @@ msgstr "Cruthaigh pasfhocal aipe" msgid "Create new account" msgstr "Cruthaigh cuntas nua" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/StarterPack/ShareDialog.tsx:158 +#~ msgid "Create QR code" +#~ msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "Cruthaigh tuairisc do {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "Cruthaíodh {0}" @@ -1281,7 +1645,8 @@ msgstr "Cruthaíodh {0}" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "Cruthaíonn sé seo cárta le mionsamhail. Nascann an cárta le {url}." -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "Cultúr" @@ -1294,8 +1659,8 @@ msgstr "Saincheaptha" msgid "Custom domain" msgstr "Sainfhearann" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Cruthaíonn an pobal fothaí chun eispéiris nua a chur ar fáil duit, agus chun cabhrú leat teacht ar an ábhar a thaitníonn leat" @@ -1303,8 +1668,8 @@ msgstr "Cruthaíonn an pobal fothaí chun eispéiris nua a chur ar fáil duit, a msgid "Customize media from external sites." msgstr "Oiriúnaigh na meáin ó shuíomhanna seachtracha" -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "Dorcha" @@ -1312,15 +1677,24 @@ msgstr "Dorcha" msgid "Dark mode" msgstr "Modh dorcha" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "Téama Dorcha" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "Dáta breithe" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "Díghníomhaigh mo chuntas" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "Díghníomhaigh mo chuntas" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" msgstr "Dífhabhtaigh Modhnóireacht" @@ -1328,14 +1702,17 @@ msgstr "Dífhabhtaigh Modhnóireacht" msgid "Debug panel" msgstr "Painéal dífhabhtaithe" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "Scrios" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "Scrios an cuntas" @@ -1343,65 +1720,83 @@ msgstr "Scrios an cuntas" #~ msgid "Delete Account" #~ msgstr "Scrios an Cuntas" -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" -msgstr "" +msgstr "Scrios Cuntas <0>\"<1>{0}<2>\"" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Scrios pasfhocal na haipe" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Scrios pasfhocal na haipe?" -#: src/components/dms/MessageMenu.tsx:101 -msgid "Delete for me" -msgstr "" +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "Scrios taifead dearbhaithe comhrá" -#: src/view/screens/ProfileList.tsx:466 +#: src/components/dms/MessageMenu.tsx:124 +msgid "Delete for me" +msgstr "Scrios domsa" + +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "Scrios an liosta" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" -msgstr "" +msgstr "Scrios an teachtaireacht seo" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" -msgstr "" +msgstr "Scrios an teachtaireacht seo domsa" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "Scrios mo chuntas" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "Scrios mo chuntas…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "Scrios an phostáil" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "An bhfuil fonn ort an liosta seo a scriosadh?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "An bhfuil fonn ort an phostáil seo a scriosadh?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "Scriosta" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." msgstr "Scriosadh an phostáil." -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "Scriosann sé seo an taifead dearbhaithe comhrá" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1409,17 +1804,21 @@ msgstr "Cur síos" #: src/view/com/composer/GifAltText.tsx:140 msgid "Descriptive alt text" -msgstr "" +msgstr "Téacs malartach tuairisciúil" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "Ar mhaith leat rud éigin a rá?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "Breacdhorcha" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "Tá teachtaireachtaí díreacha ar fáil anois!" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" msgstr "Ná seinn GIFanna go huathoibríoch" @@ -1427,10 +1826,14 @@ msgstr "Ná seinn GIFanna go huathoibríoch" msgid "Disable Email 2FA" msgstr "Ná húsáid 2FA trí ríomhphost" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" msgstr "Ná húsáid aiseolas haptach" +#: src/view/screens/Settings/index.tsx:697 +#~ msgid "Disable haptics" +#~ msgstr "Ná húsáid aiseolas haptach" + #: src/view/screens/Settings/index.tsx:697 #~ msgid "Disable vibrations" #~ msgstr "Ná húsáid creathadh" @@ -1438,32 +1841,50 @@ msgstr "Ná húsáid aiseolas haptach" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "Díchumasaithe" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "Ná sábháil" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "Faigh réidh leis an dréacht?" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "Cuir ina luí ar aipeanna gan mo chuntas a thaispeáint d'úsáideoirí atá logáilte amach" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" msgstr "Aimsigh sainfhothaí nua" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "" + +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "Aimsigh Fothaí Nua" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "Ainm taispeána" @@ -1480,7 +1901,7 @@ msgstr "Painéal DNS" msgid "Does not include nudity." msgstr "Níl lomnochtacht ann." -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "Ní thosaíonn ná chríochnaíonn sé le fleiscín" @@ -1494,30 +1915,27 @@ msgstr "Fearann dearbhaithe!" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "Déanta" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "Déanta" @@ -1526,18 +1944,22 @@ msgstr "Déanta" msgid "Done{extraText}" msgstr "Déanta{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "Íoslódáil comhad CAR" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "Scaoil anseo chun íomhánna a chur leis" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "De bharr pholasaí Apple, ní féidir ábhar do dhaoine fásta ar an nGréasán a fháil roimh an logáil isteach a chríochnú." +#~ msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." +#~ msgstr "De bharr pholasaí Apple, ní féidir ábhar do dhaoine fásta ar an nGréasán a fháil roimh an logáil isteach a chríochnú." #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" @@ -1559,19 +1981,19 @@ msgstr "m.sh. Ealaíontóir, File, Eolaí" msgid "E.g. artistic nudes." msgstr "Noicht ealaíonta, mar shampla" -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "m.sh. Na cuntais is fearr" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "m.sh. Seoltóirí turscair" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "m.sh. Na cuntais nach dteipeann orthu riamh" -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "m.sh. Úsáideoirí a fhreagraíonn le fógraí" @@ -1579,32 +2001,45 @@ msgstr "m.sh. Úsáideoirí a fhreagraíonn le fógraí" msgid "Each code works once. You'll receive more invite codes periodically." msgstr "Oibríonn gach cód uair amháin. Gheobhaidh tú tuilleadh cód go tráthrialta." +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "Eagar" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "Cuir an t-abhatár in eagar" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "Cuir an íomhá seo in eagar" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "Athraigh mionsonraí an liosta" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "Athraigh liosta na modhnóireachta" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" msgstr "Athraigh mo chuid fothaí" @@ -1612,25 +2047,36 @@ msgstr "Athraigh mo chuid fothaí" msgid "Edit my profile" msgstr "Athraigh mo phróifíl" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "Athraigh an phróifíl" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "Athraigh an Phróifíl" -#: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "Athraigh na fothaí sábháilte" +#: src/view/com/home/HomeHeaderLayout.web.tsx:NaN +#~ msgid "Edit Saved Feeds" +#~ msgstr "Athraigh na fothaí sábháilte" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "Athraigh an liosta d’úsáideoirí" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "Athraigh d’ainm taispeána" @@ -1639,11 +2085,20 @@ msgstr "Athraigh d’ainm taispeána" msgid "Edit your profile description" msgstr "Athraigh an cur síos ort sa phróifíl" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "Oideachas" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "Ríomhphost" @@ -1669,7 +2124,7 @@ msgstr "Seoladh ríomhphoist uasdátaithe" msgid "Email verified" msgstr "Ríomhphost dearbhaithe" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "Ríomhphost:" @@ -1678,8 +2133,8 @@ msgid "Embed HTML code" msgstr "Leabaigh an cód HTML" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" msgstr "Leabaigh an phostáil" @@ -1691,29 +2146,33 @@ msgstr "Leabaigh an phostáil seo i do shuíomh gréasáin féin. Cóipeáil an msgid "Enable {0} only" msgstr "Cuir {0} amháin ar fáil" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "Cuir ábhar do dhaoine fásta ar fáil" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "Cuir ábhar do dhaoine fásta ar fáil" +#~ msgid "Enable Adult Content" +#~ msgstr "Cuir ábhar do dhaoine fásta ar fáil" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "Cuir ábhar do dhaoine fásta ar fáil i do chuid fothaí" +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:NaN +#~ msgid "Enable adult content in your feeds" +#~ msgstr "Cuir ábhar do dhaoine fásta ar fáil i do chuid fothaí" #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 msgid "Enable external media" msgstr "Cuir meáin sheachtracha ar fáil" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "Cuir seinnteoirí na meán ar fáil le haghaidh" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "Cuir an socrú seo ar siúl le gan ach freagraí i measc na ndaoine a leanann tú a fheiceáil." @@ -1721,7 +2180,9 @@ msgstr "Cuir an socrú seo ar siúl le gan ach freagraí i measc na ndaoine a le msgid "Enable this source only" msgstr "Cuir an foinse seo amháin ar fáil" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "Cumasaithe" @@ -1729,7 +2190,16 @@ msgstr "Cumasaithe" msgid "End of feed" msgstr "Deireadh an fhotha" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/components/Lists.tsx:52 +#, fuzzy +#~ msgid "End of list" +#~ msgstr "Curtha leis an liosta" + +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Cuir isteach ainm don phasfhocal aipe seo" @@ -1746,7 +2216,7 @@ msgstr "Cuir focal na clib isteach" msgid "Enter Confirmation Code" msgstr "Cuir isteach an cód dearbhaithe" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "Cuir isteach an cód a fuair tú chun do phasfhocal a athrú." @@ -1763,7 +2233,7 @@ msgid "Enter your birth date" msgstr "Cuir isteach do bhreithlá" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "Cuir isteach do sheoladh ríomhphoist" @@ -1779,32 +2249,45 @@ msgstr "Cuir isteach do sheoladh ríomhphoist nua thíos." msgid "Enter your username and password" msgstr "Cuir isteach do leasainm agus do phasfhocal" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" -msgstr "" +msgstr "Tharla earráid le linn comhad a shábháil" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "Earráid agus an freagra ar an captcha á phróiseáil." -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "Earráid:" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "Chuile dhuine" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "Tig le chuile dhuine freagra a thabhairt" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "Chuile dhuine" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "An iomarca tagairtí nó freagraí" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" -msgstr "" +msgstr "Teachtaireachtaí iomarcacha nó nach bhfuil de dhíth" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "Fágann sé seo próiseas scrios an chuntais" @@ -1820,8 +2303,8 @@ msgstr "Fágann sé seo próiseas laghdú an íomhá" msgid "Exits image view" msgstr "Fágann sé seo an radharc ar an íomhá" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "Fágann sé seo an cuardach" @@ -1829,11 +2312,19 @@ msgstr "Fágann sé seo an cuardach" msgid "Expand alt text" msgstr "Taispeáin an téacs malartach ina iomláine" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "Leathnaigh an liosta úsáideoirí" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "Leathnaigh nó laghdaigh an téacs iomlán a bhfuil tú ag freagairt" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "Meáin is féidir a bheith gáirsiúil nó goilliúnach." @@ -1842,12 +2333,12 @@ msgstr "Meáin is féidir a bheith gáirsiúil nó goilliúnach." msgid "Explicit sexual images." msgstr "Íomhánna gnéasacha." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "Easpórtáil mo chuid sonraí" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "Easpórtáil mo chuid sonraí" @@ -1857,82 +2348,144 @@ msgid "External Media" msgstr "Meáin sheachtracha" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "Is féidir le meáin sheachtracha cumas a thabhairt do shuíomhanna ar an nGréasán eolas fútsa agus faoi do ghléas a chnuasach. Ní sheoltar ná iarrtar aon eolas go dtí go mbrúnn tú an cnaipe “play”." -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "Roghanna maidir le meáin sheachtracha" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "Socruithe maidir le meáin sheachtracha" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "Teip ar phasfhocal aipe a chruthú." -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "Teip ar chruthú an liosta. Seiceáil do nasc leis an idirlíon agus déan iarracht eile." -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" -msgstr "" +msgstr "Teip ar theachtaireacht a scriosadh" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "Teip ar scriosadh na postála. Déan iarracht eile." -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" msgstr "Theip ar lódáil na GIFanna" +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" +msgstr "Teip ar theachtaireachtaí roimhe seo a lódáil" + #: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." -msgstr "" +#, fuzzy +#~ msgid "Failed to load past messages." +#~ msgstr "Teip ar theachtaireachtaí roimhe seo a lódáil" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:NaN #~ msgid "Failed to load recommended feeds" #~ msgstr "Teip ar lódáil na bhfothaí molta" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "Níor sábháladh an íomhá: {0}" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "Teip ar sheoladh" + +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +#, fuzzy +#~ msgid "Failed to send message(s)." +#~ msgstr "Teip ar theachtaireacht a scriosadh" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "Teip ar achomharc a dhéanamh, bain triail eile as, le do thoil." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "Teip ar shocruithe a uasdátú" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "Fotha" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "Fotha le {0}" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "Fotha as líne" +#: src/view/screens/Feeds.tsx:709 +#~ msgid "Feed offline" +#~ msgstr "Fotha as líne" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "Aiseolas" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" msgstr "Fothaí" @@ -1940,37 +2493,45 @@ msgstr "Fothaí" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Is iad na húsáideoirí a chruthaíonn na fothaí le hábhar is spéis leo a chur ar fáil. Roghnaigh cúpla fotha a bhfuil suim agat iontu." -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Is sainalgartaim iad na fothaí. Cruthaíonn úsáideoirí a bhfuil beagán taithí acu ar chódáil iad. <0/> le tuilleadh eolais a fháil." #: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" -msgstr "Is féidir le fothaí a bheith bunaithe ar chúrsaí reatha freisin!" +#~ msgid "Feeds can be topical as well!" +#~ msgstr "Is féidir le fothaí a bheith bunaithe ar chúrsaí reatha freisin!" + +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Ábhar an Chomhaid" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" -msgstr "" +msgstr "Sábháladh an comhad!" #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Scag ó mo chuid fothaí" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "Ag cur crích air" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "Aimsigh fothaí le leanúint" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "" + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" msgstr "Aimsigh postálacha agus úsáideoirí ar Bluesky" @@ -1986,19 +2547,27 @@ msgstr "Aimsigh postálacha agus úsáideoirí ar Bluesky" #~ msgid "Finding similar accounts..." #~ msgstr "Cuntais eile atá cosúil leis seo á n-aimsiú..." -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." msgstr "Mionathraigh an t-ábhar a fheiceann tú ar an bhfotha Following." -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "Mionathraigh na snáitheanna chomhrá" -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "Folláine" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "Solúbtha" @@ -2011,112 +2580,172 @@ msgstr "Iompaigh go cothrománach é" msgid "Flip vertically" msgstr "Iompaigh go hingearach é" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "Lean" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "Lean" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Lean {0}" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "Lean {name}" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "Lean an cuntas seo" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" -msgstr "Lean iad uile" +#~ msgid "Follow All" +#~ msgstr "Lean iad uile" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "Lean Ar Ais" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" -msgstr "Lean na cuntais roghnaithe agus téigh ar aghaidh go dtí an chéad chéim eile" +#~ msgid "Follow selected accounts and continue to the next step" +#~ msgstr "Lean na cuntais roghnaithe agus téigh ar aghaidh go dtí an chéad chéim eile" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:65 #~ msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." #~ msgstr "Lean cúpla cuntas mar thosú. Tig linn níos mó úsáideoirí a mholadh duit a mbeadh suim agat iontu." -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" -msgstr "Leanta ag {0}" +#: src/components/KnownFollowers.tsx:169 +#~ msgid "Followed by" +#~ msgstr "" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/view/com/profile/ProfileCard.tsx:190 +#~ msgid "Followed by {0}" +#~ msgstr "Leanta ag {0}" + +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" +msgstr "" + +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "Cuntais a leanann tú" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "Cuntais a leanann tú amháin" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "— lean sé/sí thú" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Leantóirí" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "Á leanúint" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" msgstr "Ag leanúint {0}" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "Ag leanacht {name}" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" msgstr "Roghanna le haghaidh an fhotha Following" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" msgstr "Roghanna don Fhotha Following" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "Leanann sé/sí thú" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "Leanann sé/sí thú" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "Bia" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Ar chúiseanna slándála, beidh orainn cód dearbhaithe a chur chuig do sheoladh ríomhphoist." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Ar chúiseanna slándála, ní bheidh tú in ann é seo a fheiceáil arís. Má chailleann tú an pasfhocal seo beidh ort ceann nua a chruthú." @@ -2125,15 +2754,15 @@ msgstr "Ar chúiseanna slándála, ní bheidh tú in ann é seo a fheiceáil ar msgid "Forgot Password" msgstr "Pasfhocal dearmadta" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "Pasfhocal dearmadta?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "Dearmadta?" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "Is minic a phostálann siad ábhar nach bhfuil de dhíth" @@ -2141,7 +2770,7 @@ msgstr "Is minic a phostálann siad ábhar nach bhfuil de dhíth" msgid "From @{sanitizedAuthor}" msgstr "Ó @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "Ó <0/>" @@ -2150,48 +2779,77 @@ msgstr "Ó <0/>" msgid "Gallery" msgstr "Gailearaí" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "Tús maith" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Ar aghaidh leat anois!" -#: src/screens/Onboarding/StepProfile/index.tsx:228 -msgid "Give your profile a face" +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" msgstr "" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 +msgid "Give your profile a face" +msgstr "Tabhair gnúis do do phróifíl" + +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "Deargshárú an dlí nó na dtéarmaí seirbhíse" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "Ar ais" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "Ar ais" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:189 +#~ msgid "Go back to previous screen" +#~ msgstr "" + +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "Fill ar an gcéim roimhe seo" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "Abhaile" @@ -2204,129 +2862,139 @@ msgstr "Abhaile" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "Téigh go dtí @{queryMaybeHandle}" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "Téigh go comhrá le {0}" + #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "Téigh go dtí an chéad rud eile" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" +msgstr "Téigh go próifíl" + +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" msgstr "" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" -msgstr "" +msgstr "Téigh go próifíl an úsáideora" #: src/lib/moderation/useGlobalLabelStrings.ts:46 msgid "Graphic Media" msgstr "Meáin Ghrafacha" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Leasainm" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" msgstr "Haptaic" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "Ciapadh, trolláil, nó éadulaingt" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "Haischlib" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "Haischlib: #{tag}" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "Fadhb ort?" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "Cúnamh" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." -msgstr "" +msgstr "Tabhair le fios dúinn nach bot thú trí pictiúr a uaslódáil nó abhatár a chruthú." #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "Seo cúpla cuntas le leanúint duit" +#~ msgid "Here are some accounts for you to follow" +#~ msgstr "Seo cúpla cuntas le leanúint duit" #: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "Seo cúpla fotha a bhfuil ráchairt orthu. Is féidir leat an méid acu is mian leat a leanúint." +#~ msgid "Here are some popular topical feeds. You can choose to follow as many as you like." +#~ msgstr "Seo cúpla fotha a bhfuil ráchairt orthu. Is féidir leat an méid acu is mian leat a leanúint." #: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "Seo cúpla fotha a phléann le rudaí a bhfuil suim agat iontu: {interestsText}. Is féidir leat an méid acu is mian leat a leanúint." +#~ msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." +#~ msgstr "Seo cúpla fotha a phléann le rudaí a bhfuil suim agat iontu: {interestsText}. Is féidir leat an méid acu is mian leat a leanúint." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Seo é do phasfhocal aipe." -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "Cuir i bhfolach" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "Cuir i bhfolach" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "Cuir an phostáil seo i bhfolach" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "Cuir an t-ábhar seo i bhfolach" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "An bhfuil fonn ort an phostáil seo a chur i bhfolach?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "Cuir liosta na gcuntas i bhfolach" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Hmm. Tharla fadhb éigin sa dul i dteagmháil le freastalaí an fhotha seo. Cuir é seo in iúl d’úinéir an fhotha, le do thoil." -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Hmm. Is cosúil nach bhfuil freastalaí an fhotha seo curtha le chéile i gceart. Cuir é seo in iúl d’úinéir an fhotha, le do thoil." -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Hmm. Is cosúil go bhfuil freastalaí an fhotha as líne. Cuir é seo in iúl d’úinéir an fhotha, le do thoil." -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Hmm. Thug freastalaí an fhotha drochfhreagra. Cuir é seo in iúl d’úinéir an fhotha, le do thoil." -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm. Ní féidir linn an fotha seo a aimsiú. Is féidir gur scriosadh é." -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." msgstr "Hmmm, is cosúil go bhfuil fadhb againn le lódáil na sonraí seo. Féach thíos le haghaidh tuilleadh sonraí. Má mhaireann an fhadhb seo, téigh i dteagmháil linn, le do thoil." @@ -2334,11 +3002,12 @@ msgstr "Hmmm, is cosúil go bhfuil fadhb againn le lódáil na sonraí seo. Féa msgid "Hmmmm, we couldn't load that moderation service." msgstr "Hmmm, ní raibh muid in ann an tseirbhís modhnóireachta sin a lódáil." -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "Baile" @@ -2347,8 +3016,8 @@ msgid "Host:" msgstr "Óstach:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Soláthraí óstála" @@ -2371,9 +3040,10 @@ msgstr "Tá cód dearbhaithe agam" msgid "I have my own domain" msgstr "Tá fearann de mo chuid féin agam" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" -msgstr "" +msgstr "Tuigim" #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" @@ -2387,43 +3057,55 @@ msgstr "Mura roghnaítear tada, tá sé oiriúnach do gach aois." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Ní duine fásta thú de réir dhlí do thíre, tá ar do thuismitheoir nó do chaomhnóir dlíthiúil na Téarmaí seo a léamh ar do shon." -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "Má scriosann tú an liosta seo, ní bheidh tú in ann é a fháil ar ais." -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "Má bhaineann tú an phostáil seo, ní bheidh tú in ann í a fháil ar ais." -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Más mian leat do phasfhocal a athrú, seolfaimid cód duit chun dearbhú gur leatsa an cuntas seo." -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "Má tá sé i gceist agat do hanla nó ríomhphost a athrú, déan sin sula ndéanann tú díghníomhú." + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "Mídhleathach agus Práinneach" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "Íomhá" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Téacs malartach le híomhá" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "Pearsanú nó maíomh mícheart maidir le cé atá ann nó a gceangal" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "Teachtaireachtaí míchuí nó nascanna graosta" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "Cuir isteach an cód a seoladh chuig do ríomhphost leis an bpasfhocal a athrú" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "Cuir isteach an cód dearbhaithe leis an gcuntas a scriosadh" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Cuir isteach an t-ainm le haghaidh phasfhocal na haipe" @@ -2431,23 +3113,23 @@ msgstr "Cuir isteach an t-ainm le haghaidh phasfhocal na haipe" msgid "Input new password" msgstr "Cuir isteach an pasfhocal nua" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "Cuir isteach an pasfhocal chun an cuntas a scriosadh" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "Cuir isteach an cód a chuir muid chugat i dteachtaireacht r-phoist" -#: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "Cuir isteach an pasfhocal ceangailte le {identifier}" +#: src/screens/Login/LoginForm.tsx:221 +#~ msgid "Input the password tied to {identifier}" +#~ msgstr "Cuir isteach an pasfhocal ceangailte le {identifier}" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the username or email address you used at signup" msgstr "Cuir isteach an leasainm nó an seoladh ríomhphoist a d’úsáid tú nuair a chláraigh tú" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "Cuir isteach do phasfhocal" @@ -2455,20 +3137,24 @@ msgstr "Cuir isteach do phasfhocal" msgid "Input your preferred hosting provider" msgstr "Cuir isteach an soláthraí óstála is fearr leat" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "Cuir isteach do leasainm" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "Ag cur Teachtaireachtaí Díreacha in aithne duit" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "Tá an cód 2FA seo neamhbhailí." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "Taifead postála atá neamhbhailí nó gan bhunús" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "Leasainm nó pasfhocal míchruinn" @@ -2476,11 +3162,11 @@ msgstr "Leasainm nó pasfhocal míchruinn" msgid "Invite a Friend" msgstr "Tabhair cuireadh chuig cara leat" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "Cód cuiridh" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Níor glacadh leis an gcód cuiridh. Bí cinnte gur scríobh tú i gceart é agus bain triail eile as." @@ -2492,15 +3178,43 @@ msgstr "Cóid chuiridh: {0} ar fáil" msgid "Invite codes: 1 available" msgstr "Cóid chuiridh: 1 ar fáil" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." -msgstr "Taispeánann sé postálacha ó na daoine a leanann tú nuair a fhoilsítear iad." +#~ msgid "It shows posts from the people you follow as they happen." +#~ msgstr "Taispeánann sé postálacha ó na daoine a leanann tú nuair a fhoilsítear iad." + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." +msgstr "" #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "Jabanna" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "" + +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "Iriseoireacht" @@ -2508,19 +3222,19 @@ msgstr "Iriseoireacht" #~ msgid "label has been placed on this {labelTarget}" #~ msgstr "cuireadh lipéad ar an {labelTarget} seo" -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "Lipéad curtha ag {0}." -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "Lipéadaithe ag an údar." -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "Lipéid" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "Nótaí faoi úsáideoirí nó ábhar is ea lipéid. Is féidir úsáid a bhaint astu leis an líonra a cheilt, a chatagóiriú, agus fainic a chur air." @@ -2528,33 +3242,33 @@ msgstr "Nótaí faoi úsáideoirí nó ábhar is ea lipéid. Is féidir úsáid #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "cuireadh lipéid ar an {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "Lipéid ar do chuntas" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "Lipéid ar do chuid ábhair" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "Rogha teanga" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "Socruithe teanga" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "Socruithe teanga" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "Teangacha" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "Is Déanaí" @@ -2562,33 +3276,40 @@ msgstr "Is Déanaí" msgid "Learn More" msgstr "Le tuilleadh a fhoghlaim" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "Foghlaim níos mó faoin modhnóireacht a dhéantar ar an ábhar seo." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Le tuilleadh a fhoghlaim faoin rabhadh seo" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "Le tuilleadh a fhoghlaim faoi céard atá poiblí ar Bluesky" -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "Tuilleadh eolais." -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" -msgstr "" +msgstr "Éirigh as" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "Éirigh as an gcomhrá" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" -msgstr "" +msgstr "Éirigh as an gcomhrá" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." @@ -2598,24 +3319,29 @@ msgstr "Fág iad uile gan tic le teanga ar bith a fheiceáil." msgid "Leaving Bluesky" msgstr "Ag fágáil slán ag Bluesky" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "le déanamh fós." -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Stóráil oidhreachta scriosta, tá ort an aip a atosú anois." +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "Socraímis do phasfhocal arís!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "Ar aghaidh linn!" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "Sorcha" @@ -2623,14 +3349,23 @@ msgstr "Sorcha" #~ msgid "Like" #~ msgstr "Mol" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "" + +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "Mol an fotha seo" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "Molta ag" @@ -2648,81 +3383,96 @@ msgstr "Molta ag" #~ msgid "Liked by {count} {0}" #~ msgstr "Molta ag {count} {0}" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:287 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:301 -#: src/view/screens/ProfileFeed.tsx:600 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:NaN #~ msgid "Liked by {likeCount} {0}" #~ msgstr "Molta ag {likeCount} {0}" -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" msgstr "a mhol do shainfhotha" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" msgstr "a mhol do phostáil" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "Moltaí" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "Moltaí don phostáil seo" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "Liosta" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "Abhatár an Liosta" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "Liosta blocáilte" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "Liosta le {0}" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "Scriosadh an liosta" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "Balbhaíodh an liosta" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "Ainm an liosta" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "Liosta díbhlocáilte" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "Liosta nach bhfuil balbhaithe níos mó" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "Liostaí" -#: src/view/screens/Notifications.tsx:159 +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "Liostaí a bhlocálann an t-úsáideoir seo:" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "Lódáil fógraí nua" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "Lódáil postálacha nua" @@ -2730,18 +3480,23 @@ msgstr "Lódáil postálacha nua" msgid "Loading..." msgstr "Ag lódáil …" -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "Logleabhar" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "Logáil isteach nó cláraigh le Bluesky" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "Logáil amach" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "Feiceálacht le linn a bheith logáilte amach" @@ -2749,7 +3504,7 @@ msgstr "Feiceálacht le linn a bheith logáilte amach" msgid "Login to account that is not listed" msgstr "Logáil isteach ar chuntas nach bhfuil liostáilte" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" msgstr "Brú fada le clár na clibe le haghaidh #{tag} a oscailt" @@ -2759,14 +3514,23 @@ msgstr "Tá cuma XXXXX-XXXXX air" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." -msgstr "" +msgstr "Is cosúil nár sábháil tú fotha ar bith! Lean na moltaí a rinne muid nó tabhair súil ar a bhfuil thíos anseo." -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" -msgstr "" +msgstr "Is cosúil gur éirigh tú as na fothaí uilig a bhí agat. Ná bíodh imní ort. Tig leat fothaí eile a roghnú thíos 😄" #: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." +#, fuzzy +#~ msgid "Looks like you're missing a following feed." +#~ msgstr "Is cosúil go bhfuil fotha leanúna ar iarraidh ort. <0>Cliceáil anseo le ceann a fháil." + +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "Is cosúil go bhfuil fotha leanúna ar iarraidh ort. <0>Cliceáil anseo le ceann a fháil." + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" msgstr "" #: src/view/com/modals/LinkWarning.tsx:79 @@ -2777,72 +3541,74 @@ msgstr "Bí cinnte go bhfuil tú ag iarraidh cuairt a thabhairt ar an áit sin!" msgid "Manage your muted words and tags" msgstr "Bainistigh do chuid clibeanna agus na focail a chuir tú i bhfolach" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" -msgstr "" +msgstr "Marcáil léite" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "Meáin" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "úsáideoirí luaite" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "Úsáideoirí luaite" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "Clár" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "Teachtaireacht {0}" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" -msgstr "" +msgstr "Scriosadh an teachtaireacht" #: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Teachtaireacht ón bhfreastalaí: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" -msgstr "" +msgstr "Réimse ionchur teachtaireachtaí" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" -msgstr "" +msgstr "Tá an teachtaireacht rófhada" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" -msgstr "" +msgstr "Socruithe teachtaireachta" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" -msgstr "" +msgstr "Teachtaireachtaí" #: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "" +#, fuzzy +#~ msgid "Messaging settings" +#~ msgstr "Socruithe teachtaireachta" -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "Cuntas atá Míthreorach" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "Modhnóireacht" @@ -2850,56 +3616,57 @@ msgstr "Modhnóireacht" msgid "Moderation details" msgstr "Mionsonraí modhnóireachta" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" msgstr "Liosta modhnóireachta le {0}" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "Liosta modhnóireachta le <0/>" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "Liosta modhnóireachta leat" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "Liosta modhnóireachta cruthaithe" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "Liosta modhnóireachta uasdátaithe" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "Liostaí modhnóireachta" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Liostaí modhnóireachta" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "Socruithe modhnóireachta" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "Stádais modhnóireachta" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "Uirlisí modhnóireachta" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "Chuir an modhnóir rabhadh ginearálta ar an ábhar." -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "Tuilleadh" @@ -2907,14 +3674,22 @@ msgstr "Tuilleadh" msgid "More feeds" msgstr "Tuilleadh fothaí" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "Tuilleadh roghanna" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "Freagraí a fuair an méid is mó moltaí ar dtús" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "" + #: src/components/TagMenu/index.tsx:249 msgid "Mute" msgstr "Cuir i bhfolach" @@ -2923,12 +3698,12 @@ msgstr "Cuir i bhfolach" msgid "Mute {truncatedTag}" msgstr "Cuir {truncatedTag} i bhfolach" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "Cuir an cuntas i bhfolach" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "Cuir na cuntais i bhfolach" @@ -2936,6 +3711,11 @@ msgstr "Cuir na cuntais i bhfolach" msgid "Mute all {displayTag} posts" msgstr "Cuir gach postáil {displayTag} i bhfolach" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "Balbhaigh an comhrá" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" msgstr "Ná cuir i bhfolach ach i gclibeanna" @@ -2944,16 +3724,16 @@ msgstr "Ná cuir i bhfolach ach i gclibeanna" msgid "Mute in text & tags" msgstr "Cuir i bhfolach i dtéacs agus i gclibeanna" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "Cuir an liosta i bhfolach" -#: src/components/dms/ConvoMenu.tsx:136 -#: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "" +#: src/components/dms/ConvoMenu.tsx:NaN +#, fuzzy +#~ msgid "Mute notifications" +#~ msgstr "Fógraí" -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "An bhfuil fonn ort na cuntais seo a chur i bhfolach" @@ -2965,25 +3745,25 @@ msgstr "Cuir an focal seo i bhfolach i dtéacs postálacha agus i gclibeanna" msgid "Mute this word in tags only" msgstr "Ná cuir an focal seo i bhfolach ach i gclibeanna" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" msgstr "Cuir an snáithe seo i bhfolach" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "Cuir focail ⁊ clibeanna i bhfolach" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "Curtha i bhfolach" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "Cuntais a cuireadh i bhfolach" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "Cuntais a Cuireadh i bhFolach" @@ -2992,15 +3772,15 @@ msgstr "Cuntais a Cuireadh i bhFolach" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Baintear na postálacha ó na cuntais a chuir tú i bhfolach as d’fhotha agus as do chuid fógraí. Is príobháideach ar fad é an cur i bhfolach." -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "Curtha i bhfolach ag \"{0}\"" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "Focail ⁊ clibeanna a cuireadh i bhfolach" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Tá an cur i bhfolach príobháideach. Is féidir leis na cuntais a chuir tú i bhfolach do chuid postálacha a fheiceáil agus is féidir leo scríobh chugat ach ní fheicfidh tú a gcuid postálacha eile ná aon fhógraí uathu." @@ -3009,52 +3789,62 @@ msgstr "Tá an cur i bhfolach príobháideach. Is féidir leis na cuntais a chui msgid "My Birthday" msgstr "Mo Bhreithlá" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" msgstr "Mo Chuid Fothaí" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "Mo Phróifíl" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" msgstr "Na fothaí a shábháil mé" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" msgstr "Na Fothaí a Shábháil Mé" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "Ainm" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "Tá an t-ainm riachtanach" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "Sáraíonn an tAinm nó an Cur Síos Caighdeáin an Phobail" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "Nádúr" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "Téann sé seo chuig an gcéad scáileán eile" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "Téann sé seo chuig do phróifíl" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "An bhfuil tú ag iarraidh sárú cóipchirt a thuairisciú?" @@ -3062,7 +3852,7 @@ msgstr "An bhfuil tú ag iarraidh sárú cóipchirt a thuairisciú?" #~ msgid "Never lose access to your followers and data." #~ msgstr "Ná bíodh gan fáil ar do chuid leantóirí ná ar do chuid dáta go deo." -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "Ná bíodh gan fáil ar do chuid leantóirí ná ar do chuid dáta go deo." @@ -3070,7 +3860,7 @@ msgstr "Ná bíodh gan fáil ar do chuid leantóirí ná ar do chuid dáta go de msgid "Nevermind, create a handle for me" msgstr "Is cuma, cruthaigh leasainm dom" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "Nua" @@ -3079,65 +3869,79 @@ msgstr "Nua" msgid "New" msgstr "Nua" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" -msgstr "" +msgstr "Comhrá nua" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "Teachtaireachtaí nua" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "Liosta modhnóireachta nua" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "Pasfhocal Nua" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "Pasfhocal Nua" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "Postáil nua" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "Postáil nua" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "Postáil nua" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "Liosta Nua d’Úsáideoirí" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "Na freagraí is déanaí ar dtús" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "Nuacht" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "Ar aghaidh" @@ -3150,17 +3954,17 @@ msgstr "Ar aghaidh" msgid "Next image" msgstr "An chéad íomhá eile" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "Níl" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "Gan chur síos" @@ -3168,68 +3972,103 @@ msgstr "Gan chur síos" msgid "No DNS Panel" msgstr "Gan Phainéal DNS" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "Níor aimsíodh GIFanna speisialta. D'fhéadfadh sé gur tharla fadhb le Tenor." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "" + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "Ní leantar {0} níos mó" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "Gan a bheith níos faide na 253 charachtar" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" -msgstr "" +msgstr "Níl aon teachtaireacht ann fós" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "Níl aon chomhráite eile le taispeáint" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "Níl aon fhógra ann fós!" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "Duine ar bith" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "" + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Gan torthaí" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "Toradh ar bith" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Gan torthaí" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "Gan torthaí ar “{query}”" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "Gan torthaí ar {query}" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." msgstr "Gan torthaí ar \"{search}\"." #: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "" +#, fuzzy +#~ msgid "No search results found for \"{searchText}\"." +#~ msgstr "Gan torthaí ar \"{search}\"." #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "Níor mhaith liom é sin." -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "Duine ar bith" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "Níl cead ag éinne freagra a thabhairt" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "Níor mhol éinne fós é. Ar cheart duit tosú?" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "Lomnochtacht Neamhghnéasach" @@ -3238,8 +4077,8 @@ msgstr "Lomnochtacht Neamhghnéasach" #~ msgid "Not Applicable." #~ msgstr "Ní bhaineann sé sin le hábhar." -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "Ní bhfuarthas é sin" @@ -3248,35 +4087,65 @@ msgstr "Ní bhfuarthas é sin" msgid "Not right now" msgstr "Ní anois" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "Nóta faoi roinnt" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nod leat: is gréasán oscailte poiblí Bluesky. Ní chuireann an socrú seo srian ar fheiceálacht do chuid ábhair ach amháin ar aip agus suíomh Bluesky. Is féidir nach gcloífidh aipeanna eile leis an socrú seo. Is féidir go dtaispeánfar do chuid ábhair d’úsáideoirí atá lógáilte amach ar aipeanna agus suíomhanna eile." -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "Tada anseo" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "Fuaimeanna fógra" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "Fuaimeanna Fógra" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "Fógraí" -#: src/components/dms/MessageItem.tsx:145 -msgid "Now" +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" msgstr "" +#: src/components/dms/MessageItem.tsx:169 +msgid "Now" +msgstr "Anois" + #: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Lomnochtacht" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "Lomnochtacht nó ábhar do dhaoine fásta nach bhfuil an lipéad sin air" @@ -3288,17 +4157,17 @@ msgstr "Lomnochtacht nó ábhar do dhaoine fásta nach bhfuil an lipéad sin air msgid "Off" msgstr "As" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "Úps!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "Úps! Theip ar rud éigin." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "OK" @@ -3306,107 +4175,151 @@ msgstr "OK" msgid "Okay" msgstr "Maith go leor" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "Na freagraí is sine ar dtús" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "Atosú an chláraithe" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "Tá téacs malartach de dhíth ar íomhá amháin nó níos mó acu." -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" +msgstr "Ní oibríonn ach comhaid .jpg agus .png" + +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" msgstr "" #: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." -msgstr "Ní féidir ach le {0} freagra a thabhairt." +#~ msgid "Only {0} can reply." +#~ msgstr "Ní féidir ach le {0} freagra a thabhairt." -#: src/screens/Signup/StepHandle.tsx:98 +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "Níl ann ach litreacha, uimhreacha, agus fleiscíní" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Úps! Theip ar rud éigin!" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "Úps!" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "Oscail" -#: src/screens/Onboarding/StepProfile/index.tsx:280 -msgid "Open avatar creator" -msgstr "" +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "Oscail roghchlár giorrúcháin phróifíl {name}" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Onboarding/StepProfile/index.tsx:277 +msgid "Open avatar creator" +msgstr "Oscail an cruthaitheoir abhatáir" + +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "Oscail na roghanna comhrá" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "Oscail roghnóir na n-emoji" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "Oscail roghchlár na bhfothaí" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "Oscail nascanna leis an mbrabhsálaí san aip" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "Oscail na roghanna teachtaireachta" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "Oscail suíomhanna na gclibeanna agus na bhfocal a cuireadh i bhfolach" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "Oscail an nascleanúint" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "Oscail roghchlár na bpostálacha" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "Oscail leathanach an Storybook" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "Oscail logleabhar an chórais" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "Osclaíonn sé seo {numItems} rogha" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "Osclaíonn sé seo na socruithe inrochtaineachta" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "Osclaíonn sé seo tuilleadh sonraí le haghaidh iontráil dífhabhtaithe" #: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "Osclaíonn sé seo liosta méadaithe d’úsáideoirí san fhógra seo" +#~ msgid "Opens an expanded list of users in this notification" +#~ msgstr "Osclaíonn sé seo liosta méadaithe d’úsáideoirí san fhógra seo" #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "Osclaíonn sé seo an ceamara ar an ngléas" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "Osclaíonn sé seo na socruithe comhrá" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "Osclaíonn sé seo an t-eagarthóir" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "Osclaíonn sé seo na socruithe teanga is féidir a dhéanamh" @@ -3414,7 +4327,7 @@ msgstr "Osclaíonn sé seo na socruithe teanga is féidir a dhéanamh" msgid "Opens device photo gallery" msgstr "Osclaíonn sé seo gailearaí na ngrianghraf ar an ngléas" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "Osclaíonn sé seo na socruithe le haghaidh leabuithe seachtracha" @@ -3428,7 +4341,7 @@ msgstr "Osclaíonn sé seo an próiseas le cuntas nua Bluesky a chruthú" msgid "Opens flow to sign into your existing Bluesky account" msgstr "Osclaíonn sé seo an síniú isteach ar an gcuntas Bluesky atá agat cheana féin" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" msgstr "Osclaíonn sé seo fuinneog chun GIF a roghnú" @@ -3436,23 +4349,27 @@ msgstr "Osclaíonn sé seo fuinneog chun GIF a roghnú" msgid "Opens list of invite codes" msgstr "Osclaíonn sé seo liosta na gcód cuiridh" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "Osclaíonn sé seo fuinneog chun díghníomhú an chuntais a dhearbhú" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Osclaíonn sé seo an fhuinneog le scriosadh an chuntais a dhearbhú. Tá cód ríomhphoist riachtanach" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "Osclaíonn sé seo an fhuinneog le do phasfhocal Bluesky a athrú" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Osclaíonn sé seo an fhuinneog le leasainm nua Bluesky a roghnú" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Osclaíonn sé seo an fhuinneog le stór sonraí do chuntais Bluesky a íoslódáil" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "Osclaíonn sé seo fuinneog le deimhniú an ríomhphoist" @@ -3460,28 +4377,27 @@ msgstr "Osclaíonn sé seo fuinneog le deimhniú an ríomhphoist" msgid "Opens modal for using custom domain" msgstr "Osclaíonn sé seo an fhuinneog le sainfhearann a úsáid" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" msgstr "Osclaíonn sé seo socruithe na modhnóireachta" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "Osclaíonn sé seo an fhoirm leis an bpasfhocal a athrú" -#: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "Osclaíonn sé seo an scáileán leis na fothaí sábháilte a athrú" +#: src/view/com/home/HomeHeaderLayout.web.tsx:NaN +#~ msgid "Opens screen to edit Saved Feeds" +#~ msgstr "Osclaíonn sé seo an scáileán leis na fothaí sábháilte a athrú" -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" msgstr "Osclaíonn sé seo an scáileán leis na fothaí sábháilte go léir" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "Osclaíonn sé seo an leathanach a bhfuil socruithe phasfhocal na haipe air" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" msgstr "Osclaíonn sé seo roghanna don fhotha Following" @@ -3490,36 +4406,54 @@ msgid "Opens the linked website" msgstr "Osclaíonn sé seo an suíomh gréasáin atá nasctha" #: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "" +#, fuzzy +#~ msgid "Opens the message settings page" +#~ msgstr "Osclaíonn sé seo logleabhar an chórais" -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "Osclaíonn sé seo leathanach an Storybook" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "Osclaíonn sé seo logleabhar an chórais" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "Osclaíonn sé seo roghanna na snáitheanna" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "Osclaíonn sé an phróifíl seo" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "Rogha {0} as {numItems}" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "Is féidir tuilleadh eolais a chur ar fáil thíos:" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "Nó cuir na roghanna seo le chéile:" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "Nó, lean ort le cuntas eile." + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "Nó, logáil isteach i gceann eile de do chuntais." + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "Eile" @@ -3527,11 +4461,15 @@ msgstr "Eile" msgid "Other account" msgstr "Cuntas eile" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "Eile…" -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "Ta ár modhnóirí tar éis athbhreithniú a dhéanamh ar thuairiscí. Chinn siad gan ligean duit comhráite a úsáid ar Bluesky." + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Leathanach gan aimsiú" @@ -3540,14 +4478,14 @@ msgstr "Leathanach gan aimsiú" msgid "Page Not Found" msgstr "Leathanach gan aimsiú" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "Pasfhocal" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "Athraíodh an pasfhocal" @@ -3559,52 +4497,66 @@ msgstr "Pasfhocal uasdátaithe" msgid "Password updated!" msgstr "Pasfhocal uasdátaithe!" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "Sos" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "Daoine" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "Na daoine atá leanta ag @{0}" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "Na leantóirí atá ag @{0}" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." msgstr "Tá cead de dhíth le rolla an cheamara a oscailt." -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "Ní bhfuarthas cead le rolla an cheamara a oscailt. Athraigh socruithe an chórais len é seo a chur ar fáil, le do thoil." -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "Peataí" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Pictiúir le haghaidh daoine fásta." -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "Greamaigh le baile" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "Greamaigh le Baile" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "Fothaí greamaithe" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "Greamaithe le do chuid fothaí" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" msgstr "Seinn" @@ -3612,7 +4564,12 @@ msgstr "Seinn" msgid "Play {0}" msgstr "Seinn {0}" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/screens/Messages/Settings.tsx:NaN +#, fuzzy +#~ msgid "Play notification sounds" +#~ msgstr "Fuaimeanna fógra" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" msgstr "Seinn nó stop an GIF" @@ -3625,15 +4582,16 @@ msgstr "Seinn an físeán" msgid "Plays the GIF" msgstr "Seinneann sé seo an GIF" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "Roghnaigh do leasainm, le do thoil." -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "Roghnaigh do phasfhocal, le do thoil." -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "Déan an captcha, le do thoil." @@ -3641,11 +4599,11 @@ msgstr "Déan an captcha, le do thoil." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Dearbhaigh do ríomhphost roimh é a athrú. Riachtanas sealadach é seo le linn dúinn acmhainní a chur isteach le haghaidh uasdátú an ríomhphoist. Scriosfar é seo roimh i bhfad." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Cuir isteach ainm le haghaidh phasfhocal na haipe, le do thoil. Ní cheadaítear spásanna gan aon rud eile ann." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Cuir isteach ainm nach bhfuil in úsáid cheana féin le haghaidh Phasfhocal na hAipe nó bain úsáid as an gceann a chruthóidh muid go randamach." @@ -3653,31 +4611,42 @@ msgstr "Cuir isteach ainm nach bhfuil in úsáid cheana féin le haghaidh Phasfh msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Cuir focal, clib, nó frása inghlactha isteach le cur i bhfolach" -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "Cuir isteach do sheoladh ríomhphoist, le do thoil." -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "Cuir isteach do phasfhocal freisin, le do thoil." -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Abair linn, le do thoil, cén fáth a gcreideann tú gur chuir {0} an lipéad seo i bhfeidhm go mícheart" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "Mínigh, le do thoil, an fáth a gcreideann tú go bhfuil sé mícheart nach ligtear duit comhráite a úsáid" + #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" -msgstr "" +msgstr "Logáil isteach mar @{0}" #: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "Dearbhaigh do ríomhphost, le do thoil." -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "Fan le lódáil ar fad do chárta naisc, le do thoil." -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "Polaitíocht" @@ -3685,46 +4654,46 @@ msgstr "Polaitíocht" msgid "Porn" msgstr "Pornagrafaíocht" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "Postáil" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" msgstr "Postáil" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "Postáil ó {0}" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "Postáil ó @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "Scriosadh an phostáil" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Cuireadh an phostáil i bhfolach" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" msgstr "Postáil nach bhfuil le feiceáil de bharr focail a cuireadh i bhfolach" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" msgstr "Postáil a chuir tú i bhfolach" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "Teanga postála" @@ -3732,8 +4701,8 @@ msgstr "Teanga postála" msgid "Post Languages" msgstr "Teangacha postála" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Ní bhfuarthas an phostáil" @@ -3741,7 +4710,8 @@ msgstr "Ní bhfuarthas an phostáil" msgid "posts" msgstr "postálacha" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "Postálacha" @@ -3749,7 +4719,7 @@ msgstr "Postálacha" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Is féidir postálacha a chuir i bhfolach de bharr a gcuid téacs, a gcuid clibeanna, nó an dá rud." -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "Cuireadh na postálacha i bhfolach" @@ -3757,61 +4727,81 @@ msgstr "Cuireadh na postálacha i bhfolach" msgid "Potentially Misleading Link" msgstr "Is féidir go bhfuil an nasc seo míthreorach." +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "Brúigh le iarracht a thabhairt ar nascadh arís" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "Brúigh leis an soláthraí óstála a athrú" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "Brúigh le iarracht eile a dhéanamh" -#: src/screens/Messages/Conversation/MessagesList.tsx:47 -#: src/screens/Messages/Conversation/MessagesList.tsx:53 +#: src/screens/Messages/Conversation/MessagesList.tsx:NaN +#, fuzzy #~ msgid "Press to Retry" -#~ msgstr "" +#~ msgstr "Brúigh le iarracht eile a dhéanamh" + +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "An íomhá roimhe seo" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "Príomhtheanga" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "Tabhair Tosaíocht do Do Chuid Leantóirí" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "Príobháideacht" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Polasaí príobháideachta" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "Roinn TDanna príobháideacha le úsáideoirí eile." + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "Á phróiseáil..." -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "próifíl" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "Próifíl" @@ -3819,11 +4809,11 @@ msgstr "Próifíl" msgid "Profile updated" msgstr "Próifíl uasdátaithe" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "Dearbhaigh do ríomhphost le do chuntas a chosaint." -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "Poiblí" @@ -3831,33 +4821,52 @@ msgstr "Poiblí" msgid "Public, shareable lists of users to mute or block in bulk." msgstr "Liostaí poiblí agus inroinnte d’úsáideoirí le cur i bhfolach nó le blocáil ar an mórchóir" -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." msgstr "Liostaí poiblí agus inroinnte atá in ann fothaí a bheathú" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "Foilsigh an phostáil" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "Foilsigh an freagra" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" -msgid "Quote post" -msgstr "Luaigh an phostáil seo" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "Postáil athluaite" -#: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "Luaigh an phostáil seo" +#: src/view/com/modals/Repost.tsx:66 +#~ msgctxt "action" +#~ msgid "Quote post" +#~ msgstr "Luaigh an phostáil seo" -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/com/modals/Repost.tsx:71 +#~ msgctxt "action" +#~ msgid "Quote Post" +#~ msgstr "Luaigh an phostáil seo" + +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "Randamach" @@ -3865,11 +4874,20 @@ msgstr "Randamach" msgid "Ratios" msgstr "Cóimheasa" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" -msgstr "" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" +msgstr "Athghníomhaigh do chuntas" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "Fáth:" + +#: src/components/dms/MessageReportDialog.tsx:149 +#, fuzzy +#~ msgid "Reason: {0}" +#~ msgstr "Fáth:" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "Cuardaigh a Rinneadh le Déanaí" @@ -3881,20 +4899,39 @@ msgstr "Cuardaigh a Rinneadh le Déanaí" #~ msgid "Recommended Users" #~ msgstr "Cuntais mholta" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "Athnasc" + +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "Athlódáil comhráite" + #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Scrios" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "" + #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Bain an cuntas de" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "Bain an tAbhatár Amach" @@ -3902,9 +4939,13 @@ msgstr "Bain an tAbhatár Amach" msgid "Remove Banner" msgstr "Bain an Fógra Meirge Amach" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "Bain an leabú" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "Bain an fotha de" @@ -3912,15 +4953,16 @@ msgstr "Bain an fotha de" msgid "Remove feed?" msgstr "An bhfuil fonn ort an fotha a bhaint?" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "Bain de mo chuid fothaí" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "É sin a bhaint de mo chuid fothaí?" @@ -3928,7 +4970,7 @@ msgstr "É sin a bhaint de mo chuid fothaí?" msgid "Remove image" msgstr "Bain an íomhá de" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "Bain réamhléiriú den íomhá" @@ -3936,11 +4978,20 @@ msgstr "Bain réamhléiriú den íomhá" msgid "Remove mute word from your list" msgstr "Bain focal folaigh de do liosta" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 -msgid "Remove quote" -msgstr "" +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "Bain an phróifíl" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "Bain an phróifíl seo as an stair cuardaigh" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 +msgid "Remove quote" +msgstr "Bain an t-athfhriotal de" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "Scrios an athphostáil" @@ -3948,48 +4999,60 @@ msgstr "Scrios an athphostáil" msgid "Remove this feed from your saved feeds" msgstr "Bain an fotha seo de do chuid fothaí sábháilte" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "Baineadh den liosta é" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" msgstr "Baineadh de do chuid fothaí é" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" msgstr "Baineadh de do chuid fothaí é" #: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "Baineann sé seo an mhionsamhail réamhshocraithe de {0}" +#~ msgid "Removes default thumbnail from {0}" +#~ msgstr "Baineann sé seo an mhionsamhail réamhshocraithe de {0}" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" +msgstr "Baineann sé seo an t-athfhriotal" + +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" msgstr "" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 msgid "Replace with Discover" -msgstr "" +msgstr "Cuir an fotha Discover ina áit" -#: src/view/screens/Profile.tsx:194 +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "Freagraí" -#: src/view/com/threadgate/WhoCanReply.tsx:98 +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "" + +#: src/view/com/threadgate/WhoCanReply.tsx:123 +#~ msgid "Replies on this thread are disabled" +#~ msgstr "" + +#: src/components/WhoCanReply.tsx:243 msgid "Replies to this thread are disabled" msgstr "Ní féidir freagraí a thabhairt ar an gcomhrá seo" -#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "Freagair" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "Scagairí freagra" @@ -3998,94 +5061,118 @@ msgstr "Scagairí freagra" #~ msgid "Reply to <0/>" #~ msgstr "Freagra ar <0/>" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "Freagra ar <0><1/>" -#: src/components/dms/MessageMenu.tsx:109 -msgid "Report" +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" msgstr "" -#: src/components/dms/ConvoMenu.tsx:146 -#: src/components/dms/ConvoMenu.tsx:150 -#~ msgid "Report account" -#~ msgstr "" +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 +msgid "Report" +msgstr "Tuairiscigh" + +#: src/components/dms/ConvoMenu.tsx:NaN +#, fuzzy +#~ msgid "Report account" +#~ msgstr "Déan gearán faoi chuntas" + +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "Déan gearán faoi chuntas" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" -msgstr "" +msgstr "Tuairiscigh an comhrá seo" #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "Tuairiscigh comhrá" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "Déan gearán faoi fhotha" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "Déan gearán faoi liosta" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" -msgstr "" +msgstr "Tuairiscigh an teachtaireacht seo" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "Déan gearán faoi phostáil" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "Déan gearán faoin ábhar seo" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "Déan gearán faoin fhotha seo" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "Déan gearán faoin liosta seo" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" -msgstr "" +msgstr "Tuairiscigh an teachtaireacht seo" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "Déan gearán faoin phostáil seo" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "Déan gearán faoin úsáideoir seo" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "Athphostáil" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "Athphostáil" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "Athphostáil nó luaigh postáil" @@ -4093,7 +5180,7 @@ msgstr "Athphostáil nó luaigh postáil" msgid "Reposted By" msgstr "Athphostáilte ag" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "Athphostáilte ag {0}" @@ -4101,15 +5188,20 @@ msgstr "Athphostáilte ag {0}" #~ msgid "Reposted by <0/>" #~ msgstr "Athphostáilte ag <0/>" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "Athphostáilte ag <0><1/>" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "— d'athphostáil sé/sí do phostáil" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "Athphostálacha den phostáil seo" @@ -4118,12 +5210,12 @@ msgstr "Athphostálacha den phostáil seo" msgid "Request Change" msgstr "Iarr Athrú" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "Iarr Cód" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "Bíodh téacs malartach ann roimh phostáil i gcónaí" @@ -4131,7 +5223,7 @@ msgstr "Bíodh téacs malartach ann roimh phostáil i gcónaí" msgid "Require email code to log into your account" msgstr "Bíodh cód ríomhphoist ag teastáil chun logáil isteach" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "Riachtanach don soláthraí seo" @@ -4140,16 +5232,16 @@ msgstr "Riachtanach don soláthraí seo" msgid "Resend email" msgstr "Athsheol an ríomhphost" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "Cód athshocraithe" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "Cód Athshocraithe" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "Athshocraigh an próiseas cláraithe" @@ -4157,20 +5249,20 @@ msgstr "Athshocraigh an próiseas cláraithe" msgid "Reset password" msgstr "Athshocraigh an pasfhocal" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "Athshocraigh na roghanna" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "Athshocraíonn sé seo an clárú" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "Athshocraíonn sé seo na roghanna" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "Baineann sé seo triail eile as an logáil isteach" @@ -4179,26 +5271,29 @@ msgstr "Baineann sé seo triail eile as an logáil isteach" msgid "Retries the last action, which errored out" msgstr "Baineann sé seo triail eile as an ngníomh is déanaí, ar theip air" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" msgstr "Bain triail eile as" #: src/screens/Messages/Conversation/MessageListError.tsx:54 +#, fuzzy #~ msgid "Retry." -#~ msgstr "" +#~ msgstr "Bain triail eile as" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "Fill ar an leathanach roimhe seo" @@ -4207,26 +5302,28 @@ msgid "Returns to home page" msgstr "Filleann sé seo abhaile" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "Filleann sé seo ar an leathanach roimhe seo" #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Sábháil" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "Sábháil" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Sábháil an téacs malartach" @@ -4242,29 +5339,38 @@ msgstr "Sábháil na hathruithe" msgid "Save handle change" msgstr "Sábháil an leasainm nua" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "Sábháil an pictiúr bearrtha" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" msgstr "Sábháil i mo chuid fothaí" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" msgstr "Fothaí Sábháilte" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" -msgstr "" +msgstr "Sábháladh i do rolla ceamara é" #: src/view/com/lightbox/Lightbox.tsx:81 #~ msgid "Saved to your camera roll." #~ msgstr "Sábháilte i do rolla ceamara." -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "Sábháilte le mo chuid fothaí" @@ -4280,39 +5386,47 @@ msgstr "Sábhálann sé seo athrú an leasainm go {handle}" msgid "Saves image crop settings" msgstr "Sábhálann sé seo na socruithe le haghaidh íomhánna a laghdú" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "Abair heileo!" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "Eolaíocht" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "Fill ar an mbarr" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "Cuardaigh" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "Déan cuardach ar “{query}”" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" -msgstr "" +msgstr "Déan cuardach ar \"{searchText}\"" #: src/components/TagMenu/index.tsx:145 msgid "Search for all posts by @{authorHandle} with tag {displayTag}" @@ -4322,25 +5436,32 @@ msgstr "Lorg na postálacha uile le @{authorHandle} leis an gclib {displayTag}" msgid "Search for all posts with tag {displayTag}" msgstr "Lorg na postálacha uile leis an gclib {displayTag}" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." msgstr "" -#: src/view/com/auth/LoggedOut.tsx:105 +#: src/components/dms/NewChat.tsx:226 +#~ msgid "Search for someone to start a conversation with." +#~ msgstr "Lorg duine éigin le comhrá a dhéanamh leo." + #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "Cuardaigh úsáideoirí" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "Cuardaigh GIFanna" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" -msgstr "" +msgstr "Cuardaigh próifílí" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "Cuardaigh Tenor" @@ -4364,12 +5485,11 @@ msgstr "Féach na postálacha <0>{displayTag}" msgid "See <0>{displayTag} posts by this user" msgstr "Féach na postálacha <0>{displayTag} leis an úsáideoir seo" -#: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "Féach ar an bpróifíl" +#: src/view/com/notifications/FeedItem.tsx:NaN +#~ msgid "See profile" +#~ msgstr "Féach ar an bpróifíl" -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "Féach ar an treoirleabhar seo" @@ -4383,7 +5503,7 @@ msgstr "Roghnaigh {item}" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 msgid "Select a color" -msgstr "" +msgstr "Roghnaigh dath" #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" @@ -4391,25 +5511,25 @@ msgstr "Roghnaigh cuntas" #: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 msgid "Select an avatar" -msgstr "" +msgstr "Roghnaigh abhatár" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 msgid "Select an emoji" -msgstr "" +msgstr "Roghnaigh emoji" #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "Roghnaigh ó chuntas atá ann" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" msgstr "Roghnaigh GIF" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" msgstr "Roghnaigh GIF \"{0}\"" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "Roghnaigh teangacha" @@ -4422,14 +5542,14 @@ msgid "Select option {i} of {numItems}" msgstr "Roghnaigh rogha {i} as {numItems}" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "Roghnaigh cúpla cuntas le leanúint" +#~ msgid "Select some accounts below to follow" +#~ msgstr "Roghnaigh cúpla cuntas le leanúint" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" -msgstr "" +msgstr "Roghnaigh an emoji {emojiName} mar abhatár" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "Roghnaigh na seirbhísí modhnóireachta le tuairisciú chuige" @@ -4438,69 +5558,80 @@ msgid "Select the service that hosts your data." msgstr "Roghnaigh an tseirbhís a óstálann do chuid sonraí." #: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" -msgstr "Roghnaigh fothaí le leanúint ón liosta thíos" +#~ msgid "Select topical feeds to follow from the list below" +#~ msgstr "Roghnaigh fothaí le leanúint ón liosta thíos" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" +msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "Roghnaigh na rudaí ba mhaith leat a fheiceáil (nó gan a fheiceáil), agus leanfaimid ar aghaidh as sin" +#~ msgid "Select what you want to see (or not see), and we’ll handle the rest." +#~ msgstr "Roghnaigh na rudaí ba mhaith leat a fheiceáil (nó gan a fheiceáil), agus leanfaimid ar aghaidh as sin" -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." msgstr "Roghnaigh na teangacha ba mhaith leat a fheiceáil i do chuid fothaí. Mura roghnaíonn tú, taispeánfar ábhar i ngach teanga duit." -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "Roghnaigh teanga an téacs a thaispeánfar san aip." -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "Roghnaigh do dháta breithe" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "Roghnaigh na rudaí a bhfuil suim agat iontu as na roghanna thíos" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." msgstr "Do rogha teanga nuair a dhéanfar aistriúchán ar ábhar i d'fhotha." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "Roghnaigh do phríomhfhothaí algartamacha" +#~ msgid "Select your primary algorithmic feeds" +#~ msgstr "Roghnaigh do phríomhfhothaí algartamacha" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" -msgstr "Roghnaigh do chuid fothaí algartamacha tánaisteacha" +#~ msgid "Select your secondary algorithmic feeds" +#~ msgstr "Roghnaigh do chuid fothaí algartamacha tánaisteacha" + +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" +msgstr "Seol suíomh gréasáin spéisiúil!" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Seol ríomhphost dearbhaithe" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "Seol ríomhphost" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "Seol ríomhphost" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "Seol aiseolas" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" -msgstr "" +msgstr "Seol teachtaireacht" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." +msgstr "Seol an phostáil seo chuig..." + +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "Seol an tuairisc" @@ -4513,7 +5644,12 @@ msgstr "Seol an tuairisc chuig {0}" msgid "Send verification email" msgstr "Seol ríomhphost dearbhaithe" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "Seol mar theachtaireacht dhíreach" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "Seolann sé seo ríomhphost ina bhfuil cód dearbhaithe chun an cuntas a scriosadh" @@ -4521,7 +5657,7 @@ msgstr "Seolann sé seo ríomhphost ina bhfuil cód dearbhaithe chun an cuntas a msgid "Server address" msgstr "Seoladh an fhreastalaí" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "Socraigh do bhreithlá" @@ -4529,23 +5665,23 @@ msgstr "Socraigh do bhreithlá" msgid "Set new password" msgstr "Socraigh pasfhocal nua" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Roghnaigh “Níl” chun postálacha athluaite a chur i bhfolach i d'fhotha. Feicfidh tú athphostálacha fós." -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Roghnaigh “Níl” chun freagraí a chur i bhfolach i d'fhotha." -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Roghnaigh “Níl” chun athphostálacha a chur i bhfolach i d'fhotha." -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Roghnaigh “Tá” le freagraí a thaispeáint i snáitheanna. Is gné thurgnamhach é seo." -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Roghnaigh “Tá” le samplaí ó do chuid fothaí sábháilte a thaispeáint in ”Á Leanúint”. Is gné thurgnamhach é seo." @@ -4557,23 +5693,23 @@ msgstr "Socraigh do chuntas" msgid "Sets Bluesky username" msgstr "Socraíonn sé seo d'ainm úsáideora ar Bluesky" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "Roghnaíonn sé seo an modh dorcha" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "Roghnaíonn sé seo an modh sorcha" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "Roghnaíonn sé seo scéim dathanna an chórais" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "Úsáideann sé seo an téama dorcha mar théama dorcha" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "Úsáideann sé seo an téama breacdhorcha mar théama dorcha" @@ -4593,12 +5729,11 @@ msgstr "Socraíonn sé seo cóimheas treoíochta na híomhá go hard" msgid "Sets image aspect ratio to wide" msgstr "Socraíonn sé seo cóimheas treoíochta na híomhá go leathan" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "Socruithe" @@ -4610,45 +5745,86 @@ msgstr "Gníomhaíocht ghnéasach nó lomnochtacht gháirsiúil." msgid "Sexually Suggestive" msgstr "Graosta" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "Comhroinn" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "Comhroinn" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "Comhroinn" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "Inis scéal suimiúil!" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "Roinn rud éigin fútsa féin!" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "Comhroinn mar sin féin" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "Comhroinn an fotha" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "Comhroinn Nasc" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "Roinn an fotha is fearr leat!" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "Roinneann sé seo na suíomh gréasáin atá nasctha" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "Taispeáin" @@ -4656,9 +5832,9 @@ msgstr "Taispeáin" #~ msgid "Show all replies" #~ msgstr "Taispeáin gach freagra" -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" -msgstr "" +msgstr "Taispeáin an téacs malartach" #: src/components/moderation/ScreenHider.tsx:169 #: src/components/moderation/ScreenHider.tsx:172 @@ -4674,82 +5850,90 @@ msgstr "Taispeáin suaitheantas" msgid "Show badge and filter from feeds" msgstr "Taispeáin suaitheantas agus scag ó na fothaí é" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "Taispeáin cuntais cosúil le {0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 -msgid "Show less like this" -msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "Taispeáin freagraí i bhfolach" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 +msgid "Show less like this" +msgstr "Níos lú den sórt seo" + +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "Tuilleadh" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" -msgstr "" +msgstr "Níos mó den sórt seo" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "Taispeáin freagraí balbhaithe" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" msgstr "Taispeáin postálacha ó mo chuid fothaí" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "Taispeáin postálacha athluaite" #: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "Taispeáin postálacha athluaite san fhotha “Á Leanúint”" +#~ msgid "Show quote-posts in Following feed" +#~ msgstr "Taispeáin postálacha athluaite san fhotha “Á Leanúint”" #: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "Taispeáin postálacha athluaite san fhotha “Á Leanúint”" +#~ msgid "Show quotes in Following" +#~ msgstr "Taispeáin postálacha athluaite san fhotha “Á Leanúint”" #: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "Taispeáin athphostálacha san fhotha “Á Leanúint”" +#~ msgid "Show re-posts in Following feed" +#~ msgstr "Taispeáin athphostálacha san fhotha “Á Leanúint”" -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "Taispeáin freagraí" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "Taispeáin freagraí ó na daoine a leanann tú roimh aon fhreagra eile." #: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "Taispeáin freagraí san fhotha “Á Leanúint”" +#~ msgid "Show replies in Following" +#~ msgstr "Taispeáin freagraí san fhotha “Á Leanúint”" #: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "Taispeáin freagraí san fhotha “Á Leanúint”" +#~ msgid "Show replies in Following feed" +#~ msgstr "Taispeáin freagraí san fhotha “Á Leanúint”" #: src/view/screens/PreferencesFollowingFeed.tsx:70 #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Taispeáin freagraí a bhfuil ar a laghad {value} {0} acu" -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "Taispeáin athphostálacha" #: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "Taispeáin athphostálacha san fhotha “Á Leanúint”" +#~ msgid "Show reposts in Following" +#~ msgstr "Taispeáin athphostálacha san fhotha “Á Leanúint”" -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "Taispeáin an t-ábhar" #: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "Taispeáin úsáideoirí" +#~ msgid "Show users" +#~ msgstr "Taispeáin úsáideoirí" #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" @@ -4767,17 +5951,17 @@ msgstr "Taispeánann sé seo postálacha ó {0} i d'fhotha" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4800,17 +5984,17 @@ msgstr "Logáil isteach nó cláraigh chun páirt a ghlacadh sa chomhrá!" msgid "Sign into Bluesky or create a new account" msgstr "Logáil isteach i Bluesky nó cruthaigh cuntas nua" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "Logáil amach" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4826,7 +6010,7 @@ msgstr "Cláraigh nó logáil isteach chun páirt a ghlacadh sa chomhrá" msgid "Sign-in Required" msgstr "Caithfidh tú logáil isteach" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "Logáilte isteach mar" @@ -4835,56 +6019,94 @@ msgstr "Logáilte isteach mar" msgid "Signed in as @{0}" msgstr "Logáilte isteach mar @{0}" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "Ná bac leis" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "Ná bac leis an bpróiseas seo" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "Forbairt Bogearraí" -#: src/screens/Messages/Conversation/index.tsx:89 -msgid "Something went wrong" +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" msgstr "" +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "Tá daoine áirithe in ann freagra a thabhairt" + +#: src/screens/StarterPack/Wizard/index.tsx:203 +#~ msgid "Some subtitle" +#~ msgstr "" + +#: src/screens/Messages/Conversation/index.tsx:106 +msgid "Something went wrong" +msgstr "Theip ar rud éigin" + +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "Chuaigh rud éigin amú, bain triail eile as" + #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "Chuaigh rud éigin ó rath. Bain triail eile as." -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "" + +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "Ár leithscéal. Chuaigh do sheisiún i léig. Ní mór duit logáil isteach arís." -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "Sórtáil freagraí" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "Sórtáil freagraí ar an bpostáil chéanna de réir:" #: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" -msgstr "Foinse:" +#~ msgid "Source:" +#~ msgstr "Foinse:" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" +msgstr "Foinse: <0>{0}" + +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "Turscar" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "Turscar; an iomarca tagairtí nó freagraí" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "Spórt" @@ -4892,69 +6114,110 @@ msgstr "Spórt" msgid "Square" msgstr "Cearnóg" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" +msgstr "Tosaigh comhrá nua" + +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "Tosaigh comhrá le {displayName}" + +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "Tosaigh ag comhrá" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "" + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." msgstr "" #: src/view/screens/Settings/index.tsx:862 #~ msgid "Status page" #~ msgstr "Leathanach stádais" -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" -msgstr "" +msgstr "Leathanach Stádais" #: src/screens/Signup/index.tsx:145 #~ msgid "Step" #~ msgstr "Céim" -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" -msgstr "" +msgstr "Céim {0} as {1}" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "Stóráil scriosta, tá ort an aip a atosú anois." -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "Seol" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "Liostáil" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "Glac síntiús le @{0} leis na lipéid seo a úsáid:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "Glac síntiús le lipéadóir" -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "Liostáil leis an bhfotha {0}" +#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:NaN +#~ msgid "Subscribe to the {0} feed" +#~ msgstr "Liostáil leis an bhfotha {0}" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "Glac síntiús leis an lipéadóir seo" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "Liostáil leis an liosta seo" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "Cuntais le leanúint" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "" +#: src/view/screens/Search/Search.tsx:425 +#~ msgid "Suggested Follows" +#~ msgstr "Cuntais le leanúint" + +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Molta duit" @@ -4963,7 +6226,7 @@ msgstr "Molta duit" msgid "Suggestive" msgstr "Gáirsiúil" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -4974,19 +6237,23 @@ msgstr "Tacaíocht" msgid "Switch Account" msgstr "Athraigh an cuntas" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "Athraigh go {0}" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "Athraíonn sé seo an cuntas beo" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "Córas" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "Logleabhar an chórais" @@ -5002,29 +6269,51 @@ msgstr "Roghchlár na gclibeanna: {displayTag}" msgid "Tall" msgstr "Ard" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "Tapáil leis an rud iomlán a fheiceáil" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "Teic" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "Inis scéal grinn!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "Téarmaí" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Téarmaí Seirbhíse" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "Sárú ar chaighdeáin an phobail atá sna téarmaí a úsáideadh" @@ -5032,12 +6321,13 @@ msgstr "Sárú ar chaighdeáin an phobail atá sna téarmaí a úsáideadh" msgid "text" msgstr "téacs" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Réimse téacs" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "Go raibh maith agat. Seoladh do thuairisc." @@ -5045,12 +6335,21 @@ msgstr "Go raibh maith agat. Seoladh do thuairisc." msgid "That contains the following:" msgstr "Ina bhfuil an méid seo a leanas:" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "Tá an leasainm sin in úsáid cheana féin." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "Beidh an cuntas seo in ann caidreamh a dhéanamh leat tar éis duit é a dhíbhlocáil" @@ -5066,15 +6365,24 @@ msgstr "Bogadh Treoirlínte an Phobail go dtí <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "Bogadh an Polasaí Cóipchirt go dtí <0/>" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 -msgid "The feed has been replaced with Discover." +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 +msgid "The feed has been replaced with Discover." +msgstr "Tá Discover curtha in áit an fhotha seo." + +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "Cuireadh na lipéid seo a leanas le do chuntas." -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "Cuireadh na lipéid seo a leanas le do chuid ábhair." @@ -5082,8 +6390,8 @@ msgstr "Cuireadh na lipéid seo a leanas le do chuid ábhair." msgid "The following steps will help customize your Bluesky experience." msgstr "Cuideoidh na céimeanna seo a leanas leat Bluesky a chur in oiriúint duit féin." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Is féidir gur scriosadh an phostáil seo." @@ -5091,6 +6399,10 @@ msgstr "Is féidir gur scriosadh an phostáil seo." msgid "The Privacy Policy has been moved to <0/>" msgstr "Bogadh Polasaí na Príobháideachta go dtí <0/>" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "" + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "Bogadh an fhoirm tacaíochta go dtí <0/>. Má tá cuidiú ag teastáil uait, <0/> le do thoil, nó tabhair cuairt ar {HELP_DESK_URL} le dul i dteagmháil linn." @@ -5100,51 +6412,57 @@ msgid "The Terms of Service have been moved to" msgstr "Bogadh ár dTéarmaí Seirbhíse go dtí" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" -msgstr "Tá a lán fothaí ann le blaiseadh:" +#~ msgid "There are many feeds to try:" +#~ msgstr "Tá a lán fothaí ann le blaiseadh:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." +msgstr "Níl srian ama le díghníomhú cuntais, fill uair ar bith." + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Bhí fadhb ann maidir le dul i dteagmháil leis an bhfreastalaí. Seiceáil do cheangal leis an idirlíon agus bain triail eile as, le do thoil." -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Bhí fadhb ann maidir leis an bhfotha seo a bhaint. Seiceáil do cheangal leis an idirlíon agus bain triail eile as, le do thoil." #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Bhí fadhb ann maidir le huasdátú do chuid fothaí. Seiceáil do cheangal leis an idirlíon agus bain triail eile as, le do thoil." -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." msgstr "Bhí fadhb ann maidir le teagmháil a dhéanamh le Tenor." #: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" +#, fuzzy +#~ msgid "There was an issue connecting to the chat." +#~ msgstr "Bhí fadhb ann maidir le teagmháil a dhéanamh le Tenor." -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "Bhí fadhb ann maidir le teagmháil a dhéanamh leis an bhfreastalaí" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "Bhí fadhb ann maidir le teagmháil a dhéanamh le do fhreastálaí" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Bhí fadhb ann maidir le fógraí a fháil. Tapáil anseo le triail eile a bhaint as." -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Bhí fadhb ann maidir le postálacha a fháil. Tapáil anseo le triail eile a bhaint as." @@ -5152,57 +6470,59 @@ msgstr "Bhí fadhb ann maidir le postálacha a fháil. Tapáil anseo le triail e msgid "There was an issue fetching the list. Tap here to try again." msgstr "Bhí fadhb ann maidir leis an liosta a fháil. Tapáil anseo le triail eile a bhaint as." -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Bhí fadhb ann maidir le do chuid liostaí a fháil. Tapáil anseo le triail eile a bhaint as." -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Níor seoladh do thuairisc. Seiceáil do nasc leis an idirlíon, le do thoil." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "Bhí fadhb ann maidir le do chuid roghanna a shioncronú leis an bhfreastalaí" +#~ msgid "There was an issue syncing your preferences with the server" +#~ msgstr "Bhí fadhb ann maidir le do chuid roghanna a shioncronú leis an bhfreastalaí" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Bhí fadhb ann maidir le do chuid pasfhocal don aip a fháil" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "Bhí fadhb ann! {0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "Bhí fadhb ann. Seiceáil do cheangal leis an idirlíon, le do thoil, agus bain triail eile as." -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "D’éirigh fadhb gan choinne leis an aip. Abair linn, le do thoil, má tharla sé sin duit!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "Tá ráchairt ar Bluesky le déanaí! Cuirfidh muid do chuntas ag obair chomh luath agus is féidir." #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "Is cuntais iad seo a bhfuil a lán leantóirí acu. Is féidir go dtaitneoidh siad leat." +#~ msgid "These are popular accounts you might like:" +#~ msgstr "Is cuntais iad seo a bhfuil a lán leantóirí acu. Is féidir go dtaitneoidh siad leat." #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" @@ -5212,13 +6532,26 @@ msgstr "Cuireadh bratach leis an {screenDescription} seo:" msgid "This account has requested that users sign in to view their profile." msgstr "Ní mór duit logáil isteach le próifíl an chuntais seo a fheiceáil." -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "Tá an cuntas seo blocáilte i liosta modhnóireachta amháin ar a laghad de do chuid. Chun é a díbhlocáil bain an t-úsáideoir de na liostaí sin." + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "Cuirfear an t-achomharc seo chuig <0>{0}." +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." +msgstr "Seolfar an t-achomharc seo go dtí seirbhís modhnóireachta Bluesky." + +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "Dínascadh an comhrá seo" + #: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." -msgstr "" +#, fuzzy +#~ msgid "This chat was disconnected due to a network error." +#~ msgstr "Dínascadh an comhrá seo" #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." @@ -5233,36 +6566,44 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Tá an t-ábhar seo ar fáil ó {0}. An bhfuil fonn ort na meáin sheachtracha a thaispeáint?" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Níl an t-ábhar seo le feiceáil toisc gur bhlocáil duine de na húsáideoirí an duine eile." -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "Níl an t-ábhar seo le feiceáil gan chuntas Bluesky." -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "Tá an ghné seo á tástáil fós. Tig leat níos mó faoi chartlanna easpórtáilte a léamh sa <0>bhlagphost seo." -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Tá ráchairt an-mhór ar an bhfotha seo faoi láthair. Níl sé ar fáil anois díreach dá bhrí sin. Bain triail eile as níos déanaí, le do thoil." -#: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "Tá an fotha seo folamh!" +#: src/screens/Profile/Sections/Feed.tsx:NaN +#~ msgid "This feed is empty!" +#~ msgstr "Tá an fotha seo folamh!" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Tá an fotha seo folamh! Is féidir go mbeidh ort tuilleadh úsáideoirí a leanúint nó do shocruithe teanga a athrú." -#: src/view/com/posts/FeedShutdownMsg.tsx:97 -msgid "This feed is no longer online. We are showing <0>Discover instead." +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:99 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "Níl an fotha seo ar líne níos mó. Tá <0>Discover á thaispeáint againn ina ionad." + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Ní roinntear an t-eolas seo le húsáideoirí eile." @@ -5277,17 +6618,22 @@ msgstr "Tá sé seo tábhachtach má bhíonn ort do ríomhphost nó do phasfhoca #: src/components/moderation/ModerationDetailsDialog.tsx:127 msgid "This label was applied by <0>{0}." -msgstr "" +msgstr "Chuir <0>{0} an lipéad seo leis." #: src/components/moderation/ModerationDetailsDialog.tsx:125 msgid "This label was applied by the author." -msgstr "" +msgstr "Chuir an t-údar an lipéad seo leis." #: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" -msgstr "" +#, fuzzy +#~ msgid "This label was applied by you" +#~ msgstr "Chuir tusa an lipéad seo leis." -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." +msgstr "Chuir tusa an lipéad seo leis." + +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "Ní dúirt an lipéadóir seo céard iad na lipéid a fhoilsíonn sé, agus is féidir nach bhfuil sé i mbun gnó." @@ -5295,7 +6641,7 @@ msgstr "Ní dúirt an lipéadóir seo céard iad na lipéid a fhoilsíonn sé, a msgid "This link is taking you to the following website:" msgstr "Téann an nasc seo go dtí an suíomh idirlín seo:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "Tá an liosta seo folamh!" @@ -5303,24 +6649,24 @@ msgstr "Tá an liosta seo folamh!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "Níl an tseirbhís modhnóireachta ar fáil. Féach tuilleadh sonraí thíos. Má mhaireann an fhadhb seo, téigh i dteagmháil linn." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "Tá an t-ainm seo in úsáid cheana féin" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "Scriosadh an phostáil seo." -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Níl an phostáil seo le feiceáil ach ag úsáideoirí atá logáilte isteach. Ní bheidh daoine nach bhfuil logáilte isteach in ann í a fheiceáil." -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "Ní bheidh an phostáil seo le feiceáil ar do chuid fothaí." -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Níl an phróifíl seo le feiceáil ach ag úsáideoirí atá logáilte isteach. Ní bheidh daoine nach bhfuil logáilte isteach in ann í a fheiceáil." @@ -5336,8 +6682,12 @@ msgstr "Ba cheart dó seo taifead fearainn a chruthú ag:" msgid "This user doesn't have any followers." msgstr "Níl aon leantóirí ag an úsáideoir seo." +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "Tá tú blocáilte ag an úsáideoir seo." + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "Tá an t-úsáideoir seo tar éis thú a bhlocáil. Ní féidir leat a gcuid ábhair a fheiceáil." @@ -5353,6 +6703,10 @@ msgstr "Tá an t-úsáideoir seo ar an liosta <0>{0} a bhlocáil tú." msgid "This user is included in the <0>{0} list which you have muted." msgstr "Tá an t-úsáideoir seo ar an liosta <0>{0} a chuir tú i bhfolach." +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "" + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "Níl éinne á leanúint ag an úsáideoir seo." @@ -5365,20 +6719,24 @@ msgstr "Níl éinne á leanúint ag an úsáideoir seo." msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Bainfidh sé seo {0} de do chuid focal i bhfolach. Tig leat é a chur ar ais níos déanaí." -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" msgstr "Roghanna snáitheanna" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "Roghanna Snáitheanna" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "Modh Snáithithe" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "Roghanna Snáitheanna" @@ -5386,9 +6744,9 @@ msgstr "Roghanna Snáitheanna" msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "Chun 2FA trí ríomhphoist a dhíchumasú, dearbhaigh gur leatsa an seoladh ríomhphoist." -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." -msgstr "" +msgstr "Chun comhrá a thuairisciú, tuairiscigh teachtaireacht amháin as tríd an scáileán comhrá. Cuireann sé sin ar cumas ár modhnóirí comhthéacs do dheacrachta a thuiscint." #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" @@ -5398,16 +6756,16 @@ msgstr "Cé chuige ar mhaith leat an tuairisc seo a sheoladh?" msgid "Toggle between muted word options." msgstr "Scoránaigh idir na roghanna maidir le focail atá le cur i bhfolach." -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "Scoránaigh an bosca anuas" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "Scoránaigh le ábhar do dhaoine fásta a cheadú nó gan a cheadú" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "Barr" @@ -5415,10 +6773,12 @@ msgstr "Barr" msgid "Transformations" msgstr "Trasfhoirmithe" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "Aistrigh" @@ -5427,65 +6787,81 @@ msgctxt "action" msgid "Try again" msgstr "Bain triail eile as" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "Fíordheimhniú déshraithe (2FA)" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" -msgstr "" +msgstr "Scríobh do theachtaireacht anseo" #: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "Clóscríobh:" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "Díbhlocáil an liosta" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "Ná coinnigh an liosta sin i bhfolach níos mó" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Ní féidir teagmháil a dhéanamh le do sheirbhís. Seiceáil do cheangal leis an idirlíon, le do thoil." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "Díbhlocáil" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "Díbhlocáil" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "Díbhlocáil an cuntas" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "Díbhlocáil an cuntas" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" msgstr "An bhfuil fonn ort an cuntas seo a dhíbhlocáil?" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "Cuir stop leis an athphostáil" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "Dílean" @@ -5494,12 +6870,12 @@ msgstr "Dílean" msgid "Unfollow" msgstr "Dílean" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "Dílean {0}" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "Dílean an cuntas seo" @@ -5507,12 +6883,12 @@ msgstr "Dílean an cuntas seo" #~ msgid "Unlike" #~ msgstr "Dímhol" -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "Dímhol an fotha seo" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "Ná coinnigh i bhfolach" @@ -5520,8 +6896,8 @@ msgstr "Ná coinnigh i bhfolach" msgid "Unmute {truncatedTag}" msgstr "Ná coinnigh {truncatedTag} i bhfolach" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "Ná coinnigh an cuntas seo i bhfolach níos mó" @@ -5529,46 +6905,56 @@ msgstr "Ná coinnigh an cuntas seo i bhfolach níos mó" msgid "Unmute all {displayTag} posts" msgstr "Ná coinnigh aon phostáil {displayTag} i bhfolach" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" -msgstr "" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" +msgstr "Díbhalbhaigh an comhrá seo" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/components/dms/ConvoMenu.tsx:140 +#, fuzzy +#~ msgid "Unmute notifications" +#~ msgstr "Lódáil fógraí nua" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" msgstr "Ná coinnigh an snáithe seo i bhfolach níos mó" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "Díghreamaigh" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "Díghreamaigh ón mbaile" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "Díghreamaigh an liosta modhnóireachta" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "Díghreamaithe ó do chuid fothaí" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Díliostáil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "Díliostáil ón lipéadóir seo" #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" +#, fuzzy +#~ msgid "Unwanted sexual content" +#~ msgstr "Ábhar graosta nach mian liom" -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 +#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:85 msgid "Unwanted Sexual Content" msgstr "Ábhar graosta nach mian liom" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "Uasdátú {displayName} sna Liostaí" @@ -5580,28 +6966,28 @@ msgstr "Déan uasdátú go {handle}" msgid "Updating..." msgstr "Á uasdátú…" -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" -msgstr "" +msgstr "Uaslódáil grianghraf in ionad" #: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Uaslódáil comhad téacs chuig:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "Uaslódáil ó Cheamara" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "Uaslódáil ó Chomhaid" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -5611,7 +6997,7 @@ msgstr "Uaslódáil ó Leabharlann" msgid "Use a file on your server" msgstr "Bain úsáid as comhad ar do fhreastalaí" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Bain úsáid as pasfhocail na haipe le logáil isteach ar chliaint eile de chuid Bluesky gan fáil iomlán ar do chuntas ná do phasfhocal a thabhairt dóibh." @@ -5635,13 +7021,13 @@ msgstr "Úsáid an brabhsálaí réamhshocraithe atá agam" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 msgid "Use recommended" -msgstr "" +msgstr "Úsáid an ceann molta" #: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "Bain feidhm as an bpainéal DNS" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Úsáid é seo le logáil isteach ar an aip eile in éindí le do leasainm." @@ -5650,19 +7036,23 @@ msgid "Used by:" msgstr "In úsáid ag:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "Úsáideoir blocáilte" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr "Úsáideoir blocáilte ag \"{0}\"" +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "Úsáideoir blocáilte trí liosta" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "Úsáideoir blocáilte le liosta" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "Úsáideoir a bhlocálann thú" @@ -5670,46 +7060,53 @@ msgstr "Úsáideoir a bhlocálann thú" msgid "User Blocks You" msgstr "Blocálann an t-úsáideoir seo thú" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "Liosta úsáideoirí le {0}" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "Liosta úsáideoirí le <0/>" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "Liosta úsáideoirí leat" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "Liosta úsáideoirí cruthaithe" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "Liosta úsáideoirí uasdátaithe" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "Liostaí Úsáideoirí" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "Ainm úsáideora nó ríomhphost" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "Úsáideoirí" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "Úsáideoirí a bhfuil <0/> á leanúint" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "Úsáideoirí a leanaim" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "Úsáideoirí in ”{0}“" @@ -5727,17 +7124,17 @@ msgstr "Luach:" #: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" -msgstr "" +msgstr "Dearbhaigh taifead DNS" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "Dearbhaigh ríomhphost" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "Dearbhaigh mo ríomhphost" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "Dearbhaigh Mo Ríomhphost" @@ -5748,7 +7145,7 @@ msgstr "Dearbhaigh an Ríomhphost Nua" #: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" -msgstr "" +msgstr "Dearbhaigh comhad téacs" #: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" @@ -5758,31 +7155,44 @@ msgstr "Dearbhaigh Do Ríomhphost" #~ msgid "Version {0}" #~ msgstr "Leagan {0}" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" -msgstr "" +msgstr "Leagan {appVersion} {bundleInfo}" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "Físchluichí" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "Féach ar an abhatár atá ag {0}" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "Amharc ar phróifíl {0}" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "Féach ar an iontráil dífhabhtaithe" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "Féach ar shonraí" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "Féach ar shonraí maidir le sárú cóipchirt a thuairisciú" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "Féach ar an snáithe iomlán" @@ -5790,13 +7200,15 @@ msgstr "Féach ar an snáithe iomlán" msgid "View information about these labels" msgstr "Féach ar eolas faoi na lipéid seo" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Féach ar an bpróifíl" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "Féach ar an abhatár" @@ -5804,10 +7216,15 @@ msgstr "Féach ar an abhatár" msgid "View the labeling service provided by @{0}" msgstr "Féach ar an tseirbhís lipéadaithe atá curtha ar fáil ag @{0}" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "Féach ar úsáideoirí ar thaitin an fotha seo leo" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -5816,7 +7233,6 @@ msgstr "Tabhair cuairt ar an suíomh" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Rabhadh" @@ -5832,15 +7248,15 @@ msgstr "Tabhair foláireamh faoi ábhar agus scag as fothaí" msgid "We couldn't find any results for that hashtag." msgstr "Níor aimsigh muid toradh ar bith don haischlib sin." -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" -msgstr "" +msgstr "Theip orainn an comhrá seo a lódáil" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Measaimid go mbeidh do chuntas réidh i gceann {estimatedTime}" -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Tá súil againn go mbeidh an-chraic agat anseo. Ná déan dearmad go bhfuil Bluesky:" @@ -5853,34 +7269,38 @@ msgid "We recommend avoiding common words that appear in many posts, since it ca msgstr "Molaimid focail choitianta a bhíonn i go leor póstálacha a sheachaint, toisc gur féidir nach dtaispeánfaí aon phostáil dá bharr." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "Molaimid an fotha “Discover”." +#~ msgid "We recommend our \"Discover\" feed:" +#~ msgstr "Molaimid an fotha “Discover”." #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "Theip orainn do rogha maidir le dáta breithe a lódáil. Bain triail as arís." -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "Theip orainn na lipéadóirí a roghnaigh tú a lódáil faoi láthair." -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Níorbh fhéidir linn ceangal a bhunú. Bain triail eile as do chuntas a shocrú. Má mhaireann an fhadhb, ní gá duit an próiseas seo a chur i gcrích." -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "Déarfaidh muid leat nuair a bheidh do chuntas réidh." -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "Bainfimid úsáid as seo chun an suíomh a chur in oiriúint duit." -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "Tá fadhbanna líonra againn, bain triail as arís" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "Tá muid an-sásta go bhfuil tú linn!" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Ár leithscéal, ach ní féidir linn an liosta seo a thaispeáint. Má mhaireann an fhadhb, déan teagmháil leis an duine a chruthaigh an liosta, @{handleOrDid}." @@ -5888,30 +7308,50 @@ msgstr "Ár leithscéal, ach ní féidir linn an liosta seo a thaispeáint. Má msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Tá brón orainn, ach theip orainn na focail a chuir tú i bhfolach a lódáil an uair seo. Bain triail as arís." -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Ár leithscéal, ach níorbh fhéidir linn do chuardach a chur i gcrích. Bain triail eile as i gceann cúpla nóiméad." -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "" + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Ár leithscéal, ach ní féidir linn an leathanach atá tú ag lorg a aimsiú." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." -msgstr "Tá brón orainn! Ní féidir síntiúis a ghlacadh ach le deich lipéadóir, tá an teorainn sin sroichte agat." +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 +#~ msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#~ msgstr "Tá brón orainn! Ní féidir síntiúis a ghlacadh ach le deich lipéadóir, tá an teorainn sin sroichte agat." + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "" + +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" +msgstr "Fáilte ar ais!" #: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Fáilte go <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" msgstr "Cad iad na rudaí a bhfuil suim agat iontu?" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "" + #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "Aon scéal?" @@ -5923,36 +7363,53 @@ msgstr "Cad iad na teangacha sa phostáil seo?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Cad iad na teangacha ba mhaith leat a fheiceáil i do chuid fothaí algartamacha?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "Cé ar féidir leo teachtaireacht a sheoladh chugat?" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "Cé atá in ann freagra a thabhairt" -#: src/screens/Home/NoFeedsPinned.tsx:92 -msgid "Whoops!" +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 +msgid "Whoops!" +msgstr "Úps!" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "Cén fáth gur cheart athbhreithniú a dhéanamh ar an t-ábhar seo?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "Cén fáth gur cheart athbhreithniú a dhéanamh ar an bhfotha seo?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "Cén fáth gur cheart athbhreithniú a dhéanamh ar an liosta seo?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" -msgstr "" +msgstr "Cén fáth gur cheart athbreithniú a dhéanamh ar an teachtaireacht seo?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "Cén fáth gur cheart athbhreithniú a dhéanamh ar an bpostáil seo?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "Cén fáth gur cheart athbhreithniú a dhéanamh ar an úsáideoir seo?" @@ -5960,39 +7417,61 @@ msgstr "Cén fáth gur cheart athbhreithniú a dhéanamh ar an úsáideoir seo?" msgid "Wide" msgstr "Leathan" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" -msgstr "" +msgstr "Scríobh teachtaireacht" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "Scríobh postáil" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "Scríobh freagra" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "Scríbhneoirí" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "Tá" -#: src/components/dms/MessageItem.tsx:158 -msgid "Yesterday, {time}" +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "Tá, díghníomhaigh" + +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" msgstr "" -#: src/screens/Deactivated.tsx:136 +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "Tá, athghníomhaigh mo chuntas" + +#: src/components/dms/MessageItem.tsx:182 +msgid "Yesterday, {time}" +msgstr "Inné, {time}" + +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "Tá tú sa scuaine." @@ -6000,29 +7479,49 @@ msgstr "Tá tú sa scuaine." msgid "You are not following anyone." msgstr "Níl éinne á leanúint agat." -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "Is féidir leat sainfhothaí nua a aimsiú le leanúint." +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "Is féidir leat do chuntas a dhíghníomhú go sealadach, agus é a athghníomhú uair ar bith." + #: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." -msgstr "Is féidir leat na socruithe seo a athrú níos déanaí." +#~ msgid "You can change these settings later." +#~ msgstr "Is féidir leat na socruithe seo a athrú níos déanaí." + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "Is féidir leat é seo a athrú uair ar bith." + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "Is féidir leat leanacht le comhráite beag beann ar cén socrú a roghnaíonn tú." #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." msgstr "Is féidir leat logáil isteach le do phasfhocal nua anois." +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "Is féidir leat do chuntas a athghníomhú chun leanacht ort ag logáil isteach. Beidh úsáideoirí eile in ann do phróifíl agus do chuid postálacha a fheiceáil." + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "Níl aon leantóir agat." +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Níl aon chóid chuiridh agat fós! Cuirfidh muid cúpla cód chugat tar éis duit beagán ama a chaitheamh anseo." -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." msgstr "Níl aon fhothaí greamaithe agat." @@ -6030,28 +7529,32 @@ msgstr "Níl aon fhothaí greamaithe agat." #~ msgid "You don't have any saved feeds!" #~ msgstr "Níl aon fhothaí sábháilte agat!" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." msgstr "Níl aon fhothaí sábháilte agat." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Bhlocáil tú an t-údar nó tá tú blocáilte ag an údar." +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "Bhlocáil tú an t-úsáideoir seo" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "Bhlocáil tú an cuntas seo. Ní féidir leat a gcuid ábhar a fheiceáil." #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Tá tú tar éis cód míchruinn a chur isteach. Ba cheart an cruth seo a bheith air: XXXXX-XXXXX." -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "Chuir tú an phostáil seo i bhfolach" @@ -6060,32 +7563,37 @@ msgid "You have hidden this post." msgstr "Chuir tú an phostáil seo i bhfolach." #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "Chuir tú an cuntas seo i bhfolach." -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "Chuir tú an t-úsáideoir seo i bhfolach" -#: src/view/com/feeds/ProfileFeedgens.tsx:144 +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "Níl comhrá ar bith agat fós. Tosaigh ceann!" + +#: src/view/com/feeds/ProfileFeedgens.tsx:137 msgid "You have no feeds." msgstr "Níl aon fhothaí agat." -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." msgstr "Níl aon liostaí agat." #: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "" +#, fuzzy +#~ msgid "You have no messages yet. Start a conversation with someone!" +#~ msgstr "Níl comhrá ar bith agat fós. Tosaigh ceann!" #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "Níor bhlocáil tú aon chuntas fós. Le cuntas a bhlocáil, téigh go dtí a bpróifíl agus roghnaigh “Blocáil an cuntas seo” ar an gclár ansin." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Níor chruthaigh tú aon phasfhocal aipe fós. Is féidir leat ceann a chruthú ach brú ar an gcnaipe thíos." @@ -6093,35 +7601,67 @@ msgstr "Níor chruthaigh tú aon phasfhocal aipe fós. Is féidir leat ceann a c msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "Níor chuir tú aon chuntas i bhfolach fós. Le cuntas a chur i bhfolach, téigh go dtí a bpróifíl agus roghnaigh “Cuir an cuntas seo i bhfolach” ar an gclár ansin." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "Tá deireadh sroichte agat" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Níor chuir tú aon fhocal ná clib i bhfolach fós" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." -msgstr "" +msgstr "Is féidir leat achomharc a dhéanamh maidir le lipéid nár chuir tú féin má shíleann tú iad a bheith in earráid." -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Is féidir leat achomharc a dhéanamh maidir leis na lipéad seo má shíleann tú gur cuireadh in earráid iad." +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "" + #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "Caithfidh tú a bheith 13 bliana d’aois nó níos sine le clárú." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" -msgstr "Caithfidh tú a bheith 18 mbliana d’aois nó níos sine le hábhar do dhaoine fásta a fháil." +#~ msgid "You must be 18 years or older to enable adult content" +#~ msgstr "Caithfidh tú a bheith 18 mbliana d’aois nó níos sine le hábhar do dhaoine fásta a fháil." -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "" + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "Caithfidh tú ar a laghad lipéadóir amháin a roghnú do thuairisc" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "Rinne tú díghníomhú ar @{0} cheana." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "Ní bhfaighidh tú fógraí don snáithe seo a thuilleadh." -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "Gheobhaidh tú fógraí don snáithe seo anois." @@ -6129,60 +7669,98 @@ msgstr "Gheobhaidh tú fógraí don snáithe seo anois." msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Gheobhaidh tú teachtaireacht ríomhphoist le “cód athshocraithe” ann. Cuir an cód sin isteach anseo, ansin cuir do phasfhocal nua isteach." -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" +msgstr "Tusa {0}" + +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "Tusa: {defaultEmbeddedContentMessage}" + +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "Tusa: {short}" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "Tá sé faoi do stiúir" +#~ msgid "You're in control" +#~ msgstr "Tá sé faoi do stiúir" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "Tá tú sa scuaine" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "Tá tú logáilte isteach le pasfhocal aipe. Logáil isteach le do phríomh-phasfhocal chun dul ar aghaidh le díghníomhú do chuntais." + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "Tá tú réidh!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "Roghnaigh tú focal nó clib atá sa phostáil seo a chur i bhfolach." -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Tháinig tú go deireadh d’fhotha! Aimsigh cuntais eile le leanúint." -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "Do chuntas" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "Scriosadh do chuntas" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "Is féidir cartlann do chuntais, a bhfuil na taifid phoiblí uile inti, a íoslódáil mar chomhad “CAR”. Ní bheidh aon mheáin leabaithe (íomhánna, mar shampla) ná do shonraí príobháideacha inti. Ní mór iad a fháil ar dhóigh eile." -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "Do bhreithlá" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "Cuireadh do chuid comhráite ar ceal" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "Sábhálfar do rogha, ach is féidir é athrú níos déanaí sna socruithe." #: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "Is é “Following” d’fhotha réamhshocraithe" +#~ msgid "Your default feed is \"Following\"" +#~ msgstr "Is é “Following” d’fhotha réamhshocraithe" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "Is cosúil go bhfuil do ríomhphost neamhbhailí." @@ -6194,11 +7772,15 @@ msgstr "Uasdátaíodh do sheoladh ríomhphoist ach níor dearbhaíodh é. An ch msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Níor dearbhaíodh do sheoladh ríomhphoist fós. Is tábhachtach an chéim shábháilteachta é sin agus molaimid é." -#: src/view/com/posts/FollowingEmptyState.tsx:47 +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:43 msgid "Your following feed is empty! Follow more users to see what's happening." msgstr "Tá an fotha de na daoine a leanann tú folamh! Lean tuilleadh úsáideoirí le feiceáil céard atá ar siúl." -#: src/screens/Signup/StepHandle.tsx:73 +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "Do leasainm iomlán anseo:" @@ -6210,30 +7792,34 @@ msgstr "Do leasainm iomlán anseo: <0>@{0}" msgid "Your muted words" msgstr "Na focail a chuir tú i bhfolach" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "Athraíodh do phasfhocal!" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "Foilsíodh do phostáil" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Tá do chuid postálacha, moltaí, agus blocálacha poiblí. Is príobháideach iad na cuntais a chuireann tú i bhfolach." -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "Do phróifíl" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "Ní bheidh do phróifíl, postálacha, fothaí ná liostaí infheicthe ag úsáideoirí eile Bluesky. Is féidir leat do chuntas a athghníomhú uair ar bith trí logáil isteach." + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "Foilsíodh do fhreagra" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" -msgstr "" +msgstr "Seolfar do thuairisc go dtí Seirbhís Modhnóireachta Bluesky" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "Do leasainm" diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index 8ea3352c61..413ff8f5d8 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -13,11 +13,15 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" @@ -26,36 +30,49 @@ msgstr "" #~ msgstr "" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:55 +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" msgstr "" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/KnownFollowers.tsx:179 +#~ msgid "{0, plural, one {and # other} other {and # others}}" +#~ msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -63,39 +80,87 @@ msgstr "" msgid "{0, plural, one {post} other {posts}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "" + #: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" +#~ msgid "{0} your feeds" +#~ msgstr "" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" msgstr "" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" msgstr "" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:151 #~ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" #~ msgstr "" @@ -110,36 +175,70 @@ msgstr "" #~ msgid "{invitesAvailable} invite codes available" #~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:461 +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:485 +#~ msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:497 +#~ msgid "<0>{0}, <1>{1}, and {2} {3, plural, one {other} other {others}} are included in your starter pack" +#~ msgstr "" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "" + #: src/view/shell/Drawer.tsx:96 #~ msgid "<0>{0} following" #~ msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "" + #: src/components/ProfileHoverCard/index.web.tsx:437 #~ msgid "<0>{followers} <1>{pluralizedFollowers}" #~ msgstr "" @@ -169,11 +268,15 @@ msgstr "" #~ msgid "<0>Welcome to<1>Bluesky" #~ msgstr "" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" msgstr "" @@ -181,30 +284,34 @@ msgstr "" #~ msgid "A content warning has been applied to this {0}." #~ msgstr "" +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "" + #: src/lib/hooks/useOTAUpdate.ts:16 #~ msgid "A new version of the app is available. Please update to continue using the app." #~ msgstr "ऐप का एक नया संस्करण उपलब्ध है. कृपया ऐप का उपयोग जारी रखने के लिए अपडेट करें।" -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "प्रवेर्शयोग्यता" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" msgstr "" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" msgstr "" @@ -212,26 +319,26 @@ msgstr "" #~ msgid "account" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "अकाउंट" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "" @@ -247,37 +354,46 @@ msgstr "अकाउंट के विकल्प" msgid "Account removed from quick access" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "ऐड करो" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "सामग्री चेतावनी जोड़ें" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "इस सूची में किसी को जोड़ें" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "अकाउंट जोड़ें" @@ -286,7 +402,7 @@ msgstr "अकाउंट जोड़ें" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "इस फ़ोटो में विवरण जोड़ें" @@ -294,9 +410,9 @@ msgstr "इस फ़ोटो में विवरण जोड़ें" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "" @@ -325,11 +441,19 @@ msgstr "" msgid "Add muted words and tags" msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/StarterPack/Wizard/index.tsx:197 +#~ msgid "Add people to your starter pack that you think others will enjoy following" +#~ msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" msgstr "" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" msgstr "" @@ -337,12 +461,16 @@ msgstr "" msgid "Add the following DNS record to your domain:" msgstr "अपने डोमेन में निम्नलिखित DNS रिकॉर्ड जोड़ें:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "सूचियों में जोड़ें" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" msgstr "इस फ़ीड को सहेजें" @@ -350,21 +478,20 @@ msgstr "इस फ़ीड को सहेजें" #~ msgid "Added" #~ msgstr "" -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "पसंद की संख्या को समायोजित करें उत्तर को आपके फ़ीड में दिखाया जाना चाहिए।।" #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "वयस्क सामग्री" @@ -373,25 +500,48 @@ msgstr "वयस्क सामग्री" #~ msgid "Adult content can only be enabled via the Web at <0/>." #~ msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 -#~ msgid "Adult content can only be enabled via the Web at <0>bsky.app." -#~ msgstr "" +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "" #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." msgstr "" -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "विकसित" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." msgstr "" +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "" @@ -401,17 +551,17 @@ msgstr "" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" msgstr "वैकल्पिक पाठ" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" msgstr "" @@ -428,65 +578,93 @@ msgstr "{0} को ईमेल भेजा गया है। इसमें msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "{0} को ईमेल भेजा गया है। इसमें एक OTP कोड शामिल है जिसे आप नीचे दर्ज कर सकते हैं।।" -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" msgstr "" -#: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/components/StarterPack/ShareDialog.tsx:79 +#~ msgid "An error occurred while saving the image." +#~ msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:134 +#~ msgid "An error occurred while trying to delete the message. Please try again." +#~ msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "और" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" msgstr "" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "ऐप भाषा" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "" -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "" @@ -494,18 +672,18 @@ msgstr "" #~ msgid "App passwords" #~ msgstr "ऐप पासवर्ड" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "ऐप पासवर्ड" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "" @@ -518,7 +696,8 @@ msgstr "" #~ msgid "Appeal Content Warning" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "" @@ -526,40 +705,63 @@ msgstr "" #~ msgid "Appeal submitted." #~ msgstr "" -#: src/view/com/util/moderation/LabelInfo.tsx:52 -#~ msgid "Appeal this decision" -#~ msgstr "" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "" #: src/view/com/util/moderation/LabelInfo.tsx:56 #~ msgid "Appeal this decision." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:430 +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "दिखावट" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +#~ msgid "Are you sure you want delete this starter pack?" +#~ msgstr "" + +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "क्या आप वाकई ऐप पासवर्ड \"{name}\" हटाना चाहते हैं?" #: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgstr "" + +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" msgstr "" #: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgstr "" + +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "क्या आप वाकई इस ड्राफ्ट को हटाना करना चाहेंगे?" @@ -575,7 +777,8 @@ msgstr "क्या आप वास्तव में इसे करना msgid "Are you writing in <0>{0}?" msgstr "" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "" @@ -583,24 +786,27 @@ msgstr "" msgid "Artistic or non-erotic nudity." msgstr "कलात्मक या गैर-कामुक नग्नता।।" -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "वापस" @@ -610,10 +816,10 @@ msgstr "वापस" #~ msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "" +#~ msgid "Based on your interest in {interestsText}" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "मूल बातें" @@ -621,38 +827,38 @@ msgstr "मूल बातें" msgid "Birthday" msgstr "जन्मदिन" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "जन्मदिन:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "खाता ब्लॉक करें" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "खाता ब्लॉक करें" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "खाता ब्लॉक करें?" @@ -660,21 +866,21 @@ msgstr "खाता ब्लॉक करें?" #~ msgid "Block this List" #~ msgstr "" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "ब्लॉक किए गए खाते" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "ब्लॉक किए गए खाते" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते।" @@ -682,19 +888,19 @@ msgstr "अवरुद्ध खाते आपके थ्रेड्स msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते। आप उनकी सामग्री नहीं देख पाएंगे और उन्हें आपकी सामग्री देखने से रोका जाएगा।" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "ब्लॉक पोस्ट।" -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "" -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "अवरोधन सार्वजनिक है. अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते।" -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." msgstr "" @@ -711,6 +917,10 @@ msgstr "Bluesky" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "" +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "" + #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 #~ msgid "Bluesky is flexible." @@ -730,7 +940,11 @@ msgstr "" #~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." #~ msgstr "ब्लूस्की एक स्वस्थ समुदाय बनाने के लिए आमंत्रित करता है। यदि आप किसी को आमंत्रित नहीं करते हैं, तो आप प्रतीक्षा सूची के लिए साइन अप कर सकते हैं और हम जल्द ही एक भेज देंगे।।" -#: src/screens/Moderation/index.tsx:533 +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "" + +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "" @@ -746,12 +960,31 @@ msgstr "" msgid "Blur images and filter from feeds" msgstr "" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 msgid "Browse other feeds" msgstr "" @@ -767,7 +1000,7 @@ msgstr "" #~ msgid "Button disabled. Input custom domain to proceed." #~ msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "" @@ -780,10 +1013,10 @@ msgid "By {0}" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" +#~ msgid "by @{0}" +#~ msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "" @@ -791,7 +1024,7 @@ msgstr "" msgid "By creating an account you agree to the {els}." msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "" @@ -799,7 +1032,7 @@ msgstr "" msgid "Camera" msgstr "कैमरा" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "केवल अक्षर, संख्या, रिक्त स्थान, डैश और अंडरस्कोर हो सकते हैं। कम से कम 4 अक्षर लंबा होना चाहिए, लेकिन 32 अक्षरों से अधिक लंबा नहीं होना चाहिए।।" @@ -807,14 +1040,15 @@ msgstr "केवल अक्षर, संख्या, रिक्त स् #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -822,23 +1056,23 @@ msgstr "केवल अक्षर, संख्या, रिक्त स् #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "कैंसिल" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "अकाउंट बंद मत करो" @@ -854,12 +1088,16 @@ msgstr "तस्वीर को क्रॉप मत करो" msgid "Cancel profile editing" msgstr "प्रोफ़ाइल संपादन मत करो" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "कोटे पोस्ट मत करो" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "खोज मत करो" @@ -875,17 +1113,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "परिवर्तन" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "हैंडल बदलें" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "हैंडल बदलें" @@ -893,12 +1131,12 @@ msgstr "हैंडल बदलें" msgid "Change my email" msgstr "मेरा ईमेल बदलें" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "" @@ -914,20 +1152,30 @@ msgstr "" msgid "Change Your Email" msgstr "मेरा ईमेल बदलें" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" msgstr "" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" msgstr "" @@ -935,8 +1183,8 @@ msgstr "" #~ msgid "Chat with {chatId}" #~ msgstr "" -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "" @@ -948,27 +1196,47 @@ msgstr "" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "कुछ अनुशंसित उपयोगकर्ताओं की जाँच करें। ऐसे ही उपयोगकर्ता देखने के लिए उनका अनुसरण करें।" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "नीचे प्रवेश करने के लिए OTP कोड के साथ एक ईमेल के लिए अपने इनबॉक्स की जाँच करें:" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" +#: src/view/com/modals/Threadgate.tsx:75 +#~ msgid "Choose \"Everybody\" or \"Nobody\"" +#~ msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" msgstr "" #: src/view/screens/Settings/index.tsx:697 #~ msgid "Choose a new Bluesky username or create" #~ msgstr "" +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "सेवा चुनें" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." msgstr "" @@ -981,44 +1249,49 @@ msgstr "" msgid "Choose this color as your avatar" msgstr "" +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:103 #~ msgid "Choose your algorithmic feeds" #~ msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "" +#~ msgid "Choose your main feeds" +#~ msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "अपना पासवर्ड चुनें" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "खोज क्वेरी साफ़ करें" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "" @@ -1026,10 +1299,18 @@ msgstr "" msgid "click here" msgstr "" -#: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +#~ msgid "Click here to add one." +#~ msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "" @@ -1038,19 +1319,33 @@ msgstr "" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:47 +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "" + +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "" @@ -1062,11 +1357,12 @@ msgstr "चेतावनी को बंद करो" msgid "Close bottom drawer" msgstr "बंद करो" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" msgstr "" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" msgstr "" @@ -1078,6 +1374,10 @@ msgstr "छवि बंद करें" msgid "Close image viewer" msgstr "छवि बंद करें" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "नेविगेशन पाद बंद करें" @@ -1095,7 +1395,7 @@ msgstr "" msgid "Closes password update alert" msgstr "" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "" @@ -1103,42 +1403,48 @@ msgstr "" msgid "Closes viewer for header image" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "समुदाय दिशानिर्देश" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "जवाब लिखो" #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "" +#~ msgid "Configure content filtering setting for category: {0}" +#~ msgstr "" #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" @@ -1148,13 +1454,11 @@ msgstr "" msgid "Configured in <0>moderation settings." msgstr "" -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -1175,7 +1479,7 @@ msgstr "बदलाव की पुष्टि करें" msgid "Confirm content language settings" msgstr "सामग्री भाषा सेटिंग्स की पुष्टि करें" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "खाते को हटा दें" @@ -1183,18 +1487,18 @@ msgstr "खाते को हटा दें" #~ msgid "Confirm your age to enable adult content." #~ msgstr "" -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 @@ -1205,11 +1509,11 @@ msgstr "OTP कोड" #~ msgid "Confirms signing up {email} to the waitlist" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "कनेक्टिंग ..।" -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "" @@ -1229,28 +1533,28 @@ msgstr "" #~ msgid "Content Filtering" #~ msgstr "सामग्री फ़िल्टरिंग" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "सामग्री भाषा" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "सामग्री चेतावनी" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "सामग्री चेतावनी" @@ -1258,12 +1562,8 @@ msgstr "सामग्री चेतावनी" msgid "Context menu backdrop, click to close the menu." msgstr "" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "आगे बढ़ें" @@ -1271,41 +1571,47 @@ msgstr "आगे बढ़ें" msgid "Continue as {0} (currently signed in)" msgstr "" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "" +#~ msgid "Continue to the next step" +#~ msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" +#~ msgid "Continue to the next step without following any accounts" +#~ msgstr "" + +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" msgstr "" -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "कॉपी कर ली" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "" @@ -1313,11 +1619,12 @@ msgstr "" msgid "Copied!" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "कॉपी" @@ -1330,12 +1637,20 @@ msgstr "" msgid "Copy code" msgstr "" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "" @@ -1343,38 +1658,46 @@ msgstr "" #~ msgid "Copy link to profile" #~ msgstr "" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "पोस्ट टेक्स्ट कॉपी करें" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "कॉपीराइट नीति" -#: src/components/dms/ConvoMenu.tsx:80 +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" +msgstr "" + +#: src/components/dms/LeaveConvoPrompt.tsx:39 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" msgstr "फ़ीड लोड नहीं कर सकता" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "सूची लोड नहीं कर सकता" #: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "" +#~ msgid "Could not load profiles. Please try again later." +#~ msgstr "" -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" msgstr "" @@ -1386,16 +1709,34 @@ msgstr "" #~ msgid "Country" #~ msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "" + #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "नया खाता बनाएं" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "खाता बनाएँ" @@ -1404,11 +1745,15 @@ msgstr "खाता बनाएँ" msgid "Create an account" msgstr "" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "" @@ -1417,11 +1762,15 @@ msgstr "" msgid "Create new account" msgstr "नया खाता बनाएं" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/StarterPack/ShareDialog.tsx:158 +#~ msgid "Create QR code" +#~ msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "बनाया गया {0}" @@ -1437,7 +1786,8 @@ msgstr "बनाया गया {0}" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "" @@ -1450,8 +1800,8 @@ msgstr "" msgid "Custom domain" msgstr "कस्टम डोमेन" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "" @@ -1463,8 +1813,8 @@ msgstr "" #~ msgid "Danger Zone" #~ msgstr "खतरा क्षेत्र" -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "डार्क मोड" @@ -1472,15 +1822,24 @@ msgstr "डार्क मोड" msgid "Dark mode" msgstr "" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" msgstr "" @@ -1488,14 +1847,17 @@ msgstr "" msgid "Debug panel" msgstr "" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "खाता हटाएं" @@ -1503,35 +1865,40 @@ msgstr "खाता हटाएं" #~ msgid "Delete Account" #~ msgstr "खाता हटाएं" -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "अप्प पासवर्ड हटाएं" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "" -#: src/components/dms/MessageMenu.tsx:101 +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:124 msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:466 +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "सूची हटाएँ" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" msgstr "" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "मेरा खाता हटाएं" @@ -1539,33 +1906,46 @@ msgstr "मेरा खाता हटाएं" #~ msgid "Delete my account…" #~ msgstr "मेरा खाता हटाएं…" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "पोस्ट को हटाएं" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "इस पोस्ट को डीलीट करें?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." msgstr "यह पोस्ट मिटाई जा चुकी है" -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1579,15 +1959,19 @@ msgstr "" #~ msgid "Developer Tools" #~ msgstr "डेवलपर उपकरण" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" msgstr "" @@ -1595,7 +1979,7 @@ msgstr "" msgid "Disable Email 2FA" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" msgstr "" @@ -1610,11 +1994,13 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "" @@ -1622,28 +2008,40 @@ msgstr "" #~ msgid "Discard draft" #~ msgstr "ड्राफ्ट हटाएं" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" msgstr "" -#: src/view/screens/Feeds.tsx:473 -#~ msgid "Discover new feeds" -#~ msgstr "नए फ़ीड की खोज करें" +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "नए फ़ीड की खोज करें" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "नाम" @@ -1660,7 +2058,7 @@ msgstr "" msgid "Does not include nudity." msgstr "" -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "" @@ -1678,30 +2076,27 @@ msgstr "डोमेन सत्यापित!" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "खत्म" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "" @@ -1714,22 +2109,26 @@ msgstr "खत्म {extraText}" #~ msgid "Double tap to sign in" #~ msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "" + #: src/view/screens/Settings/index.tsx:755 #~ msgid "Download Bluesky account data (repository)" #~ msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "" +#~ msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." +#~ msgstr "" #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" @@ -1751,19 +2150,19 @@ msgstr "" msgid "E.g. artistic nudes." msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "" @@ -1771,32 +2170,45 @@ msgstr "" msgid "Each code works once. You'll receive more invite codes periodically." msgstr "प्रत्येक कोड एक बार काम करता है। आपको समय-समय पर अधिक आमंत्रण कोड प्राप्त होंगे।" +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "छवि संपादित करें" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "सूची विवरण संपादित करें" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" msgstr "मेरी फ़ीड संपादित करें" @@ -1804,25 +2216,37 @@ msgstr "मेरी फ़ीड संपादित करें" msgid "Edit my profile" msgstr "मेरी प्रोफ़ाइल संपादित करें" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "मेरी प्रोफ़ाइल संपादित करें" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "मेरी प्रोफ़ाइल संपादित करें" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "एडिट सेव्ड फीड" +#: src/view/screens/Feeds.tsx:416 +#~ msgid "Edit Saved Feeds" +#~ msgstr "एडिट सेव्ड फीड" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "" @@ -1831,11 +2255,20 @@ msgstr "" msgid "Edit your profile description" msgstr "" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "ईमेल" @@ -1861,7 +2294,7 @@ msgstr "ईमेल अपडेट किया गया" msgid "Email verified" msgstr "" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "ईमेल:" @@ -1870,8 +2303,8 @@ msgid "Embed HTML code" msgstr "" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" msgstr "" @@ -1883,18 +2316,18 @@ msgstr "" msgid "Enable {0} only" msgstr "" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "" +#~ msgid "Enable Adult Content" +#~ msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "" +#~ msgid "Enable adult content in your feeds" +#~ msgstr "" #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 @@ -1905,11 +2338,16 @@ msgstr "" #~ msgid "Enable External Media" #~ msgstr "" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "इस सेटिंग को केवल उन लोगों के बीच जवाब देखने में सक्षम करें जिन्हें आप फॉलो करते हैं।।" @@ -1917,7 +2355,9 @@ msgstr "इस सेटिंग को केवल उन लोगों क msgid "Enable this source only" msgstr "" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "" @@ -1925,7 +2365,15 @@ msgstr "" msgid "End of feed" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/components/Lists.tsx:52 +#~ msgid "End of list" +#~ msgstr "" + +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "" @@ -1942,7 +2390,7 @@ msgstr "" msgid "Enter Confirmation Code" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "" @@ -1963,7 +2411,7 @@ msgstr "" #~ msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "अपना ईमेल पता दर्ज करें" @@ -1983,32 +2431,45 @@ msgstr "नीचे अपना नया ईमेल पता दर्ज msgid "Enter your username and password" msgstr "अपने यूज़रनेम और पासवर्ड दर्ज करें" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" msgstr "" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "" @@ -2024,8 +2485,8 @@ msgstr "" msgid "Exits image view" msgstr "" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "" @@ -2037,11 +2498,19 @@ msgstr "" msgid "Expand alt text" msgstr "ऑल्ट टेक्स्ट" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "" @@ -2050,12 +2519,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "" @@ -2065,87 +2534,147 @@ msgid "External Media" msgstr "" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "" -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:28 +#~ msgid "Failed to load past messages." +#~ msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:110 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:143 #~ msgid "Failed to load recommended feeds" #~ msgstr "अनुशंसित फ़ीड लोड करने में विफल" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +#~ msgid "Failed to send message(s)." +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "फ़ीड ऑफ़लाइन है" +#: src/view/screens/Feeds.tsx:709 +#~ msgid "Feed offline" +#~ msgstr "फ़ीड ऑफ़लाइन है" #: src/view/com/feeds/FeedPage.tsx:143 #~ msgid "Feed Preferences" #~ msgstr "फ़ीड प्राथमिकता" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "प्रतिक्रिया" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" msgstr "सभी फ़ीड" @@ -2161,19 +2690,23 @@ msgstr "सभी फ़ीड" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "सामग्री को व्यवस्थित करने के लिए उपयोगकर्ताओं द्वारा फ़ीड बनाए जाते हैं। कुछ फ़ीड चुनें जो आपको दिलचस्प लगें।" -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "फ़ीड कस्टम एल्गोरिदम हैं जिन्हें उपयोगकर्ता थोड़ी कोडिंग विशेषज्ञता के साथ बनाते हैं। <0/> अधिक जानकारी के लिए." #: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" +#~ msgid "Feeds can be topical as well!" +#~ msgstr "" + +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" msgstr "" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" msgstr "" @@ -2181,17 +2714,21 @@ msgstr "" msgid "Filter from feeds" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "" + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" msgstr "" @@ -2207,7 +2744,7 @@ msgstr "" #~ msgid "Finding similar accounts..." #~ msgstr "मिलते-जुलते खाते ढूँढना" -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." msgstr "" @@ -2215,15 +2752,23 @@ msgstr "" #~ msgid "Fine-tune the content you see on your home screen." #~ msgstr "अपने मुख्य फ़ीड की स्क्रीन पर दिखाई देने वाली सामग्री को ठीक करें।।" -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "चर्चा धागे को ठीक-ट्यून करें।।" -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "" @@ -2236,112 +2781,172 @@ msgstr "" msgid "Flip vertically" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "फॉलो" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" msgstr "" +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 +#~ msgid "Follow All" +#~ msgstr "" + #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." msgstr "" +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 +#~ msgid "Follow selected accounts and continue to the next step" +#~ msgstr "" + #: src/view/com/auth/onboarding/RecommendedFollows.tsx:65 #~ msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." #~ msgstr "आरंभ करने के लिए कुछ उपयोगकर्ताओं का अनुसरण करें. आपको कौन दिलचस्प लगता है, इसके आधार पर हम आपको और अधिक उपयोगकर्ताओं की अनुशंसा कर सकते हैं।" -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" +#: src/components/KnownFollowers.tsx:169 +#~ msgid "Followed by" +#~ msgstr "" + +#: src/view/com/profile/ProfileCard.tsx:190 +#~ msgid "Followed by {0}" +#~ msgstr "" + +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" msgstr "" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "केवल वे यूजर को फ़ॉलो किया गया" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "यह यूजर आपका फ़ोलो करता है" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "फोल्लोविंग" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" msgstr "" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" msgstr "" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "यह यूजर आपका फ़ोलो करता है" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "सुरक्षा कारणों के लिए, हमें आपके ईमेल पते पर एक OTP कोड भेजने की आवश्यकता होगी।।" -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "सुरक्षा कारणों के लिए, आप इसे फिर से देखने में सक्षम नहीं होंगे। यदि आप इस पासवर्ड को खो देते हैं, तो आपको एक नया उत्पन्न करना होगा।।" @@ -2358,15 +2963,15 @@ msgstr "सुरक्षा कारणों के लिए, आप इस msgid "Forgot Password" msgstr "पासवर्ड भूल गए" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "" @@ -2374,7 +2979,7 @@ msgstr "" msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "" @@ -2383,48 +2988,77 @@ msgstr "" msgid "Gallery" msgstr "गैलरी" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "प्रारंभ करें" -#: src/screens/Onboarding/StepProfile/index.tsx:228 +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" +msgstr "" + +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 msgid "Give your profile a face" msgstr "" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "वापस जाओ" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "वापस जाओ" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:189 +#~ msgid "Go back to previous screen" +#~ msgstr "" + +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "" @@ -2438,16 +3072,24 @@ msgstr "" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "अगला" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" msgstr "" @@ -2455,19 +3097,23 @@ msgstr "" msgid "Graphic Media" msgstr "" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "हैंडल" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" msgstr "" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "" @@ -2475,72 +3121,70 @@ msgstr "" #~ msgid "Hashtag: {tag}" #~ msgstr "" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "सहायता" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "" +#~ msgid "Here are some accounts for you to follow" +#~ msgstr "" #: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "" +#~ msgid "Here are some popular topical feeds. You can choose to follow as many as you like." +#~ msgstr "" #: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "" +#~ msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." +#~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "यहां आपका ऐप पासवर्ड है." -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "इसे छिपाएं" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "उपयोगकर्ता सूची छुपाएँ" @@ -2548,27 +3192,27 @@ msgstr "उपयोगकर्ता सूची छुपाएँ" #~ msgid "Hides posts from {0} in your feed" #~ msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "" -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." msgstr "" @@ -2576,11 +3220,12 @@ msgstr "" msgid "Hmmmm, we couldn't load that moderation service." msgstr "" -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "होम फीड" @@ -2596,8 +3241,8 @@ msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "होस्टिंग प्रदाता" @@ -2620,7 +3265,8 @@ msgstr "" msgid "I have my own domain" msgstr "मेरे पास अपना डोमेन है" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" msgstr "" @@ -2636,27 +3282,31 @@ msgstr "यदि किसी को चुना जाता है, तो msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "" -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "" -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "छवि alt पाठ" @@ -2665,15 +3315,23 @@ msgstr "छवि alt पाठ" #~ msgid "Image options" #~ msgstr "छवि विकल्प" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "" @@ -2685,7 +3343,7 @@ msgstr "" #~ msgid "Input invite code to proceed" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "" @@ -2693,7 +3351,7 @@ msgstr "" msgid "Input new password" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "" @@ -2701,15 +3359,15 @@ msgstr "" #~ msgid "Input phone number for SMS verification" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "" +#: src/screens/Login/LoginForm.tsx:221 +#~ msgid "Input the password tied to {identifier}" +#~ msgstr "" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the username or email address you used at signup" msgstr "" @@ -2721,7 +3379,7 @@ msgstr "" #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "" @@ -2729,20 +3387,24 @@ msgstr "" msgid "Input your preferred hosting provider" msgstr "" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "अवैध उपयोगकर्ता नाम या पासवर्ड" @@ -2754,11 +3416,11 @@ msgstr "अवैध उपयोगकर्ता नाम या पास msgid "Invite a Friend" msgstr "एक दोस्त को आमंत्रित करें" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "आमंत्रण कोड" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "" @@ -2774,14 +3436,41 @@ msgstr "" msgid "Invite codes: 1 available" msgstr "" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." +#~ msgid "It shows posts from the people you follow as they happen." +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." msgstr "" #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "" + #: src/view/com/modals/Waitlist.tsx:67 #~ msgid "Join the waitlist" #~ msgstr "प्रतीक्षा सूची में शामिल हों" @@ -2795,7 +3484,8 @@ msgstr "" #~ msgid "Join Waitlist" #~ msgstr "वेटरलिस्ट में शामिल हों" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "" @@ -2803,19 +3493,19 @@ msgstr "" #~ msgid "label has been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "" -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "" -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "" @@ -2823,28 +3513,28 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "अपनी भाषा चुने" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "भाषा सेटिंग्स" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "भाषा" @@ -2853,7 +3543,7 @@ msgstr "भाषा" #~ msgstr "" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "" @@ -2865,31 +3555,38 @@ msgstr "" msgid "Learn More" msgstr "अधिक जानें" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "इस चेतावनी के बारे में अधिक जानें" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "" -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "" -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" msgstr "" @@ -2901,20 +3598,25 @@ msgstr "उन्हें किसी भी भाषा को देखन msgid "Leaving Bluesky" msgstr "लीविंग Bluesky" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "" -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "चलो अपना पासवर्ड रीसेट करें!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "" @@ -2923,7 +3625,7 @@ msgstr "" #~ msgid "Library" #~ msgstr "चित्र पुस्तकालय" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "लाइट मोड" @@ -2931,14 +3633,23 @@ msgstr "लाइट मोड" #~ msgid "Like" #~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "" + +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "इस फ़ीड को लाइक करो" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "इन यूजर ने लाइक किया है" @@ -2962,80 +3673,97 @@ msgstr "" #~ msgid "Liked by {likeCount} {0}" #~ msgstr "" -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" msgstr "" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "सूची अवतार" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "सूची का नाम" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "सूची" +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "" + #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 #~ msgid "Load more posts" #~ msgstr "अधिक पोस्ट लोड करें" -#: src/view/screens/Notifications.tsx:159 +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "नई सूचनाएं लोड करें" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "नई पोस्ट लोड करें" @@ -3047,18 +3775,23 @@ msgstr "" #~ msgid "Local dev server" #~ msgstr "स्थानीय देव सर्वर" -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "" @@ -3066,7 +3799,7 @@ msgstr "" msgid "Login to account that is not listed" msgstr "उस खाते में लॉग इन करें जो सूचीबद्ध नहीं है" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" msgstr "" @@ -3078,12 +3811,20 @@ msgstr "" msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" msgstr "" #: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." +#~ msgid "Looks like you're missing a following feed." +#~ msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" msgstr "" #: src/view/com/modals/LinkWarning.tsx:79 @@ -3094,8 +3835,8 @@ msgstr "यह सुनिश्चित करने के लिए कि msgid "Manage your muted words and tags" msgstr "" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" msgstr "" @@ -3107,26 +3848,30 @@ msgstr "" #~ msgid "May only contain letters and numbers" #~ msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "मेनू" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" msgstr "" @@ -3134,40 +3879,37 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" #: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "" +#~ msgid "Messaging settings" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "मॉडरेशन" @@ -3175,56 +3917,57 @@ msgstr "मॉडरेशन" msgid "Moderation details" msgstr "" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "मॉडरेशन सूचियाँ" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "" @@ -3232,7 +3975,7 @@ msgstr "" msgid "More feeds" msgstr "अधिक फ़ीड" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "अधिक विकल्प" @@ -3240,10 +3983,18 @@ msgstr "अधिक विकल्प" #~ msgid "More post options" #~ msgstr "पोस्ट विकल्प" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:122 #~ msgid "Must be at least 3 characters" #~ msgstr "" @@ -3256,12 +4007,12 @@ msgstr "" msgid "Mute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "खाता म्यूट करें" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "खातों को म्यूट करें" @@ -3273,6 +4024,11 @@ msgstr "" #~ msgid "Mute all {tag} posts" #~ msgstr "" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" msgstr "" @@ -3281,16 +4037,16 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "" #: src/components/dms/ConvoMenu.tsx:136 #: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "" +#~ msgid "Mute notifications" +#~ msgstr "" -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "इन खातों को म्यूट करें?" @@ -3306,25 +4062,25 @@ msgstr "" msgid "Mute this word in tags only" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" msgstr "थ्रेड म्यूट करें" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "म्यूट किए गए खाते" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "म्यूट किए गए खाते" @@ -3333,15 +4089,15 @@ msgstr "म्यूट किए गए खाते" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "म्यूट किए गए खातों की पोस्ट आपके फ़ीड और आपकी सूचनाओं से हटा दी जाती हैं। म्यूट पूरी तरह से निजी हैं." -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "म्यूट करना निजी है. म्यूट किए गए खाते आपके साथ इंटरैक्ट कर सकते हैं, लेकिन आप उनकी पोस्ट नहीं देखेंगे या उनसे सूचनाएं प्राप्त नहीं करेंगे।" @@ -3350,19 +4106,19 @@ msgstr "म्यूट करना निजी है. म्यूट कि msgid "My Birthday" msgstr "जन्मदिन" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" msgstr "मेरी फ़ीड" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "मेरी प्रोफाइल" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" msgstr "मेरी फ़ीड" @@ -3370,36 +4126,46 @@ msgstr "मेरी फ़ीड" #~ msgid "my-server.com" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "नाम" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "" @@ -3413,7 +4179,7 @@ msgstr "" #~ msgid "Never lose access to your followers and data." #~ msgstr "अपने फ़ॉलोअर्स और डेटा तक पहुंच कभी न खोएं।" -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "" @@ -3425,7 +4191,7 @@ msgstr "" msgid "Nevermind, create a handle for me" msgstr "" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "" @@ -3434,65 +4200,79 @@ msgstr "" msgid "New" msgstr "नया" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "नई पोस्ट" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "नई पोस्ट" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "अगला" @@ -3505,17 +4285,17 @@ msgstr "अगला" msgid "Next image" msgstr "अगली फोटो" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "नहीं" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "कोई विवरण नहीं" @@ -3523,68 +4303,102 @@ msgstr "कोई विवरण नहीं" msgid "No DNS Panel" msgstr "" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "" + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" msgstr "" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "" + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "\"{query}\" के लिए कोई परिणाम नहीं मिला" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "{query} के लिए कोई परिणाम नहीं मिला\"" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." msgstr "" #: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "" +#~ msgid "No search results found for \"{searchText}\"." +#~ msgstr "" #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "" @@ -3593,8 +4407,8 @@ msgstr "" #~ msgid "Not Applicable." #~ msgstr "लागू नहीं।" -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "" @@ -3603,27 +4417,57 @@ msgstr "" msgid "Not right now" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "" -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "सूचनाएं" -#: src/components/dms/MessageItem.tsx:145 +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" +msgstr "" + +#: src/components/dms/MessageItem.tsx:169 msgid "Now" msgstr "" @@ -3631,7 +4475,7 @@ msgstr "" msgid "Nudity" msgstr "" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "" @@ -3647,17 +4491,17 @@ msgstr "" msgid "Off" msgstr "" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "अरे नहीं!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "" @@ -3665,45 +4509,68 @@ msgstr "" msgid "Okay" msgstr "ठीक है" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "एक या अधिक छवियाँ alt पाठ याद आती हैं।।" -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" msgstr "" -#: src/screens/Signup/StepHandle.tsx:98 +#: src/view/com/threadgate/WhoCanReply.tsx:100 +#~ msgid "Only {0} can reply." +#~ msgstr "" + +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "" -#: src/screens/Onboarding/StepProfile/index.tsx:280 +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:277 msgid "Open avatar creator" msgstr "" @@ -3711,20 +4578,29 @@ msgstr "" #~ msgid "Open content filtering settings" #~ msgstr "" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "" @@ -3732,48 +4608,60 @@ msgstr "" #~ msgid "Open muted words settings" #~ msgstr "" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "ओपन नेविगेशन" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "" #: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "" +#~ msgid "Opens an expanded list of users in this notification" +#~ msgstr "" #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "भाषा सेटिंग्स खोलें" @@ -3785,7 +4673,7 @@ msgstr "" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "" @@ -3807,7 +4695,7 @@ msgstr "" #~ msgid "Opens following list" #~ msgstr "" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" msgstr "" @@ -3819,7 +4707,11 @@ msgstr "" msgid "Opens list of invite codes" msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3827,19 +4719,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "" @@ -3847,24 +4739,24 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "कस्टम डोमेन का उपयोग करने के लिए मोडल खोलें" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" msgstr "मॉडरेशन सेटिंग्स खोलें" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "" +#: src/view/screens/Feeds.tsx:417 +#~ msgid "Opens screen to edit Saved Feeds" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" msgstr "सभी बचाया फ़ीड के साथ स्क्रीन खोलें" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "" @@ -3872,7 +4764,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "ऐप पासवर्ड सेटिंग पेज खोलें" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" msgstr "" @@ -3885,32 +4777,41 @@ msgid "Opens the linked website" msgstr "" #: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "" +#~ msgid "Opens the message settings page" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "स्टोरीबुक पेज खोलें" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "सिस्टम लॉग पेज खोलें" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "धागे वरीयताओं को खोलता है" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "" @@ -3918,7 +4819,15 @@ msgstr "" #~ msgid "Or you can try our \"Discover\" algorithm:" #~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "" + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "" @@ -3930,11 +4839,15 @@ msgstr "अन्य खाता" #~ msgid "Other service" #~ msgstr "अन्य सेवा" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "अन्य..।" -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "" + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "पृष्ठ नहीं मिला" @@ -3943,14 +4856,14 @@ msgstr "पृष्ठ नहीं मिला" msgid "Page Not Found" msgstr "" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "पासवर्ड" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "" @@ -3962,31 +4875,37 @@ msgstr "" msgid "Password updated!" msgstr "पासवर्ड अद्यतन!" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "" -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "" @@ -3994,24 +4913,32 @@ msgstr "" #~ msgid "Phone number" #~ msgstr "" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "चित्र वयस्कों के लिए थे।।" -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "पिन किया गया फ़ीड" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" msgstr "" @@ -4019,7 +4946,12 @@ msgstr "" msgid "Play {0}" msgstr "" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/screens/Messages/Settings.tsx:97 +#: src/screens/Messages/Settings.tsx:104 +#~ msgid "Play notification sounds" +#~ msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" msgstr "" @@ -4032,15 +4964,16 @@ msgstr "" msgid "Plays the GIF" msgstr "" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "" -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "" -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "" @@ -4048,7 +4981,7 @@ msgstr "" msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "इसे बदलने से पहले कृपया अपने ईमेल की पुष्टि करें। यह एक अस्थायी आवश्यकता है जबकि ईमेल-अपडेटिंग टूल जोड़ा जाता है, और इसे जल्द ही हटा दिया जाएगा।।" -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "" @@ -4056,7 +4989,7 @@ msgstr "" #~ msgid "Please enter a phone number that can receive SMS text messages." #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "कृपया इस ऐप पासवर्ड के लिए एक अद्वितीय नाम दर्ज करें या हमारे यादृच्छिक रूप से उत्पन्न एक का उपयोग करें।।" @@ -4072,19 +5005,29 @@ msgstr "" #~ msgid "Please enter the verification code sent to {phoneNumberFormatted}." #~ msgstr "" -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "कृपया अपना पासवर्ड भी दर्ज करें:" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "" + #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" msgstr "" @@ -4097,11 +5040,12 @@ msgstr "" msgid "Please Verify Your Email" msgstr "" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "" @@ -4113,46 +5057,46 @@ msgstr "" #~ msgid "Pornography" #~ msgstr "" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" msgstr "पोस्ट" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "छुपा पोस्ट" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" msgstr "" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "पोस्ट भाषा" @@ -4160,8 +5104,8 @@ msgstr "पोस्ट भाषा" msgid "Post Languages" msgstr "पोस्ट भाषा" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "पोस्ट नहीं मिला" @@ -4169,7 +5113,8 @@ msgstr "पोस्ट नहीं मिला" msgid "posts" msgstr "" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "" @@ -4177,7 +5122,7 @@ msgstr "" msgid "Posts can be muted based on their text, their tags, or both." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "" @@ -4185,14 +5130,22 @@ msgstr "" msgid "Potentially Misleading Link" msgstr "शायद एक भ्रामक लिंक" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "" @@ -4201,45 +5154,57 @@ msgstr "" #~ msgid "Press to Retry" #~ msgstr "" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "पिछली छवि" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "प्राथमिक भाषा" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "अपने फ़ॉलोअर्स को प्राथमिकता दें" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "गोपनीयता" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "गोपनीयता नीति" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "प्रसंस्करण..." -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "प्रोफ़ाइल" @@ -4247,11 +5212,11 @@ msgstr "प्रोफ़ाइल" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "अपने ईमेल को सत्यापित करके अपने खाते को सुरक्षित रखें।।" -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "" @@ -4259,33 +5224,52 @@ msgstr "" msgid "Public, shareable lists of users to mute or block in bulk." msgstr "" -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." msgstr "सार्वजनिक, साझा करने योग्य सूचियाँ जो फ़ीड चला सकती हैं।" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" -msgid "Quote post" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "कोटे पोस्ट" -#: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "कोटे पोस्ट" +#: src/view/com/modals/Repost.tsx:66 +#~ msgctxt "action" +#~ msgid "Quote post" +#~ msgstr "" -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/com/modals/Repost.tsx:71 +#~ msgctxt "action" +#~ msgid "Quote Post" +#~ msgstr "कोटे पोस्ट" + +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "" @@ -4293,11 +5277,19 @@ msgstr "" msgid "Ratios" msgstr "अनुपात" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" msgstr "" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "" + +#: src/components/dms/MessageReportDialog.tsx:149 +#~ msgid "Reason: {0}" +#~ msgstr "" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "" @@ -4309,11 +5301,26 @@ msgstr "" #~ msgid "Recommended Users" #~ msgstr "अनुशंसित लोग" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "" + +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "निकालें" @@ -4322,11 +5329,15 @@ msgstr "निकालें" #~ msgid "Remove {0} from my feeds?" #~ msgstr "मेरे फ़ीड से {0} हटाएं?" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "" + #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "खाता हटाएं" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "" @@ -4334,9 +5345,13 @@ msgstr "" msgid "Remove Banner" msgstr "" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "फ़ीड हटाएँ" @@ -4344,15 +5359,16 @@ msgstr "फ़ीड हटाएँ" msgid "Remove feed?" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "मेरे फ़ीड से हटाएँ" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "" @@ -4360,7 +5376,7 @@ msgstr "" msgid "Remove image" msgstr "छवि निकालें" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "छवि पूर्वावलोकन निकालें" @@ -4368,11 +5384,20 @@ msgstr "छवि पूर्वावलोकन निकालें" msgid "Remove mute word from your list" msgstr "" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "" + +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 msgid "Remove quote" msgstr "" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "" @@ -4388,48 +5413,60 @@ msgstr "" #~ msgid "Remove this feed from your saved feeds?" #~ msgstr "इस फ़ीड को सहेजे गए फ़ीड से हटा दें?" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" msgstr "" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" msgstr "" #: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "" +#~ msgid "Removes default thumbnail from {0}" +#~ msgstr "" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" msgstr "" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 msgid "Replace with Discover" msgstr "" -#: src/view/screens/Profile.tsx:194 +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:98 +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "" + +#: src/view/com/threadgate/WhoCanReply.tsx:123 +#~ msgid "Replies on this thread are disabled" +#~ msgstr "" + +#: src/components/WhoCanReply.tsx:243 msgid "Replies to this thread are disabled" msgstr "" -#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "फिल्टर" @@ -4439,13 +5476,26 @@ msgstr "फिल्टर" #~ msgid "Reply to <0/>" #~ msgstr "" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "" -#: src/components/dms/MessageMenu.tsx:109 +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" +msgstr "" + +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 msgid "Report" msgstr "" @@ -4458,14 +5508,14 @@ msgstr "" #~ msgid "Report account" #~ msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "रिपोर्ट" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" msgstr "" @@ -4473,64 +5523,75 @@ msgstr "" msgid "Report dialog" msgstr "" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "रिपोर्ट फ़ीड" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "रिपोर्ट सूची" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "रिपोर्ट पोस्ट" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "पुन: पोस्ट" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "पोस्ट दोबारा पोस्ट करें या उद्धृत करे" @@ -4538,7 +5599,7 @@ msgstr "पोस्ट दोबारा पोस्ट करें या msgid "Reposted By" msgstr "द्वारा दोबारा पोस्ट किया गया" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "" @@ -4546,15 +5607,20 @@ msgstr "" #~ msgid "Reposted by <0/>" #~ msgstr "" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "" @@ -4567,12 +5633,12 @@ msgstr "अनुरोध बदलें" #~ msgid "Request code" #~ msgstr "" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "पोस्ट करने से पहले वैकल्पिक टेक्स्ट की आवश्यकता है" @@ -4580,7 +5646,7 @@ msgstr "पोस्ट करने से पहले वैकल्पि msgid "Require email code to log into your account" msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "इस प्रदाता के लिए आवश्यक" @@ -4589,11 +5655,11 @@ msgstr "इस प्रदाता के लिए आवश्यक" msgid "Resend email" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "कोड रीसेट करें" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "" @@ -4601,8 +5667,8 @@ msgstr "" #~ msgid "Reset onboarding" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "ऑनबोर्डिंग स्टेट को रीसेट करें" @@ -4614,20 +5680,20 @@ msgstr "पासवर्ड रीसेट" #~ msgid "Reset preferences" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "प्राथमिकताओं को रीसेट करें" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "ऑनबोर्डिंग स्टेट को रीसेट करें" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "प्राथमिकताओं की स्थिति को रीसेट करें" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "" @@ -4636,15 +5702,16 @@ msgstr "" msgid "Retries the last action, which errored out" msgstr "" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -4655,7 +5722,8 @@ msgstr "फिर से कोशिश करो" #~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "" @@ -4664,7 +5732,7 @@ msgid "Returns to home page" msgstr "" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "" @@ -4673,21 +5741,23 @@ msgstr "" #~ msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "सेव करो" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "सेव ऑल्ट टेक्स्ट" @@ -4703,20 +5773,29 @@ msgstr "बदलाव सेव करो" msgid "Save handle change" msgstr "बदलाव सेव करो" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "फोटो बदलाव सेव करो" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" msgstr "" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" msgstr "सहेजे गए फ़ीड" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" msgstr "" @@ -4724,8 +5803,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "" @@ -4741,37 +5820,45 @@ msgstr "" msgid "Saves image crop settings" msgstr "" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "खोज" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" msgstr "" @@ -4791,25 +5878,32 @@ msgstr "" #~ msgid "Search for all posts with tag {tag}" #~ msgstr "" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." msgstr "" -#: src/view/com/auth/LoggedOut.tsx:105 +#: src/components/dms/NewChat.tsx:226 +#~ msgid "Search for someone to start a conversation with." +#~ msgstr "" + #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" msgstr "" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "" @@ -4842,11 +5936,11 @@ msgstr "" #~ msgstr "" #: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "" +#: src/view/com/util/UserAvatar.tsx:402 +#~ msgid "See profile" +#~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "" @@ -4882,15 +5976,15 @@ msgstr "" msgid "Select from an existing account" msgstr "मौजूदा खाते से चुनें" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" msgstr "" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" msgstr "" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "" @@ -4908,14 +6002,14 @@ msgstr "" #~ msgstr "सेवा चुनें" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "" +#~ msgid "Select some accounts below to follow" +#~ msgstr "" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4928,14 +6022,18 @@ msgstr "" #~ msgstr "" #: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" +#~ msgid "Select topical feeds to follow from the list below" +#~ msgstr "" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "" +#~ msgid "Select what you want to see (or not see), and we’ll handle the rest." +#~ msgstr "" -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." msgstr "चुनें कि आप अपनी सदस्यता वाली फ़ीड में कौन सी भाषाएँ शामिल करना चाहते हैं। यदि कोई भी चयनित नहीं है, तो सभी भाषाएँ दिखाई जाएंगी।" @@ -4943,15 +6041,15 @@ msgstr "चुनें कि आप अपनी सदस्यता वा #~ msgid "Select your app language for the default text to display in the app" #~ msgstr "ऐप में प्रदर्शित होने वाले डिफ़ॉल्ट टेक्स्ट के लिए अपनी ऐप भाषा चुनें" -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "" @@ -4959,16 +6057,20 @@ msgstr "" #~ msgid "Select your phone's country" #~ msgstr "" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." msgstr "अपने फ़ीड में अनुवाद के लिए अपनी पसंदीदा भाषा चुनें।" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "" +#~ msgid "Select your primary algorithmic feeds" +#~ msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" +#~ msgid "Select your secondary algorithmic feeds" +#~ msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" msgstr "" #: src/view/com/modals/VerifyEmail.tsx:210 @@ -4976,29 +6078,32 @@ msgstr "" msgid "Send Confirmation Email" msgstr "पुष्टिकरण ईमेल भेजें" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "ईमेल भेजें" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "ईमेल भेजें" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "प्रतिक्रिया भेजें" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." +msgstr "" + +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "" @@ -5015,7 +6120,12 @@ msgstr "" msgid "Send verification email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "" @@ -5033,7 +6143,7 @@ msgstr "" #~ msgid "Set Age" #~ msgstr "" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "" @@ -5065,19 +6175,19 @@ msgstr "नया पासवर्ड सेट करें" #~ msgid "Set password" #~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "अपने फ़ीड से सभी उद्धरण पदों को छिपाने के लिए इस सेटिंग को \"नहीं\" में सेट करें। Reposts अभी भी दिखाई देगा।।" -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "इस सेटिंग को अपने फ़ीड से सभी उत्तरों को छिपाने के लिए \"नहीं\" पर सेट करें।।" -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "इस सेटिंग को अपने फ़ीड से सभी पोस्ट छिपाने के लिए \"नहीं\" करने के लिए सेट करें।।" -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "इस सेटिंग को \"हाँ\" में सेट करने के लिए एक थ्रेडेड व्यू में जवाब दिखाने के लिए। यह एक प्रयोगात्मक विशेषता है।।" @@ -5085,7 +6195,7 @@ msgstr "इस सेटिंग को \"हाँ\" में सेट क #~ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." #~ msgstr "इस सेटिंग को अपने निम्नलिखित फ़ीड में अपने सहेजे गए फ़ीड के नमूने दिखाने के लिए \"हाँ\" पर सेट करें। यह एक प्रयोगात्मक विशेषता है।।" -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "" @@ -5097,23 +6207,23 @@ msgstr "" msgid "Sets Bluesky username" msgstr "" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "" @@ -5142,12 +6252,11 @@ msgstr "" #~ msgid "Sets server for the Bluesky client" #~ msgstr "" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "सेटिंग्स" @@ -5159,45 +6268,86 @@ msgstr "यौन गतिविधि या कामुक नग्नत msgid "Sexually Suggestive" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "शेयर" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "शेयर" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "दिखाओ" @@ -5205,7 +6355,7 @@ msgstr "दिखाओ" #~ msgid "Show all replies" #~ msgstr "" -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" msgstr "" @@ -5227,82 +6377,90 @@ msgstr "" #~ msgid "Show embeds from {0}" #~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 msgid "Show less like this" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" msgstr "मेरी फीड से पोस्ट दिखाएं" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "उद्धरण पोस्ट दिखाओ" #: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "" +#~ msgid "Show quote-posts in Following feed" +#~ msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "" +#~ msgid "Show quotes in Following" +#~ msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "" +#~ msgid "Show re-posts in Following feed" +#~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "उत्तर दिखाएँ" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "अन्य सभी उत्तरों से पहले उन लोगों के उत्तर दिखाएं जिन्हें आप फ़ॉलो करते हैं।" #: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "" +#~ msgid "Show replies in Following" +#~ msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "" +#~ msgid "Show replies in Following feed" +#~ msgstr "" #: src/view/screens/PreferencesFollowingFeed.tsx:70 #~ msgid "Show replies with at least {value} {0}" #~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "रीपोस्ट दिखाएँ" #: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "" +#~ msgid "Show reposts in Following" +#~ msgstr "" -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "" #: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "लोग दिखाएँ" +#~ msgid "Show users" +#~ msgstr "लोग दिखाएँ" #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" @@ -5324,17 +6482,17 @@ msgstr "" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -5367,17 +6525,17 @@ msgstr "" msgid "Sign into Bluesky or create a new account" msgstr "" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "साइन आउट" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -5393,7 +6551,7 @@ msgstr "" msgid "Sign-in Required" msgstr "" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "आपने इस रूप में साइन इन करा है:" @@ -5402,16 +6560,25 @@ msgstr "आपने इस रूप में साइन इन करा msgid "Signed in as @{0}" msgstr "" +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "" + #: src/view/com/modals/SwitchAccount.tsx:70 #~ msgid "Signs {0} out of Bluesky" #~ msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "स्किप" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "" @@ -5419,11 +6586,25 @@ msgstr "" #~ msgid "SMS verification" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "" -#: src/screens/Messages/Conversation/index.tsx:89 +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" +msgstr "" + +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:203 +#~ msgid "Some subtitle" +#~ msgstr "" + +#: src/screens/Messages/Conversation/index.tsx:106 msgid "Something went wrong" msgstr "" @@ -5431,47 +6612,58 @@ msgstr "" #~ msgid "Something went wrong and we're not sure what." #~ msgstr "" +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "" -#: src/components/Lists.tsx:203 -#~ msgid "Something went wrong!" -#~ msgstr "" +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "" #: src/view/com/modals/Waitlist.tsx:51 #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "" -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "" -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "उत्तर क्रमबद्ध करें" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "उसी पोस्ट के उत्तरों को इस प्रकार क्रमबद्ध करें:" #: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" +#~ msgid "Source:" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" msgstr "" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "" @@ -5483,15 +6675,50 @@ msgstr "स्क्वायर" #~ msgid "Staging" #~ msgstr "स्टेजिंग" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" msgstr "" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "" + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." +msgstr "" + #: src/view/screens/Settings/index.tsx:862 #~ msgid "Status page" #~ msgstr "स्थिति पृष्ठ" -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" msgstr "" @@ -5499,7 +6726,7 @@ msgstr "" #~ msgid "Step" #~ msgstr "" -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" msgstr "" @@ -5507,49 +6734,56 @@ msgstr "" #~ msgid "Step {0} of {numSteps}" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "" -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "सब्सक्राइब" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "" +#~ msgid "Subscribe to the {0} feed" +#~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "इस सूची को सब्सक्राइब करें" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "अनुशंसित लोग" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "" +#: src/view/screens/Search/Search.tsx:425 +#~ msgid "Suggested Follows" +#~ msgstr "अनुशंसित लोग" + +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "" @@ -5558,7 +6792,7 @@ msgstr "" msgid "Suggestive" msgstr "" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -5573,19 +6807,23 @@ msgstr "सहायता" msgid "Switch Account" msgstr "खाते बदलें" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "प्रणाली" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "सिस्टम लॉग" @@ -5605,29 +6843,51 @@ msgstr "" msgid "Tall" msgstr "लंबा" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "शर्तें" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "सेवा की शर्तें" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "" @@ -5635,12 +6895,13 @@ msgstr "" msgid "text" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "पाठ इनपुट फ़ील्ड" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "" @@ -5648,12 +6909,21 @@ msgstr "" msgid "That contains the following:" msgstr "" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "अनब्लॉक करने के बाद अकाउंट आपसे इंटरैक्ट कर सकेगा।" @@ -5669,15 +6939,24 @@ msgstr "सामुदायिक दिशानिर्देशों क msgid "The Copyright Policy has been moved to <0/>" msgstr "कॉपीराइट नीति को <0/> पर स्थानांतरित कर दिया गया है" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "" @@ -5685,8 +6964,8 @@ msgstr "" msgid "The following steps will help customize your Bluesky experience." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "हो सकता है कि यह पोस्ट हटा दी गई हो।" @@ -5694,6 +6973,10 @@ msgstr "हो सकता है कि यह पोस्ट हटा द msgid "The Privacy Policy has been moved to <0/>" msgstr "गोपनीयता नीति को <0/> पर स्थानांतरित किया गया है" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "" + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "समर्थन प्रपत्र स्थानांतरित कर दिया गया है. यदि आपको सहायता की आवश्यकता है, तो कृपया <0/> या हमसे संपर्क करने के लिए {HELP_DESK_URL} पर जाएं।" @@ -5703,51 +6986,56 @@ msgid "The Terms of Service have been moved to" msgstr "सेवा की शर्तों को स्थानांतरित कर दिया गया है" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" +#~ msgid "There are many feeds to try:" +#~ msgstr "" + +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "" #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "" -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." msgstr "" #: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" +#~ msgid "There was an issue connecting to the chat." +#~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "" -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "" @@ -5755,51 +7043,53 @@ msgstr "" msgid "There was an issue fetching the list. Tap here to try again." msgstr "" -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "" -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "" +#~ msgid "There was an issue syncing your preferences with the server" +#~ msgstr "" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "" -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "एप्लिकेशन में एक अप्रत्याशित समस्या थी. कृपया हमें बताएं कि क्या आपके साथ ऐसा हुआ है!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "" @@ -5808,8 +7098,8 @@ msgstr "" #~ msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "" +#~ msgid "These are popular accounts you might like:" +#~ msgstr "" #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" @@ -5819,14 +7109,26 @@ msgstr "यह {screenDescription} फ्लैग किया गया है msgid "This account has requested that users sign in to view their profile." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:26 +#~ msgid "This chat was disconnected due to a network error." +#~ msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." msgstr "" @@ -5840,37 +7142,47 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "" +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "" + #: src/view/screens/Settings/ExportCarDialog.tsx:75 #~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." #~ msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "" #: src/screens/Profile/Sections/Feed.tsx:59 #: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "" +#: src/view/screens/ProfileList.tsx:729 +#~ msgid "This feed is empty!" +#~ msgstr "" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "" -#: src/view/com/posts/FeedShutdownMsg.tsx:97 +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:99 msgid "This feed is no longer online. We are showing <0>Discover instead." msgstr "" @@ -5895,10 +7207,14 @@ msgid "This label was applied by the author." msgstr "" #: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" +#~ msgid "This label was applied by you" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "" @@ -5906,7 +7222,7 @@ msgstr "" msgid "This link is taking you to the following website:" msgstr "यह लिंक आपको निम्नलिखित वेबसाइट पर ले जा रहा है:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "" @@ -5914,24 +7230,24 @@ msgstr "" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "इस पोस्ट को हटा दिया गया है।।" -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "" @@ -5947,8 +7263,12 @@ msgstr "" msgid "This user doesn't have any followers." msgstr "" +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "" @@ -5976,6 +7296,10 @@ msgstr "" #~ msgid "This user is included the <0/> list which you have muted." #~ msgstr "" +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "" + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "" @@ -5992,20 +7316,24 @@ msgstr "" #~ msgid "This will hide this post from your feeds." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "थ्रेड प्राथमिकता" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "थ्रेड मोड" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "" @@ -6013,7 +7341,7 @@ msgstr "" msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "" -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." msgstr "" @@ -6025,16 +7353,16 @@ msgstr "" msgid "Toggle between muted word options." msgstr "" -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "ड्रॉपडाउन टॉगल करें" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "" @@ -6042,10 +7370,12 @@ msgstr "" msgid "Transformations" msgstr "परिवर्तन" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "अनुवाद" @@ -6054,11 +7384,15 @@ msgctxt "action" msgid "Try again" msgstr "फिर से कोशिश करो" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" msgstr "" @@ -6066,53 +7400,65 @@ msgstr "" msgid "Type:" msgstr "" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "आपकी सेवा से संपर्क करने में असमर्थ। कृपया अपने इंटरनेट कनेक्शन की जांच करें।।" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "अनब्लॉक" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "अनब्लॉक खाता" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" msgstr "" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "पुनः पोस्ट पूर्ववत करें" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "" @@ -6121,12 +7467,12 @@ msgstr "" msgid "Unfollow" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "" @@ -6138,12 +7484,12 @@ msgstr "" #~ msgid "Unlike" #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "" @@ -6151,8 +7497,8 @@ msgstr "" msgid "Unmute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "अनम्यूट खाता" @@ -6164,50 +7510,58 @@ msgstr "" #~ msgid "Unmute all {tag} posts" #~ msgstr "" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/components/dms/ConvoMenu.tsx:140 +#~ msgid "Unmute notifications" +#~ msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" msgstr "थ्रेड को अनम्यूट करें" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "" +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "" + #: src/view/screens/ProfileFeed.tsx:346 #~ msgid "Unsave" #~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "" #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" +#~ msgid "Unwanted sexual content" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 +#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:85 msgid "Unwanted Sexual Content" msgstr "" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "सूची में {displayName} अद्यतन करें" @@ -6223,7 +7577,7 @@ msgstr "" msgid "Updating..." msgstr "अद्यतन..।" -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" msgstr "" @@ -6231,20 +7585,20 @@ msgstr "" msgid "Upload a text file to:" msgstr "एक पाठ फ़ाइल अपलोड करने के लिए:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -6254,7 +7608,7 @@ msgstr "" msgid "Use a file on your server" msgstr "" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "अपने खाते या पासवर्ड को पूर्ण एक्सेस देने के बिना अन्य ब्लूस्की ग्राहकों को लॉगिन करने के लिए ऐप पासवर्ड का उपयोग करें।।" @@ -6284,7 +7638,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "अपने हैंडल के साथ दूसरे ऐप में साइन इन करने के लिए इसका उपयोग करें।" @@ -6297,19 +7651,23 @@ msgid "Used by:" msgstr "के द्वारा उपयोग:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr "" +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "" @@ -6321,46 +7679,53 @@ msgstr "" #~ msgid "User handle" #~ msgstr "यूजर हैंडल" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "लोग सूचियाँ" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "यूजर नाम या ईमेल पता" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "यूजर लोग" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "" @@ -6384,15 +7749,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "ईमेल सत्यापित करें" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "मेरी ईमेल सत्यापित करें" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "मेरी ईमेल सत्यापित करें" @@ -6413,31 +7778,44 @@ msgstr "" #~ msgid "Version {0}" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "डीबग प्रविष्टि देखें" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "" @@ -6445,13 +7823,15 @@ msgstr "" msgid "View information about these labels" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "अवतार देखें" @@ -6459,10 +7839,15 @@ msgstr "अवतार देखें" msgid "View the labeling service provided by @{0}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -6471,7 +7856,6 @@ msgstr "साइट पर जाएं" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "" @@ -6491,15 +7875,15 @@ msgstr "" msgid "We couldn't find any results for that hashtag." msgstr "" -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" msgstr "" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "" @@ -6516,22 +7900,22 @@ msgid "We recommend avoiding common words that appear in many posts, since it ca msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "" +#~ msgid "We recommend our \"Discover\" feed:" +#~ msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "" -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "" -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "" @@ -6539,15 +7923,19 @@ msgstr "" #~ msgid "We'll look into your appeal promptly." #~ msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "" -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "हम आपके हमारी सेवा में शामिल होने को लेकर बहुत उत्साहित हैं!" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "" @@ -6555,34 +7943,54 @@ msgstr "" msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "" -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "" + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "हम क्षमा चाहते हैं! हमें वह पेज नहीं मिल रहा जिसे आप ढूंढ रहे थे।" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 +#~ msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#~ msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "" + +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" msgstr "" #: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 #~ msgid "Welcome to <0>Bluesky" #~ msgstr "<0>Bluesky में आपका स्वागत है" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" msgstr "" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "" + #: src/view/com/modals/report/Modal.tsx:169 #~ msgid "What is the issue with this {collectionName}?" #~ msgstr "इस {collectionName} के साथ क्या मुद्दा है?" #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "" @@ -6594,36 +8002,53 @@ msgstr "इस पोस्ट में किस भाषा का उपय msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "कौन से भाषाएं आपको अपने एल्गोरिदमिक फ़ीड में देखना पसंद करती हैं?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:92 +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "" + +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "" @@ -6631,21 +8056,22 @@ msgstr "" msgid "Wide" msgstr "चौड़ा" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "पोस्ट लिखो" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "अपना जवाब दें" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "" @@ -6654,24 +8080,45 @@ msgstr "" #~ msgstr "" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "हाँ" -#: src/components/dms/MessageItem.tsx:158 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "" + +#: src/components/dms/MessageItem.tsx:182 msgid "Yesterday, {time}" msgstr "" +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "" + #: src/screens/Onboarding/StepModeration/index.tsx:46 #~ msgid "You are in control" #~ msgstr "" -#: src/screens/Deactivated.tsx:136 +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "" @@ -6679,17 +8126,29 @@ msgstr "" msgid "You are not following anyone." msgstr "" -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:123 #~ msgid "You can also try our \"Discover\" algorithm:" #~ msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." +#~ msgid "You can change these settings later." +#~ msgstr "" + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "" + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." msgstr "" #: src/screens/Login/index.tsx:158 @@ -6697,15 +8156,23 @@ msgstr "" msgid "You can now sign in with your new password." msgstr "अब आप अपने नए पासवर्ड के साथ साइन इन कर सकते हैं।।" +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "" +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "आपके पास अभी तक कोई आमंत्रण कोड नहीं है! जब आप कुछ अधिक समय के लिए Bluesky पर रहेंगे तो हम आपको कुछ भेजेंगे।" -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." msgstr "आपके पास कोई पिन किया हुआ फ़ीड नहीं है." @@ -6713,28 +8180,32 @@ msgstr "आपके पास कोई पिन किया हुआ फ़ #~ msgid "You don't have any saved feeds!" #~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." msgstr "आपके पास कोई सहेजी गई फ़ीड नहीं है." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "आपने लेखक को अवरुद्ध किया है या आपने लेखक द्वारा अवरुद्ध किया है।।" +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "" #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "" -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "" @@ -6743,11 +8214,11 @@ msgid "You have hidden this post." msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "" -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "" @@ -6755,18 +8226,22 @@ msgstr "" #~ msgid "You have muted this user." #~ msgstr "" -#: src/view/com/feeds/ProfileFeedgens.tsx:144 +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "" + +#: src/view/com/feeds/ProfileFeedgens.tsx:137 msgid "You have no feeds." msgstr "" -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." msgstr "आपके पास कोई सूची नहीं है।।" #: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "" +#~ msgid "You have no messages yet. Start a conversation with someone!" +#~ msgstr "" #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." @@ -6776,7 +8251,7 @@ msgstr "" #~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." #~ msgstr "आपने अभी तक कोई भी अकाउंट ब्लॉक नहीं किया है. किसी खाते को ब्लॉक करने के लिए, उनकी प्रोफ़ाइल पर जाएं और उनके खाते के मेनू से \"खाता ब्लॉक करें\" चुनें।" -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "आपने अभी तक कोई ऐप पासवर्ड नहीं बनाया है। आप नीचे बटन दबाकर एक बना सकते हैं।।" @@ -6788,18 +8263,34 @@ msgstr "" #~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." #~ msgstr "आपने अभी तक कोई खाता म्यूट नहीं किया है. किसी खाते को म्यूट करने के लिए, उनकी प्रोफ़ाइल पर जाएं और उनके खाते के मेनू से \"खाता म्यूट करें\" चुनें।" +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "" + #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "" @@ -6809,18 +8300,34 @@ msgstr "" #~ msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" +#~ msgid "You must be 18 years or older to enable adult content" +#~ msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "" + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "" @@ -6828,60 +8335,98 @@ msgstr "" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "आपको \"reset code\" के साथ एक ईमेल प्राप्त होगा। उस कोड को यहाँ दर्ज करें, फिर अपना नया पासवर्ड दर्ज करें।।" -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" msgstr "" -#: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" msgstr "" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" +msgstr "" + +#: src/screens/Onboarding/StepModeration/index.tsx:60 +#~ msgid "You're in control" +#~ msgstr "" + +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "" + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "" -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "" -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "आपका खाता" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "जन्म तिथि" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "" +#~ msgid "Your default feed is \"Following\"" +#~ msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "" @@ -6897,11 +8442,15 @@ msgstr "आपका ईमेल अद्यतन किया गया ह msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "आपका ईमेल अभी तक सत्यापित नहीं हुआ है। यह एक महत्वपूर्ण सुरक्षा कदम है जिसे हम अनुशंसा करते हैं।।" -#: src/view/com/posts/FollowingEmptyState.tsx:47 +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:43 msgid "Your following feed is empty! Follow more users to see what's happening." msgstr "" -#: src/screens/Signup/StepHandle.tsx:73 +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "आपका पूरा हैंडल होगा" @@ -6919,30 +8468,34 @@ msgstr "" msgid "Your muted words" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "आपकी पोस्ट, पसंद और ब्लॉक सार्वजनिक हैं। म्यूट निजी हैं।।" -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "आपकी प्रोफ़ाइल" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "" + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" msgstr "" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "आपका यूजर हैंडल" diff --git a/src/locale/locales/id/messages.po b/src/locale/locales/id/messages.po index 8a6c1f7a5f..30e9bba3fa 100644 --- a/src/locale/locales/id/messages.po +++ b/src/locale/locales/id/messages.po @@ -8,9 +8,9 @@ msgstr "" "Language: id\n" "Project-Id-Version: bluesky-id\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-05-01 11:21\n" +"PO-Revision-Date: 2024-06-30 10:47\n" "Last-Translator: \n" -"Language-Team: GID0317, danninov, thinkbyte1024, mary-ext, kodebanget, oops-wtf\n" +"Language-Team: Indonesian\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: bluesky-id\n" "X-Crowdin-Project-ID: 648428\n" @@ -18,123 +18,222 @@ msgstr "" "X-Crowdin-File: /main/src/locale/locales/en/messages.po\n" "X-Crowdin-File-ID: 12\n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "(berisi konten yang disisipkan)" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(tidak ada email)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" -msgstr "" +msgstr "{0, plural, other {{formattedCount} lainnya}}" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" -msgstr "" +#~ msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:55 +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" +msgstr "{0, plural, other {# label telah diterapkan pada akun ini}}" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" -msgstr "" +#~ msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" +msgstr "{0, plural, other {# label telah diterapkan pada konten ini}}" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" -msgstr "" +msgstr "{0, plural, other {# postingan ulang}}" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/KnownFollowers.tsx:179 +#~ msgid "{0, plural, one {and # other} other {and # others}}" +#~ msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" -msgstr "" +msgstr "{0, plural, other {pengikut}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" -msgstr "" +msgstr "{0, plural, other {mengikuti}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" -msgstr "" +msgstr "{0, plural, other {Suka (# menyukai)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" -msgstr "" +msgstr "{0, plural, other {suka}}" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{0, plural, other {Disukai oleh # pengguna}}" #: src/screens/Profile/Header/Metrics.tsx:59 msgid "{0, plural, one {post} other {posts}}" -msgstr "" +msgstr "{0, plural, other {postingan}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" -msgstr "" +msgstr "{0, plural, other {Balas (# balasan)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" -msgstr "" +msgstr "{0, plural, other {posting ulang}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" -msgstr "" +msgstr "{0, plural, other {Batal suka (# menyukai)}}" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "{0} telah bergabung minggu ini" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "{0} orang telah menggunakan paket pemula ini!" #: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" -msgstr "" +#~ msgid "{0} your feeds" +#~ msgstr "" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "Avatar {0}" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "Feed dan akun favorit {0} - ayo bergabung!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" +msgstr "Paket pemula {0}" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{count, plural, other {Disukai oleh # pengguna}}" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "{diff, plural, other {hari}}" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "{diff, plural, other {jam}}" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "{diff, plural, other {menit}}" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "{diff, plural, other {bulan}}" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "{diffSeconds, plural, other {detik}}" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "Paket Pemula {displayName}" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" -msgstr "" +msgstr "{estimatedTimeHrs, plural, other {jam}}" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" -msgstr "" +msgstr "{estimatedTimeMins, plural, other {menit}}" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} mengikuti" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 -msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "{handle} tidak dapat dikirimi pesan" -#: src/view/shell/Drawer.tsx:461 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 +msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" +msgstr "{likeCount, plural, other {Disukai oleh # pengguna}}" + +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} belum dibaca" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "{profileName} bergabung di Bluesky {0} yang lalu" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "{profileName} bergabung di Bluesky menggunakan paket pemula {0} yang lalu" + #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" -msgstr "" +msgstr "{value, plural, =0 {Tampilkan semua balasan} other {Tampilkan balasan dengan minimal # suka}}" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" -msgstr "<0/> anggota" +msgstr "anggota <0/>" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:485 +#~ msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}, <1>{1}, dan {2, plural, other {# lainnya}} sudah disertakan dalam paket pemula Anda" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}, <1>{1}, dan {2, plural, other {# lainnya}} sudah disertakan dalam paket pemula Anda" + +#: src/screens/StarterPack/Wizard/index.tsx:497 +#~ msgid "<0>{0}, <1>{1}, and {2} {3, plural, one {other} other {others}} are included in your starter pack" +#~ msgstr "" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" -msgstr "" +msgstr "<0>{0} {1, plural, other {pengikut}}" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" -msgstr "" +msgstr "<0>{0} {1, plural, other {mengikuti}}" + +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "<0>{0} dan<1> <2>{1} sudah disertakan dalam paket pemula Anda" #: src/view/shell/Drawer.tsx:96 #~ msgid "<0>{0} following" -#~ msgstr "<0>{0} mengikuti" +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "<0>{0} sudah disertakan dalam paket pemula Anda" #: src/components/ProfileHoverCard/index.web.tsx:437 #~ msgid "<0>{followers} <1>{pluralizedFollowers}" -#~ msgstr "<0>{followers} <1>{pluralizedFollowers}" +#~ msgstr "" #: src/components/ProfileHoverCard/index.web.tsx:449 #: src/screens/Profile/Header/Metrics.tsx:45 #~ msgid "<0>{following} <1>following" -#~ msgstr "<0>{following} <1>mengikuti" +#~ msgstr "" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:31 #~ msgid "<0>Choose your<1>Recommended<2>Feeds" @@ -146,73 +245,81 @@ msgstr "" #: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." -msgstr "" +msgstr "<0>Tidak bisa diterapkan. Peringatan ini hanya tersedia untuk postingan dengan lampiran media." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:21 #~ msgid "<0>Welcome to<1>Bluesky" #~ msgstr "" -#: src/screens/Profile/Header/Handle.tsx:43 -msgid "⚠Invalid Handle" -msgstr "⚠Handle Tidak Valid" +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "<0>Anda dan<1> <2>{0} sudah disertakan dalam paket pemula" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Profile/Header/Handle.tsx:50 +msgid "⚠Invalid Handle" +msgstr "⚠Panggilan Tidak Valid" + +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" msgstr "Konfirmasi 2FA" -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "" + +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "Akses tautan navigasi dan pengaturan" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "Akses profil dan tautan navigasi lain" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "Aksesibilitas" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" msgstr "Pengaturan aksesibilitas" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" msgstr "Pengaturan Aksesibilitas" #: src/components/moderation/LabelsOnMe.tsx:42 #~ msgid "account" -#~ msgstr "akun" +#~ msgstr "" -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "Akun" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "Akun diblokir" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "Akun diikuti" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "Akun dibisukan" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "Akun Dibisukan" #: src/components/moderation/ModerationDetailsDialog.tsx:82 msgid "Account Muted by List" -msgstr "Akun Dibisukan Berdasarkan Daftar" +msgstr "Akun Dibisukan oleh Daftar" #: src/view/com/util/AccountDropdownBtn.tsx:41 msgid "Account options" @@ -222,37 +329,46 @@ msgstr "Pengaturan akun" msgid "Account removed from quick access" msgstr "Akun dihapus dari akses cepat" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "Akun batal diblokir" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "Akun batal diikuti" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "Akun batal dibisukan" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "Tambah" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "Tambah {0} lagi untuk melanjutkan" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "Tambahkan {displayName} dalam paket pemula" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Tambahkan peringatan konten" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "Tambahkan pengguna ke daftar ini" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "Tambahkan akun" @@ -261,7 +377,7 @@ msgstr "Tambahkan akun" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Tambahkan teks alt" @@ -269,11 +385,11 @@ msgstr "Tambahkan teks alt" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" -msgstr "Tambahkan Kata Sandi Aplikasi" +msgstr "Tambahkan Sandi Aplikasi" #: src/view/com/composer/Composer.tsx:467 #~ msgid "Add link card" @@ -291,65 +407,103 @@ msgstr "Tambahkan kata yang akan dibisukan ke pengaturan terpilih" msgid "Add muted words and tags" msgstr "Tambah kata dan tagar untuk dibisukan" -#: src/screens/Home/NoFeedsPinned.tsx:112 -msgid "Add recommended feeds" -msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:197 +#~ msgid "Add people to your starter pack that you think others will enjoy following" +#~ msgstr "" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:99 +msgid "Add recommended feeds" +msgstr "Tambahkan feed rekomendasi" + +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" +msgstr "Tambahkan beberapa feed ke dalam paket pemula Anda!" + +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" -msgstr "" +msgstr "Tambahkan feed bawaan hanya untuk orang yang Anda ikuti" #: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Tambahkan catatan DNS berikut ke domain Anda:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "Tambahkan feed ini ke daftar feed Anda" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "Tambahkan ke Daftar" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" -msgstr "Tambakan ke feed saya" +msgstr "Tambahkan ke daftar feed saya" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:139 #~ msgid "Added" #~ msgstr "" -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "Ditambahkan ke daftar" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" -msgstr "Ditambahkan ke feed saya" +msgstr "Ditambahkan ke daftar feed saya" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." -msgstr "Atur jumlah suka dari balasan yang akan ditampilkan di feed Anda." +msgstr "Sesuaikan jumlah suka yang harus dimiliki oleh balasan agar ditampilkan di feed Anda." #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Konten Dewasa" +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "Konten dewasa hanya dapat diaktifkan melalui laman <0>bsky.app." + #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." msgstr "Konten dewasa dinonaktifkan." -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "Lanjutan" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "Semua akun telah diikuti!" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." msgstr "Berisi semua feed yang telah Anda simpan dalam satu tempat." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "Izinkan akses ke pesan langsung Anda" + +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "Izinkan pesan baru dari" + #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "Sudah memiliki kode?" @@ -359,19 +513,19 @@ msgstr "Sudah masuk sebagai @{0}" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" msgstr "Teks alt" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" -msgstr "" +msgstr "Teks Alt" #: src/view/com/composer/photos/Gallery.tsx:224 msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." @@ -386,117 +540,173 @@ msgstr "Email telah dikirim ke {0}. Email tersebut berisi kode konfirmasi yang d msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Email telah dikirim ke alamat Anda sebelumnya, {0}. Email tersebut berisi kode konfirmasi yang dapat Anda masukkan di bawah ini." -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" msgstr "Terjadi kesalahan" +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" +msgstr "Terjadi kesalahan saat membuat paket pemula. Coba lagi?" + +#: src/components/StarterPack/ShareDialog.tsx:79 +#~ msgid "An error occurred while saving the image." +#~ msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "Terjadi kesalahan saat menyimpan kode QR!" + #: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." +#~ msgid "An error occurred while trying to delete the message. Please try again." +#~ msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "Terjadi kesalahan saat mencoba mengikuti semua" + +#: src/lib/moderation/useReportOptions.ts:28 +msgid "An issue not included in these options" +msgstr "Masalah lain yang tidak termasuk dalam pilihan" + +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" msgstr "" -#: src/lib/moderation/useReportOptions.ts:27 -msgid "An issue not included in these options" -msgstr "Masalah yang tidak termasuk dalam pilihan" +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "" #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Terjadi masalah, silakan coba lagi." -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" -msgstr "" +msgstr "terjadi kesalahan yang tidak diketahui" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "dan" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "Hewan" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" msgstr "Animasi GIF" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "Perilaku Anti-Sosial" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "Bahasa Aplikasi" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Kata sandi aplikasi dihapus" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "Nama Kata Sandi Aplikasi hanya boleh terdiri dari huruf, angka, spasi, tanda hubung, dan garis bawah." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "Nama Kata Sandi Aplikasi harus terdiri dari minimal 4 karakter." -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "Pengaturan kata sandi aplikasi" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" -msgstr "Kata sandi Aplikasi" +msgstr "Kata Sandi Aplikasi" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "Ajukan Banding" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "Banding label \"{0}\"" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" -msgstr "" +msgstr "Banding diajukan" #: src/components/moderation/LabelsOnMeDialog.tsx:193 #~ msgid "Appeal submitted." -#~ msgstr "Banding diajukan." +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:430 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "Ajukan banding atas keputusan ini" + +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "Tampilan" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" -msgstr "" +msgstr "Tambahkan feed bawaan yang direkomendasikan" -#: src/view/screens/AppPasswords.tsx:265 +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +#~ msgid "Are you sure you want delete this starter pack?" +#~ msgstr "Apakah Anda yakin ingin menghapus paket pemula ini?" + +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" -msgstr "Anda yakin untuk menghapus kata sandi aplikasi \"{name}\"?" +msgstr "Apakah Anda yakin ingin menghapus sandi aplikasi \"{name}\"?" #: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgstr "" + +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." +msgstr "Anda yakin ingin menghapus pesan ini? Pesan akan dihapus untuk Anda, tetapi tidak untuk partisipan lainnya." + +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" msgstr "" #: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." -msgstr "" +#~ msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." +msgstr "Anda yakin ingin meninggalkan percakapan ini? Pesan akan dihapus untuk Anda, tetapi tidak untuk partisipan lainnya." + +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Apakah Anda yakin ingin menghapus {0} dari daftar feed Anda?" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "Apakah Anda yakin ingin menghapus ini dari daftar feed Anda?" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "Anda yakin untuk membuang draf ini?" @@ -508,7 +718,8 @@ msgstr "Anda yakin?" msgid "Are you writing in <0>{0}?" msgstr "Apakah Anda menulis dalam <0>{0}?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "Seni" @@ -516,32 +727,35 @@ msgstr "Seni" msgid "Artistic or non-erotic nudity." msgstr "Ketelanjangan artistik atau non-erotis." -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" -msgstr "Sedikitnya 3 karakter" +msgstr "Minimal 3 karakter" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "Kembali" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "Berdasarkan minat Anda pada {interestsText}" +#~ msgid "Based on your interest in {interestsText}" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "Dasar" @@ -549,78 +763,78 @@ msgstr "Dasar" msgid "Birthday" msgstr "Tanggal lahir" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "Tanggal lahir:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "Blokir" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" -msgstr "" +msgstr "Blokir akun" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "Blokir Akun" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "Blokir Akun?" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "Blokir akun" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "Blokir daftar" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" -msgstr "Blokir akun ini?" +msgstr "Blokir akun-akun ini?" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "Diblokir" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "Akun yang diblokir" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "Akun yang diblokir" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." -msgstr "Akun yang diblokir tidak dapat membalas di utas Anda, menyebut Anda, atau berinteraksi dengan Anda." +msgstr "Akun yang diblokir tidak dapat membalas utas Anda, menyebut Anda, atau berinteraksi dengan Anda." #: src/view/screens/ModerationBlockedAccounts.tsx:117 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." -msgstr "Akun yang diblokir tidak dapat membalas postingan Anda, menyebutkan Anda, dan interaksi lain dengan Anda. Anda tidak akan melihat konten mereka dan mereka akan dicegah melihat konten Anda." +msgstr "Akun yang diblokir tidak dapat membalas utas Anda, menyebut Anda, atau berinteraksi dengan Anda. Anda juga tidak akan melihat konten mereka dan mereka akan dicegah melihat konten Anda." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "Postingan yang diblokir." -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Pemblokiran tidak menghalangi pelabel ini menerapkan label pada akun Anda." -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." -msgstr "Pemblokiran bersifat publik. Akun yang diblokir tidak dapat membalas postingan Anda, menyebut Anda, atau berinteraksi dengan Anda." +msgstr "Pemblokiran bersifat publik. Akun yang diblokir tidak dapat membalas utas Anda, menyebut Anda, atau berinteraksi dengan Anda." -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." -msgstr "Pemblokiran tidak akan mencegah label diterapkan pada akun Anda, tetapi akan menghentikan akun ini untuk membalas atau berinteraksi dengan Anda." +msgstr "Memblokir tidak akan mencegah label diterapkan pada akun Anda, tetapi akan menghentikan akun ini untuk membalas atau berinteraksi dengan Anda." #: src/view/com/auth/SplashScreen.web.tsx:154 msgid "Blog" @@ -633,7 +847,11 @@ msgstr "Bluesky" #: src/view/com/auth/server-input/index.tsx:154 msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." -msgstr "Bluesky adalah jaringan terbuka yang memungkinkan Anda memilih penyedia hosting Anda. Hosting khusus kini tersedia dalam versi beta untuk pengembang." +msgstr "Bluesky adalah jaringan terbuka di mana Anda dapat memilih penyedia hosting sendiri. Hosting kustom kini tersedia dalam versi beta untuk pengembang." + +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 @@ -650,9 +868,13 @@ msgstr "Bluesky adalah jaringan terbuka yang memungkinkan Anda memilih penyedia #~ msgid "Bluesky is public." #~ msgstr "" -#: src/screens/Moderation/index.tsx:533 +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "Bluesky akan memilih serangkaian akun yang direkomendasikan dari orang-orang dalam jaringan Anda." + +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." -msgstr "Bluesky tidak akan menampilkan profil dan postingan Anda ke pengguna yang tidak login. Aplikasi lain mungkin tidak menghormati permintaan ini. Ini tidak membuat akun Anda menjadi privat." +msgstr "Bluesky tidak akan menampilkan profil dan postingan Anda kepada pengguna yang tidak masuk. Aplikasi lain mungkin tidak akan mematuhi permintaan ini. Ini tidak membuat akun Anda menjadi privat." #: src/lib/moderation/useLabelBehaviorDescription.ts:53 msgid "Blur images" @@ -662,20 +884,39 @@ msgstr "Buramkan gambar" msgid "Blur images and filter from feeds" msgstr "Buramkan gambar dan saring dari feed" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "Buku" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 -msgid "Browse other feeds" +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" msgstr "" +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 +msgid "Browse other feeds" +msgstr "Telusuri feed lain" + #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "Bisnis" -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "oleh —" @@ -688,10 +929,10 @@ msgid "By {0}" msgstr "Oleh {0}" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" +#~ msgid "by @{0}" +#~ msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "oleh <0/>" @@ -699,7 +940,7 @@ msgstr "oleh <0/>" msgid "By creating an account you agree to the {els}." msgstr "Dengan membuat akun berarti Anda setuju dengan {els}." -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "oleh Anda" @@ -707,7 +948,7 @@ msgstr "oleh Anda" msgid "Camera" msgstr "Kamera" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Hanya dapat terdiri dari huruf, angka, spasi, tanda hubung dan garis bawah. Minimal 4 karakter, namun tidak boleh lebih dari 32 karakter." @@ -715,14 +956,15 @@ msgstr "Hanya dapat terdiri dari huruf, angka, spasi, tanda hubung dan garis baw #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -730,29 +972,29 @@ msgstr "Hanya dapat terdiri dari huruf, angka, spasi, tanda hubung dan garis baw #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "Batal" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "Batal" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "Batal menghapus akun" #: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" -msgstr "Batal mengubah handle" +msgstr "Batal mengubah panggilan" #: src/view/com/modals/crop-image/CropImage.web.tsx:159 msgid "Cancel image crop" @@ -762,12 +1004,16 @@ msgstr "Batal memotong gambar" msgid "Cancel profile editing" msgstr "Batal mengedit profil" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "Batal mengutip postingan" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "Batalkan pengaktifan kembali dan keluar" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "Batal mencari" @@ -779,30 +1025,30 @@ msgstr "Membatalkan membuka situs web tertaut" msgid "Change" msgstr "Ubah" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "Ubah" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" -msgstr "Ubah handle" +msgstr "Ubah panggilan" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" -msgstr "Ubah Handle" +msgstr "Ubah Panggilan" #: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "Ubah email saya" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "Ubah kata sandi" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "Ubah Kata Sandi" @@ -814,29 +1060,39 @@ msgstr "Ubah bahasa postingan menjadi {0}" msgid "Change Your Email" msgstr "Ubah Email Anda" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" -msgstr "Chat" +msgstr "Obrolan" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" -msgstr "" +msgstr "Obrolan dibisukan" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" -msgstr "" +msgstr "Pengaturan obrolan" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "Pengaturan Obrolan" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" -msgstr "" +msgstr "Obrolan dibunyikan" #: src/screens/Messages/Conversation/index.tsx:26 #~ msgid "Chat with {chatId}" -#~ msgstr "Chat dengan {chatId}" +#~ msgstr "" -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "Periksa status saya" @@ -848,25 +1104,45 @@ msgstr "Periksa status saya" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." msgstr "Periksa email Anda untuk mendapatkan kode login dan masukkan di sini." -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Periksa kotak masuk email Anda untuk kode konfirmasi dan masukkan di bawah ini:" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "Pilih \"Semua Orang\" atau \"Tidak Ada\"" +#: src/view/com/modals/Threadgate.tsx:75 +#~ msgid "Choose \"Everybody\" or \"Nobody\"" +#~ msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "Pilih Feed" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "Pilihkan untuk saya" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "Pilih Pengguna" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "Pilih Layanan" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." -msgstr "Pilih algoritma yang akan digunakan untuk feed khusus Anda." +msgstr "Pilih algoritma yang akan digunakan untuk feed kustom Anda." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 @@ -875,42 +1151,47 @@ msgstr "Pilih algoritma yang akan digunakan untuk feed khusus Anda." #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 msgid "Choose this color as your avatar" -msgstr "" +msgstr "Pilih warna ini sebagai avatar Anda" + +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" +msgstr "Pilih siapa yang dapat membalas" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "Pilih feed utama Anda" +#~ msgid "Choose your main feeds" +#~ msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "Pilih kata sandi Anda" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "Hapus semua data penyimpanan lama" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "Hapus semua data penyimpanan lama (mulai ulang setelah ini)" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "Hapus semua data penyimpanan" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "Hapus semua data penyimpanan (mulai ulang setelah ini)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "Hapus kueri pencarian" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "Bersihkan semua penyimpanan data lama" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "Hapus semua data penyimpanan" @@ -918,9 +1199,17 @@ msgstr "Hapus semua data penyimpanan" msgid "click here" msgstr "klik di sini" +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" +msgstr "Klik di sini untuk informasi lebih lanjut tentang menonaktifkan akun Anda" + +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "Klik di sini untuk informasi lebih lanjut." + #: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." -msgstr "" +#~ msgid "Click here to add one." +#~ msgstr "" #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" @@ -930,19 +1219,33 @@ msgstr "Klik di sini untuk membuka menu tagar dari {tag}" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:47 +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "Ketuk untuk mengirim ulang pesan yang gagal" + +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "Iklim" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "Keletak 🐴 keletuk 🐴" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "Tutup" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "Tutup dialog aktif" @@ -954,11 +1257,12 @@ msgstr "Tutup peringatan" msgid "Close bottom drawer" msgstr "Tutup kotak bawah" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" msgstr "Tutup dialog" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" msgstr "Tutup dialog GIF" @@ -970,6 +1274,10 @@ msgstr "Tutup gambar" msgid "Close image viewer" msgstr "Tutup penampil gambar" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "Tutup modal" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "Tutup footer navigasi" @@ -987,7 +1295,7 @@ msgstr "Menutup bilah navigasi bawah" msgid "Closes password update alert" msgstr "Menutup peringatan pembaruan kata sandi" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "Menutup penyusun postingan dan membuang draf" @@ -995,42 +1303,48 @@ msgstr "Menutup penyusun postingan dan membuang draf" msgid "Closes viewer for header image" msgstr "Menutup penampil untuk gambar header" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "Ciutkan daftar pengguna" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "Menciutkan daftar pengguna untuk notifikasi tertentu" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "Komedi" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "Komik" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Panduan Komunitas" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "Selesaikan onboarding dan mulai menggunakan akun Anda" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "Selesaikan tantangan" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Buat postingan dengan panjang hingga {MAX_GRAPHEME_LENGTH} karakter" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "Tulis balasan" #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "Konfigurasikan pengaturan penyaringan konten untuk kategori: {0}" +#~ msgid "Configure content filtering setting for category: {0}" +#~ msgstr "" #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" @@ -1040,13 +1354,11 @@ msgstr "Konfigurasikan pengaturan penyaringan konten untuk kategori: {name}" msgid "Configured in <0>moderation settings." msgstr "Diatur pada <0>pengaturan moderasi." -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -1061,121 +1373,123 @@ msgstr "Konfirmasi Perubahan" msgid "Confirm content language settings" msgstr "Konfirmasi pengaturan bahasa konten" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "Konfirmasi hapus akun" -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" -msgstr "Konfirmasikan usia Anda:" +msgstr "Konfirmasi usia Anda:" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "Konfirmasi tanggal lahir Anda" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Kode konfirmasi" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "Menghubungkan..." -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "Hubungi pusat bantuan" #: src/components/moderation/LabelsOnMe.tsx:42 #~ msgid "content" -#~ msgstr "konten" +#~ msgstr "" #: src/lib/moderation/useGlobalLabelStrings.ts:18 msgid "Content Blocked" msgstr "Konten Diblokir" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "Penyaring konten" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "Bahasa konten" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "Konten Tidak Tersedia" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "Peringatan Konten" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "Peringatan konten" #: src/components/Menu/index.web.tsx:83 msgid "Context menu backdrop, click to close the menu." -msgstr "Latar belakang menu konteks, klik untuk menutup menu." +msgstr "Latar menu konteks, klik untuk menutup menu." -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "Lanjutkan" #: src/components/AccountList.tsx:113 msgid "Continue as {0} (currently signed in)" -msgstr "Lanjutkan sebagai {0} (saat ini masuk)" +msgstr "Lanjutkan sebagai {0} (sudah masuk)" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "Lanjutkan utas..." + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "Lanjutkan ke langkah berikutnya" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "Lanjutkan ke langkah berikutnya" +#~ msgid "Continue to the next step" +#~ msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" -msgstr "Lanjutkan ke langkah berikutnya tanpa mengikuti akun apa pun" +#~ msgid "Continue to the next step without following any accounts" +#~ msgstr "" -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" +msgstr "Percakapan dihapus" + +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "Memasak" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Disalin" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "Menyalin versi build ke papan klip" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "Disalin ke papan klip" @@ -1183,11 +1497,12 @@ msgstr "Disalin ke papan klip" msgid "Copied!" msgstr "Tersalin!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Menyalin kata sandi aplikasi" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Salin" @@ -1200,64 +1515,98 @@ msgstr "Salin {0}" msgid "Copy code" msgstr "Salin kode" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "Salin tautan" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "Salin Tautan" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "Salin tautan daftar" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "Salin tautan postingan" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" -msgstr "" +msgstr "Salin teks pesan" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "Salin teks postingan" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "Salin kode QR" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Kebijakan Hak Cipta" -#: src/components/dms/ConvoMenu.tsx:80 -msgid "Could not leave chat" +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" msgstr "" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/components/dms/LeaveConvoPrompt.tsx:39 +msgid "Could not leave chat" +msgstr "Tidak dapat meninggalkan obrolan" + +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" msgstr "Tidak dapat memuat feed" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "Tidak dapat memuat daftar" #: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "" +#~ msgid "Could not load profiles. Please try again later." +#~ msgstr "" -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" -msgstr "" +msgstr "Tidak dapat membisukan obrolan" #: src/components/dms/ConvoMenu.tsx:68 #~ msgid "Could not unmute chat" #~ msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "Buat" + #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "Buat akun baru" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "Buat akun Bluesky baru" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "Buat kode QR untuk paket pemula" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "Buat paket pemula" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "Buatkan paket pemula untuk saya" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "Buat Akun" @@ -1266,11 +1615,15 @@ msgstr "Buat Akun" msgid "Create an account" msgstr "Buat akun" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" -msgstr "" +msgstr "Buat avatar saja" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" +msgstr "Buat paket lain" + +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Buat Kata Sandi Aplikasi" @@ -1279,11 +1632,15 @@ msgstr "Buat Kata Sandi Aplikasi" msgid "Create new account" msgstr "Buat akun baru" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/StarterPack/ShareDialog.tsx:158 +#~ msgid "Create QR code" +#~ msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "Buat laporan untuk {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "Dibuat {0}" @@ -1291,7 +1648,8 @@ msgstr "Dibuat {0}" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "Budaya" @@ -1304,17 +1662,17 @@ msgstr "Kustom" msgid "Custom domain" msgstr "Domain kustom" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." -msgstr "Feed khusus yang dibuat oleh komunitas memberikan pengalaman baru dan membantu Anda menemukan konten yang Anda sukai." +msgstr "Feed kustom yang dibangun oleh komunitas memberikan pengalaman baru dan membantu Anda menemukan konten yang Anda sukai." #: src/view/screens/PreferencesExternalEmbeds.tsx:56 msgid "Customize media from external sites." msgstr "Sesuaikan media dari situs eksternal." -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "Gelap" @@ -1322,15 +1680,24 @@ msgstr "Gelap" msgid "Dark mode" msgstr "Mode gelap" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "Tema Gelap" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "Tanggal lahir" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "Nonaktifkan akun" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "Nonaktifkan akun saya" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" msgstr "Debug Moderasi" @@ -1338,80 +1705,101 @@ msgstr "Debug Moderasi" msgid "Debug panel" msgstr "Panel awakutu" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "Hapus" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "Hapus akun" #: src/view/com/modals/DeleteAccount.tsx:87 #~ msgid "Delete Account" -#~ msgstr "Hapus Akun" +#~ msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" -msgstr "" +msgstr "Hapus Akun <0>\"<1>{0}<2>\"" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Hapus kata sandi aplikasi" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Hapus kata sandi aplikasi?" -#: src/components/dms/MessageMenu.tsx:101 +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "Hapus catatan deklarasi obrolan" + +#: src/components/dms/MessageMenu.tsx:124 msgid "Delete for me" -msgstr "" +msgstr "Hapus untuk saya" -#: src/view/screens/ProfileList.tsx:466 +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" -msgstr "Hapus Daftar" +msgstr "Hapus daftar" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" -msgstr "" +msgstr "Hapus pesan" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" -msgstr "" +msgstr "Hapus pesan untuk saya" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "Hapus akun saya" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "Hapus Akun Saya…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "Hapus postingan" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "Hapus paket pemula" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "Hapus paket pemula?" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "Hapus daftar ini?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "Hapus postingan ini?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "Dihapus" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." msgstr "Postingan dihapus." -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "Menghapus catatan deklarasi obrolan" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1419,25 +1807,29 @@ msgstr "Deskripsi" #: src/view/com/composer/GifAltText.tsx:140 msgid "Descriptive alt text" -msgstr "" +msgstr "Teks alt deskriptif" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "Apakah Anda ingin mengatakan sesuatu?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "Redup" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "Pesan langsung telah hadir!" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" msgstr "Nonaktifkan pemutaran otomatis untuk GIF" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" -msgstr "Nonaktfikan Email 2FA" +msgstr "Nonaktifkan Email 2FA" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" msgstr "Matikan respons haptik" @@ -1452,32 +1844,50 @@ msgstr "Matikan respons haptik" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "Dinonaktifkan" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "Buang" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "Buang draf?" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" -msgstr "Cegah aplikasi untuk menampilkan akun saya ke pengguna yang tidak login" +msgstr "Cegah aplikasi menampilkan akun saya ke pengguna yang tidak masuk" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" -msgstr "Temukan feed khusus baru" +msgstr "Temukan feed kustom baru" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "Temukan feed baru" + +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "Temukan Feed Baru" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "Tampilkan lencana teks alt yang lebih besar" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "Nama tampilan" @@ -1494,7 +1904,7 @@ msgstr "Panel DNS" msgid "Does not include nudity." msgstr "Tidak termasuk ketelanjangan." -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "Tidak diawali atau diakhiri dengan tanda hubung" @@ -1508,30 +1918,27 @@ msgstr "Domain terverifikasi!" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "Selesai" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "Selesai" @@ -1540,18 +1947,22 @@ msgstr "Selesai" msgid "Done{extraText}" msgstr "Selesai{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "Unduh Bluesky" + +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "Unduh berkas CAR" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "Lepaskan untuk menambahkan gambar" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "Sesuai dengan kebijakan Apple, konten dewasa hanya dapat diaktifkan di web setelah menyelesaikan pendaftaran." +#~ msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." +#~ msgstr "" #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" @@ -1573,19 +1984,19 @@ msgstr "contoh: Seniman, penyayang anjing, dan pembaca setia." msgid "E.g. artistic nudes." msgstr "Contoh: ketelanjangan artistik." -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "contoh: Pemosting Keren" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "contoh: Spammer" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "contoh: Pemosting yang selalu tepat sasaran." -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "contoh: Pengguna yang membalas dengan iklan secara berulang." @@ -1593,57 +2004,82 @@ msgstr "contoh: Pengguna yang membalas dengan iklan secara berulang." msgid "Each code works once. You'll receive more invite codes periodically." msgstr "Tiap kode hanya berlaku sekali. Anda akan mendapatkan tambahan kode undangan secara berkala." +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "Ubah" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "Ubah" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" -msgstr "Edit avatar" +msgstr "Ubah avatar" + +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "Ubah Daftar Feed" #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "Edit gambar" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" -msgstr "Edit detail daftar" +msgstr "Ubah rincian daftar" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "Ubah Daftar Moderasi" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" -msgstr "Edit Feed Saya" +msgstr "Ubah Daftar Feed" #: src/view/com/modals/EditProfile.tsx:153 msgid "Edit my profile" msgstr "Edit profil saya" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "Ubah Daftar Pengguna" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "Edit profil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "Edit Profil" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "Edit Feed Tersimpan" +#: src/view/screens/Feeds.tsx:416 +#~ msgid "Edit Saved Feeds" +#~ msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "Ubah paket pemula" + +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" -msgstr "Edit Daftar Pengguna" +msgstr "Ubah Daftar Pengguna" + +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "Ubah siapa yang dapat membalas" #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" @@ -1651,13 +2087,22 @@ msgstr "Ubah nama tampilan Anda" #: src/view/com/modals/EditProfile.tsx:212 msgid "Edit your profile description" -msgstr "Ubah deskripsi profil Anda" +msgstr "Sunting deskripsi profil Anda" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "Ubah paket pemula Anda" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "Pendidikan" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "Pilih \"Semua orang\" atau \"Tak seorang pun\"" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "Email" @@ -1677,65 +2122,72 @@ msgstr "Email diperbarui" #: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" -msgstr "Email Diupdate" +msgstr "Email Diperbarui" #: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "Email terverifikasi" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "Email:" #: src/components/dialogs/Embed.tsx:112 msgid "Embed HTML code" -msgstr "Sematkan kode HTML" +msgstr "Sisipkan kode HTML" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" -msgstr "Sematkan postingan" +msgstr "Sisipkan postingan" #: src/components/dialogs/Embed.tsx:101 msgid "Embed this post in your website. Simply copy the following snippet and paste it into the HTML code of your website." -msgstr "Sematkan postingan ini di situs web Anda. Salin potongan kode berikut dan tempelkan ke dalam kode HTML situs web Anda." +msgstr "Sisipkan postingan ini di situs web Anda. Salin potongan kode berikut dan tempelkan ke dalam kode HTML situs web Anda." #: src/components/dialogs/EmbedConsent.tsx:101 msgid "Enable {0} only" msgstr "Aktifkan {0} saja" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "Aktifkan konten dewasa" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "Aktifkan Konten Dewasa" +#~ msgid "Enable Adult Content" +#~ msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "Aktifkan konten dewasa di feed Anda" +#~ msgid "Enable adult content in your feeds" +#~ msgstr "" #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 msgid "Enable external media" msgstr "Aktifkan media eksternal" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "Aktifkan pemutar media untuk" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." -msgstr "Aktifkan opsi ini untuk hanya menampilkan balasan dari akun yang Anda ikuti." +msgstr "Aktifkan opsi ini untuk menampilkan balasan hanya dari pengguna yang Anda ikuti." #: src/components/dialogs/EmbedConsent.tsx:94 msgid "Enable this source only" msgstr "Aktifkan hanya sumber ini saja" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "Diaktifkan" @@ -1743,7 +2195,15 @@ msgstr "Diaktifkan" msgid "End of feed" msgstr "Akhir feed" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/components/Lists.tsx:52 +#~ msgid "End of list" +#~ msgstr "" + +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Masukkan nama untuk Sandi Aplikasi ini" @@ -1754,13 +2214,13 @@ msgstr "Masukkan kata sandi" #: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 msgid "Enter a word or tag" -msgstr "Masukkan kata atau tag" +msgstr "Masukkan kata atau tagar" #: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "Masukkan Kode Konfirmasi" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "Masukkan kode yang Anda terima untuk mengubah kata sandi Anda." @@ -1777,7 +2237,7 @@ msgid "Enter your birth date" msgstr "Masukkan tanggal lahir Anda" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "Masukkan alamat email Anda" @@ -1793,38 +2253,51 @@ msgstr "Masukkan alamat email baru Anda di bawah ini." msgid "Enter your username and password" msgstr "Masukkan nama pengguna dan kata sandi Anda" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" -msgstr "" +msgstr "Terjadi kesalahan saat menyimpan berkas" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." -msgstr "Gagal menerima respons captcha." +msgstr "Kesalahan saat menerima respons captcha." -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "Eror:" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "Semua orang" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "Semua orang dapat membalas" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "Semua orang" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "Menyebut atau membalas secara berlebihan" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" -msgstr "" +msgstr "Pesan yang berlebihan atau tidak diinginkan" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "Keluar dari proses penghapusan akun" #: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" -msgstr "Keluar dari proses perubahan handle" +msgstr "Keluar dari proses perubahan panggilan" #: src/view/com/modals/crop-image/CropImage.web.tsx:160 msgid "Exits image cropping process" @@ -1834,20 +2307,28 @@ msgstr "Keluar dari proses pemotongan gambar" msgid "Exits image view" msgstr "Keluar dari tampilan gambar" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "Keluar dari memasukkan permintaan pencarian" #: src/view/com/lightbox/Lightbox.web.tsx:183 msgid "Expand alt text" -msgstr "Tampilkan teks alt" +msgstr "Bentangkan teks alt" + +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "Bentangkan daftar pengguna" #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "Bentangkan atau ciutkan postingan lengkap yang Anda balas" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "Media eksplisit atau berpotensi mengganggu." @@ -1856,12 +2337,12 @@ msgstr "Media eksplisit atau berpotensi mengganggu." msgid "Explicit sexual images." msgstr "Gambar seksual eksplisit." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "Ekspor data saya" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "Ekspor Data Saya" @@ -1871,83 +2352,143 @@ msgid "External Media" msgstr "Media Eksternal" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "Media eksternal memungkinkan situs web untuk mengumpulkan informasi tentang Anda dan perangkat Anda. Tidak ada informasi yang dikirim atau diminta hingga Anda menekan tombol \"play\"." -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "Preferensi Media Eksternal" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "Pengaturan media eksternal" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "Gagal membuat kata sandi aplikasi." -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "Gagal membuat paket pemula" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "Gagal membuat daftar. Periksa koneksi internet Anda dan coba lagi." -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" -msgstr "" +msgstr "Gagal menghapus pesan" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "Gagal menghapus postingan, silakan coba lagi" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "Gagal menghapus paket pemula" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "Gagal memuat preferensi feed" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" msgstr "Gagal memuat GIF" +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" +msgstr "Gagal memuat pesan terdahulu" + #: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." -msgstr "" +#~ msgid "Failed to load past messages." +#~ msgstr "" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:110 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:143 #~ msgid "Failed to load recommended feeds" #~ msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "Gagal memuat daftar feed yang disarankan" + +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "Gagal memuat saran akun untuk diikuti" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "Gagal menyimpan gambar: {0}" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "Gagal mengirim" + +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +#~ msgid "Failed to send message(s)." +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "Gagal mengajukan banding, silakan coba lagi." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "Gagal membisukan utas, silakan coba lagi" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "Gagal memperbarui daftar feed" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "Gagal memperbarui pengaturan" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "Feed" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "Feed oleh {0}" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "Feed offline" +#: src/view/screens/Feeds.tsx:709 +#~ msgid "Feed offline" +#~ msgstr "" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "Tombol alih feed" + +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "Masukan" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" msgstr "Feed" @@ -1955,37 +2496,45 @@ msgstr "Feed" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." -msgstr "Feed adalah algoritma khusus yang dibuat oleh pengguna dengan sedikit keahlian pengkodean. <0/> untuk informasi lebih lanjut." +msgstr "Feed adalah algoritma kustom yang dibuat pengguna dengan sedikit keahlian pemrograman. <0/> untuk informasi lebih lanjut." #: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" -msgstr "Feed juga bisa berdasarkan topik!" +#~ msgid "Feeds can be topical as well!" +#~ msgstr "" + +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" +msgstr "Daftar feed diperbarui!" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Isi Berkas" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" -msgstr "" +msgstr "Berkas berhasil disimpan!" #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Saring dari feed" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "Menyelesaikan" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "Temukan akun untuk diikuti" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "" + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" msgstr "Temukan postingan dan pengguna di Bluesky" @@ -2001,19 +2550,27 @@ msgstr "Temukan postingan dan pengguna di Bluesky" #~ msgid "Finding similar accounts..." #~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." -msgstr "Sesuaikan konten yang ingin Anda lihat di feed Following." +msgstr "Sesuaikan konten yang Anda lihat di feed Mengikuti." -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." -msgstr "Atur utasan diskusi." +msgstr "Sesuaikan utas diskusi." -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "Selesai" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "Kebugaran" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "Fleksibel" @@ -2026,112 +2583,172 @@ msgstr "Balik secara horizontal" msgid "Flip vertically" msgstr "Balik secara vertikal" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "Ikuti" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "Ikuti" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Ikuti {0}" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "Ikuti {name}" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "Ikuti Akun" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" +msgstr "Ikuti semua" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" -msgstr "Ikuti Semua" +#~ msgid "Follow All" +#~ msgstr "" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "Ikuti Balik" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "Ikuti lebih banyak akun untuk terhubung sesuai minat Anda dan membangun jaringan." + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" -msgstr "Ikuti akun yang dipilih dan lanjutkan ke langkah berikutnya" +#~ msgid "Follow selected accounts and continue to the next step" +#~ msgstr "" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:65 #~ msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." #~ msgstr "" -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" -msgstr "Diikuti oleh {0}" +#: src/components/KnownFollowers.tsx:169 +#~ msgid "Followed by" +#~ msgstr "" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/view/com/profile/ProfileCard.tsx:190 +#~ msgid "Followed by {0}" +#~ msgstr "Diikuti oleh {0}" + +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" +msgstr "Diikuti oleh <0>{0}" + +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "Diikuti oleh <0>{0} dan {1, plural, other {# lainnya}}" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "Diikuti oleh <0>{0} dan <1>{1}" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "Diikuti oleh <0>{0}, <1>{1}, dan {2, plural, other {# lainnya}}" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" -msgstr "Pengguna yang diikuti" +msgstr "Pengguna yang Anda ikuti" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "Hanya pengguna yang diikuti" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "mengikuti Anda" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Pengikut" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "Pengikut @{0} yang Anda kenal" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "Pengikut yang Anda kenal" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "Mengikuti" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" msgstr "Mengikuti {0}" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "Mengikuti {name}" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" -msgstr "Preferensi feed Following" +msgstr "Preferensi feed Mengikuti" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" -msgstr "Preferensi Feed Following" +msgstr "Preferensi Feed Mengikuti" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "Mengikuti Anda" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "Mengikuti Anda" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "Makanan" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Untuk alasan keamanan, kami akan mengirimkan kode konfirmasi ke alamat email Anda." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Untuk alasan keamanan, Anda tidak akan dapat melihat ini lagi. Jika Anda lupa kata sandi ini, Anda harus membuat yang baru." @@ -2140,15 +2757,15 @@ msgstr "Untuk alasan keamanan, Anda tidak akan dapat melihat ini lagi. Jika Anda msgid "Forgot Password" msgstr "Lupa Kata Sandi" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "Lupa kata sandi?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "Lupa?" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "Sering Memposting Konten yang Tidak Diinginkan" @@ -2156,7 +2773,7 @@ msgstr "Sering Memposting Konten yang Tidak Diinginkan" msgid "From @{sanitizedAuthor}" msgstr "Dari @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "Dari <0/>" @@ -2165,48 +2782,77 @@ msgstr "Dari <0/>" msgid "Gallery" msgstr "Galeri" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "Buatkan paket pemula" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "Mulai" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" -msgstr "Memulai" +msgstr "Mulai" -#: src/screens/Onboarding/StepProfile/index.tsx:228 -msgid "Give your profile a face" +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" msgstr "" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "GIF" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 +msgid "Give your profile a face" +msgstr "Beri wajah pada profil Anda" + +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "Pelanggaran hukum atau ketentuan layanan secara terang-terangan" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "Kembali" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "Kembali" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:189 +#~ msgid "Go back to previous screen" +#~ msgstr "" + +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "Kembali ke langkah sebelumnya" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "Kembali ke langkah sebelumnya" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "Kembali ke beranda" @@ -2220,141 +2866,152 @@ msgstr "Ke Beranda" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "Buka percakapan dengan {0}" + #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "Berikutnya" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" +msgstr "Buka profil" + +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" msgstr "" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" -msgstr "" +msgstr "Buka profil pengguna" #: src/lib/moderation/useGlobalLabelStrings.ts:46 msgid "Graphic Media" msgstr "Media Sensitif" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" -msgstr "Handle" +msgstr "Panggilan" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" msgstr "Haptik" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "Pelecehan, unggah sulut, atau intoleransi" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "Tagar" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "Tagar: #{tag}" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "Mengalami masalah?" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "Bantuan" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." -msgstr "" +msgstr "Beri tahu orang-orang bahwa Anda bukan bot dengan mengunggah gambar atau membuat avatar." #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "Berikut beberapa akun untuk Anda ikuti" +#~ msgid "Here are some accounts for you to follow" +#~ msgstr "" #: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "Berikut beberapa feed topik yang populer. Anda dapat memilih untuk mengikuti sebanyak yang Anda suka." +#~ msgid "Here are some popular topical feeds. You can choose to follow as many as you like." +#~ msgstr "" #: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "Berikut beberapa feed topik terdasarkan minat Anda: {interestsText}. Anda dapat memilih untuk mengikuti sebanyak yang Anda suka." +#~ msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." +#~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Berikut kata sandi aplikasi Anda." -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "Sembunyikan" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "Sembunyikan" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "Sembunyikan postingan" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "Sembunyikan konten" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "Sembunyikan postingan ini?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "Sembunyikan daftar pengguna" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." -msgstr "Hmm, ada masalah yang terjadi saat menghubungi server feed. Harap beri tahu pemilik feed tentang masalah ini." +msgstr "Hmm, terjadi masalah saat menghubungi server feed. Harap beri tahu pemilik feed tentang masalah ini." -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Hmm, server feed tampaknya salah konfigurasi. Harap beri tahu pemilik feed tentang masalah ini." -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Hmm, server feed tampaknya sedang offline. Harap beri tahu pemilik feed tentang masalah ini." -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Hmm, server feed memberikan respons yang buruk. Harap beri tahu pemilik feed tentang masalah ini." -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, kami kesulitan menemukan feed ini. Mungkin sudah dihapus." -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." -msgstr "Hmmmm, sepertinya kami kesulitan memuat data ini. Lihat di bawah untuk keterangan lebih lanjut. Jika tetap eror, mohon hubungi kami." +msgstr "Hmmmm, sepertinya kami kesulitan memuat data ini. Lihat di bawah untuk keterangan lebih lanjut. Jika masalah berlanjut, mohon hubungi kami." #: src/screens/Profile/ErrorState.tsx:31 msgid "Hmmmm, we couldn't load that moderation service." msgstr "Hmmmm, kami tidak dapat memuat layanan moderasi." -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "Beranda" @@ -2363,11 +3020,11 @@ msgid "Host:" msgstr "Host:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" -msgstr "Provider hosting" +msgstr "Penyedia hosting" #: src/view/com/modals/InAppBrowserConsent.tsx:44 msgid "How should we open this link?" @@ -2387,13 +3044,14 @@ msgstr "Saya punya kode konfirmasi" msgid "I have my own domain" msgstr "Saya punya domain sendiri" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" -msgstr "" +msgstr "Saya mengerti" #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" -msgstr "Jika teks alt panjang, alihkan status teks alt yang diperluas" +msgstr "Beralih ke status teks alt yang dibentangkan jika teks alt panjang" #: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." @@ -2403,43 +3061,55 @@ msgstr "Jika tidak ada yang dipilih, cocok untuk semua umur." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Jika Anda belum berusia dewasa menurut hukum negara Anda, orang tua atau wali sah Anda harus membaca Ketentuan ini atas nama Anda." -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "Jika Anda menghapus daftar ini, Anda tidak dapat memulihkannya lagi." -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "Jika Anda menghapus postingan ini, Anda tidak dapat memulihkannya lagi." -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Jika Anda ingin mengubah kata sandi, kami akan mengirimkan kode untuk memverifikasi bahwa ini adalah akun Anda." -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "Jika ingin mengubah panggilan atau email, lakukanlah sebelum Anda menonaktifkan akun." + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "Ilegal dan Urgen" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "Gambar" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Teks alt gambar" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "Gambar telah disimpan ke rol kamera Anda!" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "Impersonasi atau klaim palsu tentang identitas atau afiliasi" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "Pesan tidak pantas atau tautan eksplisit" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "Masukkan kode yang dikirim ke email Anda untuk pengaturan ulang kata sandi" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "Masukkan kode konfirmasi untuk penghapusan akun" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Masukkan nama untuk kata sandi aplikasi" @@ -2447,23 +3117,23 @@ msgstr "Masukkan nama untuk kata sandi aplikasi" msgid "Input new password" msgstr "Masukkan kata sandi baru" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "Masukkan kata sandi untuk penghapusan akun" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "Masukkan kode yang telah dikirim ke email Anda" -#: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "Masukkan kata sandi yang terkait dengan {identifier}" +#: src/screens/Login/LoginForm.tsx:221 +#~ msgid "Input the password tied to {identifier}" +#~ msgstr "Masukkan kata sandi yang terkait dengan {identifier}" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the username or email address you used at signup" msgstr "Masukkan nama pengguna atau alamat email yang Anda gunakan saat mendaftar" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "Masukkan kata sandi Anda" @@ -2471,20 +3141,24 @@ msgstr "Masukkan kata sandi Anda" msgid "Input your preferred hosting provider" msgstr "Masukkan penyedia hosting pilihan Anda" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" -msgstr "Masukkan handle pengguna Anda" +msgstr "Masukkan panggilan Anda" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "Memperkenalkan Pesan Langsung" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "Kode konfirmasi 2FA tidak valid." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" -msgstr "Catatan posting tidak valid atau tidak didukung" +msgstr "Catatan postingan tidak valid atau tidak didukung" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "Username atau kata sandi salah" @@ -2492,11 +3166,11 @@ msgstr "Username atau kata sandi salah" msgid "Invite a Friend" msgstr "Undang Teman" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "Kode Undangan" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Kode undangan salah. Periksa bahwa Anda memasukkannya dengan benar dan coba lagi." @@ -2508,69 +3182,97 @@ msgstr "Kode undangan: {0} tersedia" msgid "Invite codes: 1 available" msgstr "Kode undangan: 1 tersedia" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "Undang orang lain ke paket pemula ini!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "Undang teman untuk mengikuti feed dan akun favorit Anda" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "Undangan, tetapi personal" + #: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." -msgstr "Feed ini menampilkan postingan secara langsung dari orang yang Anda ikuti." +#~ msgid "It shows posts from the people you follow as they happen." +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." +msgstr "Hanya ada Anda saat ini! Tambahkan lebih banyak orang ke paket pemula Anda melalui pencarian di atas." #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "Karir" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "Bergabung di Bluesky" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "Bergabunglah dengan kami" + +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "Jurnalisme" #: src/components/moderation/LabelsOnMe.tsx:59 #~ msgid "label has been placed on this {labelTarget}" -#~ msgstr "label telah diterapkan pada {labelTarget} ini" +#~ msgstr "" -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "Dilabeli oleh {0}." -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." -msgstr "Dilabeli oleh penulis." +msgstr "Dilabeli oleh pemosting." -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "Label" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." -msgstr "Label adalah anotasi pada pengguna dan konten. Label dapat digunakan untuk menyembunyikan, memperingatkan, dan mengkategorikan jaringan." +msgstr "Label adalah anotasi yang diterapkan pada pengguna dan konten. Label dapat digunakan untuk menyembunyikan, memperingatkan, dan mengkategorikan jaringan." #: src/components/moderation/LabelsOnMe.tsx:61 #~ msgid "labels have been placed on this {labelTarget}" -#~ msgstr "label telah diterapkan pada {labelTarget} ini" +#~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "Label pada akun Anda" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "Label pada konten Anda" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "Pilih bahasa" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "Pengaturan bahasa" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "Pengaturan Bahasa" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "Bahasa" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "Terbaru" @@ -2578,33 +3280,40 @@ msgstr "Terbaru" msgid "Learn More" msgstr "Pelajari Lebih Lanjut" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "Pelajari lebih lanjut tentang moderasi yang diterapkan pada konten ini." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Pelajari lebih lanjut tentang peringatan ini" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." -msgstr "Pelajari lebih lanjut tentang apa yang publik di Bluesky." +msgstr "Pelajari lebih lanjut tentang apa yang bersifat publik di Bluesky." -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "Pelajari lebih lanjut." -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" -msgstr "" +msgstr "Tinggalkan" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "Tinggalkan obrolan" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" -msgstr "" +msgstr "Tinggalkan percakapan" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." @@ -2614,39 +3323,53 @@ msgstr "Hapus semua tanda untuk menampilkan semua bahasa." msgid "Leaving Bluesky" msgstr "Meninggalkan Bluesky" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "yang tersisa" -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." -msgstr "Penyimpanan lama dihapus, Anda perlu memulai ulang aplikasi sekarang." +msgstr "Penyimpanan lama dibersihkan, Anda perlu memulai ulang aplikasi sekarang." + +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "Biarkan saya memilih" #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "Reset kata sandi Anda!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "Ayo!" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "Terang" #: src/view/com/util/post-ctrls/PostCtrls.tsx:197 #~ msgid "Like" -#~ msgstr "Suka" +#~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "" + +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "Suka feed ini" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "Disukai oleh" @@ -2658,87 +3381,104 @@ msgstr "Disukai Oleh" #: src/view/com/feeds/FeedSourceCard.tsx:268 #~ msgid "Liked by {0} {1}" -#~ msgstr "Disukai oleh {0} {1}" +#~ msgstr "" #: src/components/LabelingServiceCard/index.tsx:72 #~ msgid "Liked by {count} {0}" -#~ msgstr "Disukai oleh {count} {0}" +#~ msgstr "" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:287 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:301 #: src/view/screens/ProfileFeed.tsx:600 #~ msgid "Liked by {likeCount} {0}" -#~ msgstr "Disukai oleh {likeCount} {0}" +#~ msgstr "" -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" -msgstr "menyukai feed khusus Anda" +msgstr "menyukai feed kustom Anda" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" msgstr "menyukai postingan Anda" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "Suka" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "Suka pada postingan ini" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "Daftar" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "Avatar Daftar" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "Daftar diblokir" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "Daftar oleh {0}" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "Daftar dihapus" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "Daftar dibisukan" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "Nama Daftar" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" -msgstr "Daftar tidak diblokir" +msgstr "Daftar batal diblokir" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" -msgstr "Daftar tidak dibisukan" +msgstr "Daftar batal dibisukan" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "Daftar" -#: src/view/screens/Notifications.tsx:159 +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "Daftar yang memblokir pengguna ini:" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "Muat lebih banyak" + +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "Muat lebih banyak feed yang disarankan" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "Muat lebih banyak akun untuk diikuti" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "Muat notifikasi baru" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "Muat postingan baru" @@ -2746,28 +3486,33 @@ msgstr "Muat postingan baru" msgid "Loading..." msgstr "Memuat..." -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "Catatan" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "Masuk atau daftar" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "Keluar" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" -msgstr "Visibilitas pengguna yang tidak login" +msgstr "Visibilitas pengguna yang tidak masuk" #: src/components/AccountList.tsx:58 msgid "Login to account that is not listed" -msgstr "Masuk ke akun yang tidak ada di daftar" +msgstr "Masuk ke akun yang tidak tercantum dalam daftar" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" -msgstr "Tekan lama untuk membuka menu tagar untuk #{tag}" +msgstr "Tekan lama untuk membuka menu tagar #{tag}" #: src/screens/Login/SetNewPasswordForm.tsx:116 msgid "Looks like XXXXX-XXXXX" @@ -2775,90 +3520,99 @@ msgstr "Seperti XXXXX-XXXXX" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." -msgstr "" +msgstr "Sepertinya Anda belum menyimpan feed apa pun! Gunakan rekomendasi kami atau telusuri lebih banyak di bawah ini." -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" -msgstr "" +msgstr "Sepertinya Anda menghapus semua feed tersemat. Tapi jangan khawatir, Anda dapat menambahkan beberapa feed di bawah ini 😄" #: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." -msgstr "" +#~ msgid "Looks like you're missing a following feed." +#~ msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "Sepertinya Anda belum memiliki feed mengikuti. <0>Klik di sini untuk menambahkan." + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" +msgstr "Buatkan untuk saya" #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" -msgstr "Pastikan ini adalah website yang Anda tuju!" +msgstr "Pastikan ini adalah situs web yang Anda tuju!" #: src/components/dialogs/MutedWords.tsx:82 msgid "Manage your muted words and tags" msgstr "Kelola kata dan tagar yang dibisukan" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" -msgstr "" +msgstr "Tandai telah dibaca" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "Media" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "pengguna yang disebutkan" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" -msgstr "Pengguna yang disebutkan" +msgstr "Pengguna yang Anda sebut" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "Menu" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "Kirim pesan ke {0}" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" -msgstr "" +msgstr "Pesan dihapus" #: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Pesan dari server: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" -msgstr "" +msgstr "Kotak input pesan" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" -msgstr "" +msgstr "Pesan terlalu panjang" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "Pengaturan pesan" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "Pesan" #: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "Pengaturan perpesanan" +#~ msgid "Messaging settings" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "Akun Menyesatkan" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "Moderasi" @@ -2866,71 +3620,80 @@ msgstr "Moderasi" msgid "Moderation details" msgstr "Detail moderasi" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" -msgstr "Daftar moderasi oleh {0}" +msgstr "Daftar moderasi {0}" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "Daftar moderasi oleh <0/>" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "Daftar moderasi Anda" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "Daftar moderasi dibuat" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "Daftar moderasi diperbarui" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "Daftar moderasi" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Daftar Moderasi" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "Pengaturan moderasi" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "Status moderasi" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "Alat moderasi" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "Moderator telah memilih untuk menetapkan peringatan umum pada konten." -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" -msgstr "Lainnya" +msgstr "Selengkapnya" #: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "Feed lainnya" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" -msgstr "Pilihan lainnya" +msgstr "Opsi lainnya" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "Balasan yang paling disukai lebih dulu" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "Film" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "" + #: src/components/TagMenu/index.tsx:249 msgid "Mute" msgstr "Bisukan" @@ -2939,12 +3702,12 @@ msgstr "Bisukan" msgid "Mute {truncatedTag}" msgstr "Bisukan {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "Bisukan Akun" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "Bisukan akun" @@ -2952,54 +3715,59 @@ msgstr "Bisukan akun" msgid "Mute all {displayTag} posts" msgstr "Bisukan semua postingan {displayTag}" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "Bisukan percakapan" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" -msgstr "Bisukan di tagar saja" +msgstr "Bisukan tagar saja" #: src/components/dialogs/MutedWords.tsx:133 msgid "Mute in text & tags" -msgstr "Bisukan di teks & tagar" +msgstr "Bisukan teks & tagar" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "Bisukan daftar" #: src/components/dms/ConvoMenu.tsx:136 #: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "" +#~ msgid "Mute notifications" +#~ msgstr "" -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" -msgstr "Bisukan akun ini?" +msgstr "Bisukan akun-akun ini?" #: src/components/dialogs/MutedWords.tsx:126 msgid "Mute this word in post text and tags" -msgstr "Bisukan kata ini di teks dan tag postingan" +msgstr "Bisukan kata ini di teks postingan dan tagar" #: src/components/dialogs/MutedWords.tsx:141 msgid "Mute this word in tags only" -msgstr "Bisukan kata ini di tag saja" +msgstr "Bisukan kata ini hanya dalam tagar" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" -msgstr "Bisukan utasan" +msgstr "Bisukan utas" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" -msgstr "Bisukan kata & tag" +msgstr "Bisukan kata & tagar" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "Dibisukan" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "Akun yang dibisukan" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "Akun yang Dibisukan" @@ -3008,69 +3776,79 @@ msgstr "Akun yang Dibisukan" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Postingan dari akun yang dibisukan akan dihilangkan dari feed dan notifikasi Anda. Pembisuan ini bersifat privat." -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "Dibisukan oleh \"{0}\"" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "Kata & tagar yang dibisukan" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." -msgstr "Pembisuan akun bersifat privat. Akun yang dibisukan tetap dapat berinteraksi dengan Anda, namun Anda tidak akan melihat postingan atau notifikasi dari mereka." +msgstr "Pembisuan bersifat privat. Akun yang dibisukan tetap dapat berinteraksi dengan Anda, tetapi Anda tidak akan melihat postingan atau notifikasi dari mereka." #: src/components/dialogs/BirthDateSettings.tsx:35 #: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "Tanggal Lahir Saya" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" -msgstr "Feed Saya" +msgstr "Daftar Feed Saya" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "Profil Saya" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" msgstr "Feed tersimpan saya" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" msgstr "Feed Tersimpan Saya" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "Nama" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "Nama harus diisi" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "Nama atau Deskripsi Melanggar Standar Komunitas" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "Alam" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "Menuju ke paket pemula" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "Menuju ke layar berikutnya" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "Menuju ke profil Anda" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "Perlu melaporkan pelanggaran hak cipta?" @@ -3079,15 +3857,15 @@ msgstr "Perlu melaporkan pelanggaran hak cipta?" #~ msgid "Never lose access to your followers and data." #~ msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "Tidak akan lagi kehilangan akses ke data dan pengikut Anda." #: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" -msgstr "Tidak usah, buatkan handle untuk saya" +msgstr "Tidak usah, buatkan panggilan untuk saya" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "Baru" @@ -3096,65 +3874,79 @@ msgstr "Baru" msgid "New" msgstr "Baru" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" -msgstr "" +msgstr "Obrolan baru" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "Pesan baru" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "Daftar Moderasi Baru" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "Kata sandi baru" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "Kata Sandi Baru" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "Postingan baru" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "Postingan baru" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "Postingan baru" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "Dialog informasi pengguna baru" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "Daftar Pengguna Baru" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" -msgstr "Balasan terbaru terlebih dahulu" +msgstr "Balasan terbaru lebih dulu" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "Berita" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "Berikutnya" @@ -3167,17 +3959,17 @@ msgstr "Berikutnya" msgid "Next image" msgstr "Gambar berikutnya" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "Tidak" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "Tidak ada deskripsi" @@ -3185,78 +3977,112 @@ msgstr "Tidak ada deskripsi" msgid "No DNS Panel" msgstr "Tanpa Panel DNS" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "GIF tidak ditemukan. Mungkin ada masalah dengan Tenor." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "Tidak ditemukan feed apa pun. Coba pencarian lain." + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "Tidak lagi mengikuti {0}" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "Tidak lebih dari 253 karakter" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" -msgstr "" +msgstr "Belum ada pesan" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "Tidak ada percakapan lain untuk ditampilkan" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "Belum ada notifikasi!" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "Tidak seorang pun" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "Belum ada postingan." + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Tidak ada hasil" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "Tidak ada hasil" + +#: src/components/Lists.tsx:207 msgid "No results found" -msgstr "Tidak ada hasil yang ditemukan" +msgstr "Tidak ditemukan hasil" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" -msgstr "Tidak ada hasil ditemukan untuk \"{query}\"" +msgstr "Tidak ditemukan hasil untuk \"{query}\"" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" -msgstr "Tidak ada hasil ditemukan untuk {query}" +msgstr "Tidak ditemukan hasil untuk {query}" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." -msgstr "Tidak ada hasil pencarian yang ditemukan untuk \"{search}\"." +msgstr "Tidak ditemukan hasil pencarian untuk \"{search}\"." #: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "" +#~ msgid "No search results found for \"{searchText}\"." +#~ msgstr "" #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "Tidak terima kasih" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "Tak seorang pun" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "Tidak ada yang dapat membalas" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "Belum ada yang menyukai ini. Mungkin Anda bisa jadi yang pertama!" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "Tidak ditemukan siapa pun. Coba pencarian lain." + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "Ketelanjangan Non-Seksual" #: src/view/com/modals/SelfLabel.tsx:135 #~ msgid "Not Applicable." -#~ msgstr "Tidak Berlaku." +#~ msgstr "" -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "Tidak ditemukan" @@ -3265,57 +4091,87 @@ msgstr "Tidak ditemukan" msgid "Not right now" msgstr "Jangan sekarang" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "Catatan tentang berbagi" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." -msgstr "Catatan: Bluesky merupakan jaringan terbuka dan publik. Pengaturan ini hanya akan membatasi visibilitas konten Anda pada aplikasi dan website Bluesky, dan aplikasi lain mungkin tidak mengindahkan pengaturan ini. Konten Anda mungkin tetap ditampilkan kepada pengguna yang tidak login oleh aplikasi dan website lain." +msgstr "Catatan: Bluesky merupakan jaringan terbuka dan publik. Pengaturan ini hanya membatasi visibilitas konten Anda pada aplikasi dan situs web Bluesky. Konten Anda mungkin tetap ditampilkan oleh aplikasi atau situs web lain kepada pengguna yang tidak masuk." -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "Kosong" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "Suara notifikasi" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "Suara Notifikasi" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "Notifikasi" -#: src/components/dms/MessageItem.tsx:145 +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" +msgstr "sekarang" + +#: src/components/dms/MessageItem.tsx:169 msgid "Now" -msgstr "" +msgstr "Sekarang" #: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Ketelanjangan" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "Ketelanjangan atau konten dewasa yang tidak dilabeli sedemikian rupa" #: src/screens/Signup/index.tsx:145 #~ msgid "of" -#~ msgstr "dari" +#~ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:11 msgid "Off" msgstr "Matikan" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "Oh tidak!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." -msgstr "Oh tidak! Sepertinya ada yang salah." +msgstr "Oh tidak! Ada yang tidak beres." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "OK" @@ -3323,107 +4179,151 @@ msgstr "OK" msgid "Okay" msgstr "Baiklah" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" -msgstr "Balasan terlama terlebih dahulu" +msgstr "Balasan terlama lebih dulu" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "di" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "pada {str}" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "Atur ulang orientasi" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "Satu atau lebih gambar belum ada teks alt." -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" -msgstr "" +msgstr "Hanya mendukung berkas .jpg dan .png" + +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" +msgstr "Hanya {0} yang dapat membalas" #: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." -msgstr "Hanya {0} dapat membalas." +#~ msgid "Only {0} can reply." +#~ msgstr "" -#: src/screens/Signup/StepHandle.tsx:98 +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "Hanya berisi huruf, angka, dan tanda hubung" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" -msgstr "Oops, sepertinya ada yang salah!" +msgstr "Ups, ada yang tidak beres!" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" -msgstr "Uups!" +msgstr "Ups!" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" -msgstr "Buka" +msgstr "Terbuka" -#: src/screens/Onboarding/StepProfile/index.tsx:280 +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "Buka menu pintasan profil {name}" + +#: src/screens/Onboarding/StepProfile/index.tsx:277 msgid "Open avatar creator" -msgstr "" +msgstr "Buka pembuat avatar" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "Buka opsi percakapan" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "Buka pemilih emoji" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "Buka menu opsi feed" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "Buka tautan dengan browser dalam aplikasi" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "Buka opsi pesan" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "Buka pengaturan kata dan tagar yang dibisukan" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "Buka navigasi" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" -msgstr "Buka menu pilihan postingan" +msgstr "Buka menu opsi postingan" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "Buka menu paket pemula" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "Buka halaman buku cerita" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "Buka log sistem" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "Membuka opsi {numItems}" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "Membuka dialog untuk memilih siapa yang dapat membalas utas ini" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "Membuka pengaturan aksesibilitas" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "Membuka detail tambahan untuk entri debug" #: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "Membuka daftar pengguna yang diperluas dalam notifikasi ini" +#~ msgid "Opens an expanded list of users in this notification" +#~ msgstr "" #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "Membuka kamera pada perangkat" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "Membuka pengaturan obrolan" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "Membuka penyusun postingan" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "Membuka pengaturan bahasa yang dapat dikonfigurasi" @@ -3431,9 +4331,9 @@ msgstr "Membuka pengaturan bahasa yang dapat dikonfigurasi" msgid "Opens device photo gallery" msgstr "Membuka galeri foto perangkat" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" -msgstr "Membuka pengaturan penyematan eksternal" +msgstr "Membuka pengaturan sisipan eksternal" #: src/view/com/auth/SplashScreen.tsx:50 #: src/view/com/auth/SplashScreen.web.tsx:99 @@ -3443,9 +4343,9 @@ msgstr "Membuka alur untuk membuat akun baru Bluesky" #: src/view/com/auth/SplashScreen.tsx:65 #: src/view/com/auth/SplashScreen.web.tsx:114 msgid "Opens flow to sign into your existing Bluesky account" -msgstr "Membuka alur untuk masuk ke akun Bluesky Anda yang telah ada" +msgstr "Membuka alur untuk masuk ke akun Bluesky Anda yang sudah ada" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" msgstr "Membuka dialog pemilihan GIF" @@ -3453,90 +4353,111 @@ msgstr "Membuka dialog pemilihan GIF" msgid "Opens list of invite codes" msgstr "Membuka daftar kode undangan" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "Membuka jendela modal untuk konfirmasi penonaktifan akun" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" -msgstr "Membuka modal untuk konfirmasi penghapusan akun. Membutuhkan kode email" +msgstr "Membuka jendela modal untuk konfirmasi penghapusan akun. Membutuhkan kode email" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" -msgstr "Membuka modal untuk mengubah kata sandi Bluesky Anda" +msgstr "Membuka jendela modal untuk mengubah kata sandi Bluesky Anda" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" -msgstr "Buka modal untuk memilih handle baru Bluesky" +msgstr "Membuka jendela modal untuk memilih panggilan Bluesky baru" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" -msgstr "Membuka modal untuk mengunduh data akun (repositori) Bluesky Anda" +msgstr "Membuka jendela modal untuk mengunduh data akun (repositori) Bluesky Anda" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" -msgstr "Membuka modal untuk verifikasi email" +msgstr "Membuka jendela modal untuk verifikasi email" #: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" -msgstr "Buka modal untuk menggunakan domain kustom" +msgstr "Membuka jendela modal untuk menggunakan domain kustom" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" -msgstr "Buka pengaturan moderasi" +msgstr "Membuka pengaturan moderasi" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "Membuka formulir pengaturan ulang kata sandi" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "Membuka layar untuk mengedit Feed Tersimpan" +#: src/view/screens/Feeds.tsx:417 +#~ msgid "Opens screen to edit Saved Feeds" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" -msgstr "Buka halaman dengan semua feed tersimpan" +msgstr "Membuka layar berisi semua feed tersimpan" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "Membuka pengaturan kata sandi aplikasi" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" -msgstr "Membuka preferensi feed Following" +msgstr "Membuka preferensi feed Mengikuti" #: src/view/com/modals/LinkWarning.tsx:93 msgid "Opens the linked website" msgstr "Membuka situs web tertaut" #: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "Membuka halaman pengaturan perpesanan" +#~ msgid "Opens the message settings page" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" -msgstr "Buka halaman storybook" +msgstr "Membuka halaman storybook" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" -msgstr "Buka halaman log sistem" +msgstr "Membuka halaman log sistem" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" -msgstr "Buka preferensi utasan" +msgstr "Membuka preferensi utas" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "Membuka profil ini" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "Opsi {0} dari {numItems}" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "Jika perlu, berikan informasi tambahan di bawah ini:" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "Atau gabungkan opsi-opsi berikut:" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "Atau, lanjutkan dengan akun lain." + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "Atau, masuk ke salah satu akun Anda yang lain." + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "Lainnya" @@ -3544,11 +4465,15 @@ msgstr "Lainnya" msgid "Other account" msgstr "Akun lainnya" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "Lainnya..." -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "Moderator kami telah meninjau laporan dan memutuskan untuk menonaktifkan akses Anda ke obrolan di Bluesky." + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Halaman tidak ditemukan" @@ -3557,14 +4482,14 @@ msgstr "Halaman tidak ditemukan" msgid "Page Not Found" msgstr "Halaman Tidak Ditemukan" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "Kata sandi" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "Kata Sandi Diubah" @@ -3576,62 +4501,81 @@ msgstr "Kata sandi diganti" msgid "Password updated!" msgstr "Kata sandi diganti!" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "Jeda" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" -msgstr "Orang-orang" +msgstr "Orang" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "Orang yang diikuti oleh @{0}" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "Orang yang mengikuti @{0}" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." msgstr "Diperlukan izin untuk mengakses rol kamera." -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "Izin untuk mengakses rol kamera ditolak. Silakan aktifkan di pengaturan sistem Anda." -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "Tombol alih pengguna" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "Hewan Peliharaan" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "Fotografi" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Gambar yang ditujukan untuk orang dewasa." -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "Sematkan ke beranda" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "Sematkan ke Beranda" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "Feed Tersemat" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "Disematkan ke daftar feed Anda" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" -msgstr "Mainkan" +msgstr "Putar" #: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:123 msgid "Play {0}" msgstr "Putar {0}" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/screens/Messages/Settings.tsx:97 +#: src/screens/Messages/Settings.tsx:104 +#~ msgid "Play notification sounds" +#~ msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" -msgstr "Mainkan atau jeda GIF" +msgstr "Putar atau jeda GIF" #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:57 #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:58 @@ -3642,15 +4586,16 @@ msgstr "Putar Video" msgid "Plays the GIF" msgstr "Putar GIF" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." -msgstr "Silakan pilih handle Anda." +msgstr "Silakan tentukan panggilan Anda." -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "Masukkan kata sandi Anda." -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "Mohon selesaikan verifikasi captcha." @@ -3658,11 +4603,11 @@ msgstr "Mohon selesaikan verifikasi captcha." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Harap konfirmasi email Anda sebelum mengubahnya. Ini adalah persyaratan sementara selama alat pembaruan email ditambahkan, dan akan segera dihapus." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." -msgstr "Masukkan nama untuk kata sandi aplikasi Anda. Semua spasi tidak diperbolehkan." +msgstr "Masukkan nama untuk kata sandi aplikasi Anda. Tidak diperbolehkan menggunakan spasi." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Masukkan nama unik untuk Kata Sandi Aplikasi ini atau gunakan nama yang dibuat secara acak." @@ -3670,31 +4615,42 @@ msgstr "Masukkan nama unik untuk Kata Sandi Aplikasi ini atau gunakan nama yang msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Silakan masukkan kata, tagar, atau frasa yang valid untuk dibisukan" -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "Masukkan email Anda." -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "Masukkan juga kata sandi Anda:" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" -msgstr "Jelaskan menurut Anda mengapa {0} salah menerapkan label ini" +msgstr "Jelaskan menurut Anda mengapa {0} salah dalam menerapkan label ini" + +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "Mohon jelaskan mengapa menurut Anda obrolan Anda dinonaktifkan secara keliru" #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" -msgstr "" +msgstr "Silakan masuk sebagai @{0}" #: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "Mohon Verifikasi Email Anda" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "Harap tunggu hingga kartu tautan Anda selesai dimuat" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "Politik" @@ -3702,46 +4658,46 @@ msgstr "Politik" msgid "Porn" msgstr "Pornografi" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "Posting" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" -msgstr "Posting" +msgstr "Postingan" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "Postingan oleh {0}" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "Postingan oleh @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "Postingan dihapus" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Postingan disembunyikan" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" -msgstr "Postingan Disembunyikan oleh Kata yang Dibisukan" +msgstr "Disembunyikan oleh Kata yang Dibisukan" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" -msgstr "Postingan Disembunyikan oleh Anda" +msgstr "Postingan yang Anda sembunyikan" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "Bahasa postingan" @@ -3749,8 +4705,8 @@ msgstr "Bahasa postingan" msgid "Post Languages" msgstr "Bahasa Postingan" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Postingan tidak ditemukan" @@ -3758,7 +4714,8 @@ msgstr "Postingan tidak ditemukan" msgid "posts" msgstr "postingan" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "Postingan" @@ -3766,7 +4723,7 @@ msgstr "Postingan" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Postingan dapat dibisukan berdasarkan teks, tagar mereka, atau keduanya." -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "Postingan disembunyikan" @@ -3774,14 +4731,22 @@ msgstr "Postingan disembunyikan" msgid "Potentially Misleading Link" msgstr "Tautan yang Mungkin Menyesatkan" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "Tekan untuk mencoba menghubungkan kembali" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "Tekan untuk mengganti penyedia hosting" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "Tekan untuk mengulangi" @@ -3790,45 +4755,57 @@ msgstr "Tekan untuk mengulangi" #~ msgid "Press to Retry" #~ msgstr "" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "Tekan untuk melihat pengikut akun ini yang juga Anda ikuti" + #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Gambar sebelumnya" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "Bahasa Utama" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" -msgstr "Prioritaskan Pengikut Anda" +msgstr "Dahulukan yang Anda Ikuti" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "Privasi" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Kebijakan Privasi" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "Berkirim pesan secara pribadi dengan pengguna lain." + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "Memproses..." -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "profil" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "Profil" @@ -3836,59 +4813,86 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil diperbarui" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." -msgstr "Amankan akun Anda dengan memverifikasi email Anda." +msgstr "Verifikasi email untuk mengamankan akun Anda." -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "Publik" #: src/view/screens/ModerationModlists.tsx:61 msgid "Public, shareable lists of users to mute or block in bulk." -msgstr "Daftar publik yang dapat dibagikan oleh pengguna untuk dibisukan atau diblokir secara massal." +msgstr "Daftar terbuka yang dapat dibagikan untuk memblokir atau membisukan pengguna secara massal." -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." -msgstr "Daftar bersifat publik yang dapat dibagikan dan digunakan sebagai feed." +msgstr "Daftar terbuka yang dapat dibagikan dan digunakan sebagai feed." -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "Publikasikan postingan" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "Publikasikan balasan" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "Kode QR telah disalin ke papan klip!" + +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "Kode QR telah diunduh!" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "Kode QR disimpan ke rol kamera Anda!" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "Kutip postingan" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 -msgid "Quote post" -msgstr "Kutip postingan" +#: src/view/com/modals/Repost.tsx:66 +#~ msgctxt "action" +#~ msgid "Quote post" +#~ msgstr "" #: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "Kutip Postingan" +#~ msgctxt "action" +#~ msgid "Quote Post" +#~ msgstr "" -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" -msgstr "Acak (alias \"Rolet Poster\")" +msgstr "Acak (alias \"Rolet Pemosting\")" #: src/view/com/modals/EditImage.tsx:237 msgid "Ratios" msgstr "Rasio" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" -msgstr "" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" +msgstr "Aktifkan kembali akun Anda" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "Alasan:" + +#: src/components/dms/MessageReportDialog.tsx:149 +#~ msgid "Reason: {0}" +#~ msgstr "" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" -msgstr "Pencarian terakhir" +msgstr "Pencarian Terakhir" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:117 #~ msgid "Recommended Feeds" @@ -3898,30 +4902,53 @@ msgstr "Pencarian terakhir" #~ msgid "Recommended Users" #~ msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "Hubungkan kembali" + +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "Memuat ulang percakapan" + #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Hapus" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "Hapus {displayName} dari paket pemula" + #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Hapus akun" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "Hapus Avatar" #: src/view/com/util/UserBanner.tsx:155 msgid "Remove Banner" -msgstr "Hapus Banner" +msgstr "Hapus Sampul" + +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "Hapus sisipan" #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "Hapus feed" @@ -3929,23 +4956,24 @@ msgstr "Hapus feed" msgid "Remove feed?" msgstr "Hapus feed?" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" -msgstr "Hapus dari feed saya" +msgstr "Hapus dari daftar feed saya" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" -msgstr "Hapus dari feed saya?" +msgstr "Hapus dari daftar feed saya?" #: src/view/com/composer/photos/Gallery.tsx:174 msgid "Remove image" msgstr "Hapus gambar" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "Hapus pratinjau gambar" @@ -3953,11 +4981,20 @@ msgstr "Hapus pratinjau gambar" msgid "Remove mute word from your list" msgstr "Hapus kata yang dibisukan dari daftar Anda" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "Hapus profil" + +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "Hapus profil dari riwayat pencarian" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 msgid "Remove quote" msgstr "Hapus kutipan" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "Hapus postingan ulang" @@ -3965,48 +5002,60 @@ msgstr "Hapus postingan ulang" msgid "Remove this feed from your saved feeds" msgstr "Hapus feed ini dari feed tersimpan Anda" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "Dihapus dari daftar" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" -msgstr "Dihapus dari feed saya" +msgstr "Dihapus dari daftar feed saya" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" -msgstr "Dihapus dari feed Anda" +msgstr "Dihapus dari daftar feed Anda" #: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "Menghapus gambar pra tinjau bawaan dari {0}" +#~ msgid "Removes default thumbnail from {0}" +#~ msgstr "Menghapus keluku gambar bawaan dari {0}" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" -msgstr "Hapus kutipan postingan" +msgstr "Menghapus postingan yang dikutip" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 -msgid "Replace with Discover" +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" msgstr "" -#: src/view/screens/Profile.tsx:194 +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 +msgid "Replace with Discover" +msgstr "Ganti dengan Discover" + +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "Balasan" -#: src/view/com/threadgate/WhoCanReply.tsx:98 +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "Balasan dinonaktifkan" + +#: src/view/com/threadgate/WhoCanReply.tsx:123 +#~ msgid "Replies on this thread are disabled" +#~ msgstr "" + +#: src/components/WhoCanReply.tsx:243 msgid "Replies to this thread are disabled" msgstr "Balasan ke utas ini dinonaktifkan" -#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "Balas" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "Penyaring Balasan" @@ -4016,94 +5065,118 @@ msgstr "Penyaring Balasan" #~ msgid "Reply to <0/>" #~ msgstr "" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "Membalas <0><1/>" -#: src/components/dms/MessageMenu.tsx:109 -msgid "Report" +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" +msgstr "Membalas postingan yang diblokir" + +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" msgstr "" +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 +msgid "Report" +msgstr "Laporkan" + #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 #~ msgid "Report account" #~ msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "Laporkan Akun" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" -msgstr "" +msgstr "Laporkan percakapan" #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "Dialog laporan" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "Laporkan feed" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "Laporkan Daftar" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" -msgstr "" +msgstr "Laporkan pesan" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "Laporkan postingan" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "Laporkan paket pemula" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "Laporkan konten ini" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "Laporkan feed ini" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "Laporkan daftar ini" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" -msgstr "" +msgstr "Laporkan pesan ini" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "Laporkan postingan ini" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "Laporkan paket pemula ini" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "Laporkan pengguna ini" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "Posting ulang" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "Posting ulang" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "Posting ulang atau kutip postingan" @@ -4111,7 +5184,7 @@ msgstr "Posting ulang atau kutip postingan" msgid "Reposted By" msgstr "Diposting Ulang Oleh" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "Diposting ulang oleh {0}" @@ -4119,15 +5192,20 @@ msgstr "Diposting ulang oleh {0}" #~ msgid "Reposted by <0/>" #~ msgstr "" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "Diposting ulang oleh <0><1/>" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "memposting ulang postingan Anda" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "Posting ulang postingan ini" @@ -4136,12 +5214,12 @@ msgstr "Posting ulang postingan ini" msgid "Request Change" msgstr "Ajukan Perubahan" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "Minta Kode" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "Wajibkan teks alt sebelum memposting" @@ -4149,7 +5227,7 @@ msgstr "Wajibkan teks alt sebelum memposting" msgid "Require email code to log into your account" msgstr "Gunakan kode email untuk masuk ke akun Anda" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "Diwajibkan untuk provider ini" @@ -4158,16 +5236,16 @@ msgstr "Diwajibkan untuk provider ini" msgid "Resend email" msgstr "Kirim ulang email" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "Kode reset" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "Kode Reset" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "Reset status onboarding" @@ -4175,37 +5253,38 @@ msgstr "Reset status onboarding" msgid "Reset password" msgstr "Reset kata sandi" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "Atur ulang status preferensi" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "Reset status onboarding" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "Reset status preferensi" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "Mencoba masuk kembali" #: src/view/com/util/error/ErrorMessage.tsx:57 #: src/view/com/util/error/ErrorScreen.tsx:74 msgid "Retries the last action, which errored out" -msgstr "Coba kembali tindakan terakhir, yang gagal" +msgstr "Mencoba kembali tindakan terakhir yang gagal" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -4216,7 +5295,8 @@ msgstr "Ulangi" #~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "Kembali ke halaman sebelumnya" @@ -4225,26 +5305,28 @@ msgid "Returns to home page" msgstr "Kembali ke beranda" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "Kembali ke halaman sebelumnya" #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Simpan" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "Simpan" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Simpan teks alt" @@ -4258,33 +5340,42 @@ msgstr "Simpan Perubahan" #: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" -msgstr "Simpan perubahan handle" +msgstr "Simpan perubahan panggilan" + +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "Simpan gambar" #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "Simpan potongan gambar" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 -msgid "Save to my feeds" -msgstr "Tambakan ke feed saya" +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "Simpan kode QR" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 +msgid "Save to my feeds" +msgstr "Simpan ke daftar feed saya" + +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" msgstr "Feed Tersimpan" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" -msgstr "" +msgstr "Disimpan ke rol kamera Anda" #: src/view/com/lightbox/Lightbox.tsx:81 #~ msgid "Saved to your camera roll." -#~ msgstr "Disimpan ke rol kamera Anda." +#~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" -msgstr "Disimpan ke feed Anda" +msgstr "Disimpan ke daftar feed Anda" #: src/view/com/modals/EditProfile.tsx:226 msgid "Saves any changes to your profile" @@ -4292,43 +5383,51 @@ msgstr "Simpan setiap perubahan pada profil Anda" #: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" -msgstr "Simpan perubahan handle ke {handle}" +msgstr "Simpan perubahan panggilan ke {handle}" #: src/view/com/modals/crop-image/CropImage.web.tsx:170 msgid "Saves image crop settings" msgstr "Menyimpan pengaturan pemangkasan gambar" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "Katakan halo!" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "Sains" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "Gulir ke atas" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "Cari" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "Cari \"{query}\"" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" msgstr "Cari \"{searchText}\"" @@ -4340,25 +5439,32 @@ msgstr "Cari semua postingan dari @{authorHandle} dengan tagar {displayTag}" msgid "Search for all posts with tag {displayTag}" msgstr "Cari semua postingan dengan tagar {displayTag}" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." -msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." +msgstr "Cari feed yang ingin Anda sarankan kepada orang lain." + +#: src/components/dms/NewChat.tsx:226 +#~ msgid "Search for someone to start a conversation with." +#~ msgstr "" -#: src/view/com/auth/LoggedOut.tsx:105 #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "Cari pengguna" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "Cari GIF" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" -msgstr "" +msgstr "Cari profil" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "Cari di Tenor" @@ -4372,7 +5478,7 @@ msgstr "Lihat postingan {truncatedTag}" #: src/components/TagMenu/index.web.tsx:83 msgid "See {truncatedTag} posts by user" -msgstr "Lihat postingan {truncatedTag} oleh pengguna" +msgstr "Lihat postingan {truncatedTag} dari pengguna" #: src/components/TagMenu/index.tsx:128 msgid "See <0>{displayTag} posts" @@ -4380,14 +5486,14 @@ msgstr "Lihat postingan <0>{displayTag}" #: src/components/TagMenu/index.tsx:187 msgid "See <0>{displayTag} posts by this user" -msgstr "Lihat postingan <0>{displayTag} oleh pengguna ini" +msgstr "Lihat postingan <0>{displayTag} dari pengguna ini" #: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "Lihat profil" +#: src/view/com/util/UserAvatar.tsx:402 +#~ msgid "See profile" +#~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "Lihat panduan ini" @@ -4401,7 +5507,7 @@ msgstr "Pilih {item}" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 msgid "Select a color" -msgstr "" +msgstr "Pilih warna" #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" @@ -4409,25 +5515,25 @@ msgstr "Pilih akun" #: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 msgid "Select an avatar" -msgstr "" +msgstr "Pilih avatar" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 msgid "Select an emoji" -msgstr "" +msgstr "Pilih emoji" #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "Pilih dari akun yang sudah ada" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" msgstr "Pilih GIF" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" msgstr "Pilih GIF \"{0}\"" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "Pilih bahasa" @@ -4440,85 +5546,96 @@ msgid "Select option {i} of {numItems}" msgstr "Pilih opsi {i} dari {numItems}" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "Pilih beberapa akun di bawah ini untuk diikuti" +#~ msgid "Select some accounts below to follow" +#~ msgstr "" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" -msgstr "" +msgstr "Pilih emoji {emojiName} sebagai avatar Anda" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "Pilih layanan moderasi untuk melaporkan" #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." -msgstr "Pilih layanan yang akan menampung data Anda." +msgstr "Pilih layanan yang akan menjadi tempat penyimpanan data Anda." #: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" -msgstr "Pilih feed topik untuk diikuti dari daftar di bawah ini" +#~ msgid "Select topical feeds to follow from the list below" +#~ msgstr "" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" +msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "Pilih apa yang ingin Anda lihat (atau tidak lihat), dan kami akan menangani sisanya." +#~ msgid "Select what you want to see (or not see), and we’ll handle the rest." +#~ msgstr "" -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." msgstr "Pilih bahasa yang ingin Anda sertakan dalam feed langganan Anda. Jika tidak memilih, maka semua bahasa akan ditampilkan." -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." -msgstr "Pilih bahasa untuk teks yang akan ditampilkan dalam aplikasi." +msgstr "Pilih bahasa untuk teks bawaan yang akan ditampilkan dalam aplikasi." -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "Pilih tanggal lahir Anda" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "Pilih minat Anda dari opsi di bawah ini" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." -msgstr "Pilih bahasa yang disukai untuk penerjemahaan feed Anda." +msgstr "Pilih bahasa yang disukai untuk terjemahan dalam feed Anda." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "Pilih feed algoritma utama Anda" +#~ msgid "Select your primary algorithmic feeds" +#~ msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" -msgstr "Pilih feed algoritma sekunder Anda" +#~ msgid "Select your secondary algorithmic feeds" +#~ msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" +msgstr "Kirimkan situs web yang bagus!" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Kirim Email Konfirmasi" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "Kirim email" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "Kirim Email" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "Kirim masukan" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" -msgstr "" +msgstr "Kirim pesan" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." +msgstr "Kirim postingan ke..." + +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "Kirim laporan" @@ -4531,7 +5648,12 @@ msgstr "Kirim laporan ke {0}" msgid "Send verification email" msgstr "Kirim email verifikasi" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "Kirim melalui pesan" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "Kirim email dengan kode konfirmasi untuk penghapusan akun" @@ -4539,7 +5661,7 @@ msgstr "Kirim email dengan kode konfirmasi untuk penghapusan akun" msgid "Server address" msgstr "Alamat server" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "Atur tanggal lahir" @@ -4547,25 +5669,25 @@ msgstr "Atur tanggal lahir" msgid "Set new password" msgstr "Buat kata sandi baru" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Pilih \"Tidak\" untuk menyembunyikan semua kutipan postingan dari feed Anda. Posting ulang tetap akan terlihat." -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Pilih \"Tidak\" untuk menyembunyikan semua balasan dari feed Anda." -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Pilih \"Tidak\" untuk menyembunyikan semua posting ulang dari feed Anda." -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." -msgstr "Pilih \"Ya\" untuk menampilkan balasan dalam bentuk utasan. Ini merupakan fitur eksperimental." +msgstr "Pilih \"Ya\" untuk menampilkan balasan dalam bentuk tampilan bersusun. Ini merupakan fitur eksperimental." -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." -msgstr "Pilih \"Ya\" untuk menampilkan beberapa sampel dari feed tersimpan di feed Mengikuti Anda. Ini merupakan fitur eksperimental" +msgstr "Pilih \"Ya\" untuk menampilkan beberapa sampel dari feed tersimpan di feed Mengikuti Anda. Ini merupakan fitur eksperimental." #: src/screens/Onboarding/Layout.tsx:48 msgid "Set up your account" @@ -4573,25 +5695,25 @@ msgstr "Atur akun Anda" #: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" -msgstr "Atur nama pengguna Bluesky" +msgstr "Mengatur nama pengguna Bluesky" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "Mengatur tema menjadi gelap" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "Mengatur tema menjadi terang" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "Mengatur tema sesuai pengaturan sistem" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "Mengatur tema gelap menjadi tema gelap" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "Mengatur tema gelap menjadi tema redup" @@ -4611,12 +5733,11 @@ msgstr "Mengatur aspek rasio gambar menjadi tinggi" msgid "Sets image aspect ratio to wide" msgstr "Mengatur aspek rasio gambar menjadi lebar" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "Pengaturan" @@ -4626,57 +5747,98 @@ msgstr "Aktivitas seksual atau ketelanjangan erotis." #: src/lib/moderation/useGlobalLabelStrings.ts:38 msgid "Sexually Suggestive" -msgstr "Mengarah ke Seksualitas" +msgstr "Bermuatan Seksual" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "Bagikan" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "Bagikan" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "Bagikan" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "Bagikan cerita seru!" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "Bagikan fakta menarik!" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "Tetap bagikan" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "Bagikan feed" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "Bagikan tautan" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "Bagikan Tautan" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "Dialog berbagi tautan" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "Bagikan kode QR" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "Bagikan paket pemula ini" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "Bagikan paket pemula ini dan bantu orang-orang untuk bergabung dengan komunitas Anda di Bluesky." + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "Bagikan feed favorit Anda!" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "Membagikan situs web tertaut" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "Tampilkan" #: src/view/screens/PreferencesFollowingFeed.tsx:68 #~ msgid "Show all replies" -#~ msgstr "Tampilkan semua balasan" +#~ msgstr "" -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" -msgstr "" +msgstr "Tampilkan teks alt" #: src/components/moderation/ScreenHider.tsx:169 #: src/components/moderation/ScreenHider.tsx:172 @@ -4692,82 +5854,90 @@ msgstr "Tampilkan lencana" msgid "Show badge and filter from feeds" msgstr "Tampilkan lencana dan saring dari feed" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" -msgstr "Tampilkan berikut ini mirip dengan {0}" +msgstr "Tampilkan pengguna lain yang serupa dengan {0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "Tampilkan balasan yang disembunyikan" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 msgid "Show less like this" -msgstr "" +msgstr "Kurangi postingan serupa" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "Tampilkan Lebih Lanjut" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" -msgstr "" +msgstr "Perbanyak postingan serupa" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "Tampilkan balasan yang dibisukan" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" -msgstr "Tampilkan Postingan dari Feed Saya" +msgstr "Tampilkan Postingan dari Feed Tersimpan Saya" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "Tampilkan Kutipan Postingan" #: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "Tampilkan kutipan postingan di feed Mengikuti" +#~ msgid "Show quote-posts in Following feed" +#~ msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "Tampilkan kutipan di Mengikuti" +#~ msgid "Show quotes in Following" +#~ msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "Tampilkan posting ulang di feed Mengikuti" +#~ msgid "Show re-posts in Following feed" +#~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "Tampilkan Balasan" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "Tampilkan balasan dari orang yang Anda ikuti sebelum balasan lainnya." #: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "Tampilkan balasan di Mengikuti" +#~ msgid "Show replies in Following" +#~ msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "Tampilkan balasan di feed Mengikuti" +#~ msgid "Show replies in Following feed" +#~ msgstr "" #: src/view/screens/PreferencesFollowingFeed.tsx:70 #~ msgid "Show replies with at least {value} {0}" -#~ msgstr "Tampilkan balasan dengan setidaknya {value} {0}" +#~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "Tampilkan Posting Ulang" #: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "Tampilkan posting ulang di Mengikuti" +#~ msgid "Show reposts in Following" +#~ msgstr "" -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "Tampilkan konten" #: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "Tampilkan pengguna" +#~ msgid "Show users" +#~ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" @@ -4785,17 +5955,17 @@ msgstr "Tampilkan postingan dari {0} di feed Anda" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4818,17 +5988,17 @@ msgstr "Masuk atau buat akun Anda untuk bergabung dalam percakapan!" msgid "Sign into Bluesky or create a new account" msgstr "Masuk ke Bluesky atau buat akun baru" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "Keluar" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4844,7 +6014,7 @@ msgstr "Daftar atau masuk untuk bergabung dalam obrolan" msgid "Sign-in Required" msgstr "Wajib Masuk" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "Masuk sebagai" @@ -4853,56 +6023,94 @@ msgstr "Masuk sebagai" msgid "Signed in as @{0}" msgstr "Masuk sebagai @{0}" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "mendaftar dengan paket pemula Anda" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "Mendaftar tanpa paket pemula" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "Lewati" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "Lewati tahap ini" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "Pengembang Perangkat Lunak" -#: src/screens/Messages/Conversation/index.tsx:89 -msgid "Something went wrong" +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" msgstr "" +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "Beberapa orang dapat membalas" + +#: src/screens/StarterPack/Wizard/index.tsx:203 +#~ msgid "Some subtitle" +#~ msgstr "" + +#: src/screens/Messages/Conversation/index.tsx:106 +msgid "Something went wrong" +msgstr "Ada yang tidak beres" + +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "Ada yang tidak beres, silakan coba lagi" + #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." -msgstr "Terjadi kesalahan, silakan coba lagi." +msgstr "Ada yang tidak beres, silakan coba lagi." -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "" + +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "Maaf! Sesi Anda telah berakhir. Silakan masuk lagi." -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "Urutkan Balasan" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "Urutkan balasan ke postingan yang sama berdasarkan:" #: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" -msgstr "Asal:" +#~ msgid "Source:" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" +msgstr "Sumber: <0>{0}" + +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "Spam" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "Spam; menyebut atau membalas secara berlebihan" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "Olahraga" @@ -4910,69 +6118,111 @@ msgstr "Olahraga" msgid "Square" msgstr "Persegi" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" +msgstr "Mulai obrolan baru" + +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "Mulai obrolan dengan {displayName}" + +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "Mulai mengobrol" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." msgstr "" +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "Paket Pemula" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "Paket pemula dari {0}" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "Paket pemula tidak valid" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "Paket Pemula" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." +msgstr "Paket pemula memudahkan Anda untuk berbagi feed dan akun favorit Anda dengan teman." + #: src/view/screens/Settings/index.tsx:862 #~ msgid "Status page" -#~ msgstr "Halaman status" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" -msgstr "" +msgstr "Halaman Status" #: src/screens/Signup/index.tsx:145 #~ msgid "Step" -#~ msgstr "Langkah" +#~ msgstr "" -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" -msgstr "" +msgstr "Langkah {0} dari {1}" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." -msgstr "Penyimpanan dihapus, Anda perlu memulai ulang aplikasi sekarang." +msgstr "Penyimpanan dibersihkan, Anda perlu memulai ulang aplikasi sekarang." -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "Kirim" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" -msgstr "Langganan" +msgstr "Berlangganan" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "Berlangganan @{0} untuk menggunakan label berikut:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "Berlangganan Pelabel" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "Langganan ke feed {0}" +#~ msgid "Subscribe to the {0} feed" +#~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "Berlangganan pelabel ini" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" -msgstr "Langganan ke daftar ini" +msgstr "Berlangganan ke daftar ini" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "Saran untuk Diikuti" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "Akun yang disarankan" +#: src/view/screens/Search/Search.tsx:425 +#~ msgid "Suggested Follows" +#~ msgstr "" + +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Disarankan untuk Anda" @@ -4981,7 +6231,7 @@ msgstr "Disarankan untuk Anda" msgid "Suggestive" msgstr "Sugestif" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -4990,21 +6240,25 @@ msgstr "Dukungan" #: src/components/dialogs/SwitchAccount.tsx:47 #: src/components/dialogs/SwitchAccount.tsx:50 msgid "Switch Account" -msgstr "Pindah Akun" +msgstr "Beralih Akun" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "Beralih ke {0}" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" -msgstr "Mengganti akun yang Anda masuki" +msgstr "Alihkan akun yang Anda gunakan untuk masuk" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "Sistem" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "Log sistem" @@ -5020,29 +6274,51 @@ msgstr "Menu tagar: {displayTag}" msgid "Tall" msgstr "Tinggi" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "Ketuk untuk melihat sepenuhnya" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "Teknologi" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "Ceritakan sebuah lelucon!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "Beritahu kami lebih lanjut" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "Ketentuan" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Ketentuan Layanan" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "Istilah yang digunakan melanggar standar komunitas" @@ -5050,31 +6326,41 @@ msgstr "Istilah yang digunakan melanggar standar komunitas" msgid "text" msgstr "teks" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Area input teks" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "Terima kasih. Laporan Anda telah terkirim." #: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" -msgstr "Yang berisi konten berikut:" +msgstr "Berisi hal berikut:" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." -msgstr "Handle telah terpakai." +msgstr "Panggilan telah terpakai." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "Tidak dapat menemukan paket pemula." + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." -msgstr "Akun ini dapat berinteraksi kembali dengan Anda setelah pemblokiran dibuka." +msgstr "Akun ini dapat berinteraksi kembali dengan Anda setelah blokir dibuka." #: src/components/moderation/ModerationDetailsDialog.tsx:127 #~ msgid "the author" -#~ msgstr "pembuat" +#~ msgstr "" #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" @@ -5084,24 +6370,33 @@ msgstr "Panduan Komunitas telah dipindahkan ke <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "Kebijakan Hak Cipta telah dipindahkan ke <0/>" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 -msgid "The feed has been replaced with Discover." +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 -msgid "The following labels were applied to your account." -msgstr "Label berikut ini telah diterapkan pada akun Anda." +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "Dapatkan pengalaman yang lebih baik dalam aplikasi. Unduh Bluesky sekarang dan kami akan melanjutkan dari langkah terakhir yang Anda tinggalkan." -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/view/com/posts/FeedShutdownMsg.tsx:67 +msgid "The feed has been replaced with Discover." +msgstr "Feed telah diganti dengan Discover." + +#: src/components/moderation/LabelsOnMeDialog.tsx:66 +msgid "The following labels were applied to your account." +msgstr "Label berikut telah diterapkan pada akun Anda." + +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." -msgstr "Label berikut ini telah diterapkan pada konten Anda." +msgstr "Label berikut telah diterapkan pada konten Anda." #: src/screens/Onboarding/Layout.tsx:58 msgid "The following steps will help customize your Bluesky experience." msgstr "Langkah berikut akan membantu menyesuaikan pengalaman Bluesky Anda." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Postingan mungkin telah dihapus." @@ -5109,6 +6404,10 @@ msgstr "Postingan mungkin telah dihapus." msgid "The Privacy Policy has been moved to <0/>" msgstr "Kebijakan Privasi telah dipindahkan ke <0/>" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "Paket pemula yang ingin Anda lihat tidak valid. Anda dapat menghapus paket pemula ini." + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "Formulir dukungan telah dipindahkan. Jika Anda memerlukan bantuan, silakan <0/> atau kunjungi {HELP_DESK_URL} untuk menghubungi kami." @@ -5118,51 +6417,56 @@ msgid "The Terms of Service have been moved to" msgstr "Ketentuan Layanan telah dipindahkan ke" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" -msgstr "Ada banyak feed untuk dicoba:" +#~ msgid "There are many feeds to try:" +#~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." +msgstr "Tidak ada batasan waktu untuk penonaktifan akun, Anda bisa kembali kapan saja." + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Ada masalah saat menghubungi server, silakan periksa koneksi internet Anda dan coba lagi." -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Ada masalah saat menghapus feed ini. Periksa koneksi internet Anda dan coba lagi." #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." -msgstr "Ada masalah saat memperbarui feed Anda, periksa koneksi internet Anda dan coba lagi." +msgstr "Ada masalah saat memperbarui feed Anda, periksa koneksi internet dan coba lagi." -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." msgstr "Ada masalah saat menghubungkan ke Tenor." #: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" +#~ msgid "There was an issue connecting to the chat." +#~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "Ada masalah saat menghubungi server" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "Ada masalah saat menghubungi server Anda" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Ada masalah saat mengambil notifikasi. Ketuk di sini untuk mencoba lagi." -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Ada masalah saat mengambil postingan. Ketuk di sini untuk mencoba lagi." @@ -5170,73 +6474,87 @@ msgstr "Ada masalah saat mengambil postingan. Ketuk di sini untuk mencoba lagi." msgid "There was an issue fetching the list. Tap here to try again." msgstr "Ada masalah saat mengambil daftar. Ketuk di sini untuk mencoba lagi." -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Ada masalah saat mengambil daftar Anda. Ketuk di sini untuk mencoba lagi." -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Ada masalah saat mengirimkan laporan. Silakan periksa koneksi internet Anda." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "Ada masalah saat mensinkronkan preferensi Anda dengan server" +#~ msgid "There was an issue syncing your preferences with the server" +#~ msgstr "" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" -msgstr "Ada masalah dengan pengambilan kata sandi aplikasi Anda" +msgstr "Ada masalah saat pengambilan kata sandi aplikasi Anda" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "Ada masalah! {0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "Ada masalah. Periksa koneksi internet Anda dan coba lagi." -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" -msgstr "Sepertinya ada masalah pada aplikasi. Harap beri tahu kami jika Anda mengalaminya!" +msgstr "Ada masalah tak terduga dalam aplikasi. Beri tahu kami jika hal ini terjadi pada Anda!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "Sedang ada lonjakan pengguna baru di Bluesky! Kami akan mengaktifkan akun Anda secepat mungkin." #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "Berikut adalah akun populer yang mungkin Anda sukai:" +#~ msgid "These are popular accounts you might like:" +#~ msgstr "" #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" -msgstr "Ini {screenDescription} telah ditandai:" +msgstr "{screenDescription} ini telah ditandai:" #: src/components/moderation/ScreenHider.tsx:111 msgid "This account has requested that users sign in to view their profile." msgstr "Akun ini mewajibkan pengguna untuk masuk agar bisa melihat profilnya." -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "Akun ini diblokir oleh satu atau lebih daftar moderasi Anda. Untuk membuka blokir, silakan kunjungi daftar tersebut secara langsung dan hapus pengguna ini." + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "Banding ini akan dikirim ke <0>{0}." +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." +msgstr "Banding ini akan dikirimkan ke layanan moderasi Bluesky." + +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "Obrolan ini telah terputus" + #: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." -msgstr "" +#~ msgid "This chat was disconnected due to a network error." +#~ msgstr "" #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." @@ -5251,69 +6569,83 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Konten ini disediakan oleh {0}. Apakah Anda ingin mengaktifkan media eksternal?" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Konten ini tidak tersedia karena salah satu pengguna yang terlibat telah memblokir pengguna lainnya." -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "Konten ini tidak dapat dilihat tanpa akun Bluesky." -#: src/view/screens/Settings/ExportCarDialog.tsx:94 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." -msgstr "Fitur ini masih dalam versi beta. Anda dapat membaca lebih lanjut tentang ekspor repositori di <0>blogpost ini." +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "Percakapan ini dilakukan dengan akun yang telah dihapus atau dinonaktifkan. Tekan untuk opsi lain." -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/screens/Settings/ExportCarDialog.tsx:93 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +msgstr "Fitur ini masih dalam versi beta. Anda dapat membaca lebih lanjut tentang ekspor repositori di <0>postingan blog ini." + +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Feed ini sedang menerima terlalu banyak trafik dan sementara tidak tersedia. Silakan coba lagi nanti." #: src/screens/Profile/Sections/Feed.tsx:59 #: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "Feed ini kosong!" +#: src/view/screens/ProfileList.tsx:729 +#~ msgid "This feed is empty!" +#~ msgstr "" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." -msgstr "Feed ini kosong! Anda mungkin perlu mengikuti lebih banyak pengguna atau menyesuaikan pengaturan bahasa Anda." +msgstr "Feed ini kosong! Anda mungkin perlu mengikuti lebih banyak pengguna atau menyesuaikan pengaturan bahasa." -#: src/view/com/posts/FeedShutdownMsg.tsx:97 +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." +msgstr "Feed ini kosong." + +#: src/view/com/posts/FeedShutdownMsg.tsx:99 msgid "This feed is no longer online. We are showing <0>Discover instead." -msgstr "" +msgstr "Feed ini tidak lagi online. Kami akan menampilkan <0>Discover sebagai gantinya." #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." -msgstr "Informasi ini tidak akan dibagikan ke pengguna lainnya." +msgstr "Informasi ini tidak akan dibagikan ke pengguna lain." #: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." -msgstr "Ini penting jika Anda butuh untuk mengganti email atau reset kata sandi Anda nantinya." +msgstr "Ini penting dilakukan untuk berjaga-jaga jika Anda perlu mengubah email atau mengatur ulang kata sandi." #: src/components/moderation/ModerationDetailsDialog.tsx:124 #~ msgid "This label was applied by {0}." -#~ msgstr "Label ini diterapkan oleh {0}." +#~ msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:127 msgid "This label was applied by <0>{0}." -msgstr "" +msgstr "Label ini diterapkan oleh <0>{0}." #: src/components/moderation/ModerationDetailsDialog.tsx:125 msgid "This label was applied by the author." -msgstr "" +msgstr "Label ini diterapkan oleh penulis." #: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" -msgstr "" +#~ msgid "This label was applied by you" +#~ msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." +msgstr "Label ini diterapkan oleh Anda." + +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." -msgstr "Pelabel ini belum menyatakan label yang dia publikasikan, dan mungkin tidak aktif." +msgstr "Pelabel ini belum menyatakan label apa yang diterbitkannya, dan mungkin tidak aktif." #: src/view/com/modals/LinkWarning.tsx:72 msgid "This link is taking you to the following website:" -msgstr "Tautan ini akan membawa Anda ke website:" +msgstr "Tautan ini akan membawa Anda ke situs web berikut:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "Daftar ini kosong!" @@ -5321,24 +6653,24 @@ msgstr "Daftar ini kosong!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "Layanan moderasi ini tidak tersedia. Lihat detail lebih lanjut di bawah. Jika masalah berlanjut, hubungi kami." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "Nama ini sudah digunakan" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "Postingan ini telah dihapus." -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Postingan ini hanya dapat dilihat oleh pengguna yang masuk. Ini tidak akan terlihat bagi pengguna yang belum masuk." -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "Postingan ini akan disembunyikan dari feed." -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Profil ini hanya dapat dilihat oleh pengguna yang masuk. Ini tidak akan terlihat bagi pengguna yang belum masuk." @@ -5354,14 +6686,18 @@ msgstr "Ini akan membuat catatan domain di:" msgid "This user doesn't have any followers." msgstr "Pengguna ini tidak memiliki pengikut." +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "Pengguna ini telah memblokir Anda" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "Pengguna ini telah memblokir Anda. Anda tidak dapat melihat konten mereka." #: src/lib/moderation/useGlobalLabelStrings.ts:30 msgid "This user has requested that their content only be shown to signed-in users." -msgstr "Pengguna ini telah meminta agar kontennya hanya ditampilkan ke pengguna yang masuk." +msgstr "Pengguna ini telah meminta agar kontennya hanya ditampilkan kepada pengguna yang sudah masuk." #: src/components/moderation/ModerationDetailsDialog.tsx:55 msgid "This user is included in the <0>{0} list which you have blocked." @@ -5371,42 +6707,50 @@ msgstr "Pengguna ini termasuk dalam daftar <0>{0} yang telah Anda blokir" msgid "This user is included in the <0>{0} list which you have muted." msgstr "Pengguna ini termasuk dalam daftar <0>{0} yang telah Anda bisukan" +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "Pengguna ini masih baru. Tekan untuk informasi lebih lanjut tentang kapan ia bergabung." + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "Pengguna ini tidak mengikuti siapa pun." #: src/view/com/modals/SelfLabel.tsx:137 #~ msgid "This warning is only available for posts with media attached." -#~ msgstr "Peringatan ini hanya tersedia untuk postingan dengan lampiran media." +#~ msgstr "" #: src/components/dialogs/MutedWords.tsx:283 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Ini akan menghapus {0} dari daftar kata yang Anda bisukan. Anda tetap dapat menambahkannya lagi nanti." -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" -msgstr "Preferensi utasan" +msgstr "Preferensi utas" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" -msgstr "Preferensi Utasan" +msgstr "Preferensi Utas" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "Pengaturan utas diperbarui" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" -msgstr "Mode Utasan" +msgstr "Mode Bersusun" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "Preferensi Utas" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." -msgstr "Untuk menonaktifkan metode 2FA email, silakan verifikasi akses Anda ke alamat email." +msgstr "Untuk menonaktifkan metode 2FA melalui email, silakan verifikasi akses Anda ke alamat email tersebut." -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." -msgstr "" +msgstr "Untuk melaporkan percakapan, silakan laporkan salah satu pesannya melalui laman percakapan. Ini akan membantu moderator kami memahami konteks masalah Anda." #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" @@ -5416,16 +6760,16 @@ msgstr "Kepada siapa Anda ingin mengirimkan laporan ini?" msgid "Toggle between muted word options." msgstr "Beralih antara opsi kata yang dibisukan." -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "Beralih dropdown" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "Beralih untuk mengaktifkan atau menonaktifkan konten dewasa" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "Teratas" @@ -5433,10 +6777,12 @@ msgstr "Teratas" msgid "Transformations" msgstr "Transformasi" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "Terjemahkan" @@ -5445,181 +6791,205 @@ msgctxt "action" msgid "Try again" msgstr "Coba lagi" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "TV" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "Autentikasi dua faktor" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" -msgstr "" +msgstr "Ketik pesan Anda di sini" #: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "Tipe:" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "Buka blokir daftar" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "Bunyikan daftar" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Tidak dapat terhubung ke layanan. Mohon periksa koneksi internet Anda." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "Tidak dapat menghapus" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "Buka blokir" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "Buka blokir" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "Buka blokir akun" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "Buka blokir Akun" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" -msgstr "Buka blokir Akun?" +msgstr "Buka Blokir Akun?" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "Batalkan posting ulang" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" -msgstr "Berhenti mengikuti" +msgstr "Berhenti ikuti" #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Unfollow" msgstr "Batal ikuti" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" -msgstr "Berhenti mengikuti {0}" +msgstr "Berhenti ikuti {0}" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" -msgstr "Batal Ikuti Akun" +msgstr "Berhenti Ikuti Akun" #: src/view/com/util/post-ctrls/PostCtrls.tsx:197 #~ msgid "Unlike" -#~ msgstr "Tidak suka" +#~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "Batalkan suka feed ini" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "Bunyikan" #: src/components/TagMenu/index.web.tsx:104 msgid "Unmute {truncatedTag}" -msgstr "Batal bisukan {truncatedTag}" +msgstr "Bunyikan {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "Bunyikan Akun" #: src/components/TagMenu/index.tsx:208 msgid "Unmute all {displayTag} posts" -msgstr "Batal bisukan semua postingan {displayTag}" +msgstr "Bunyikan semua postingan {displayTag}" + +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" +msgstr "Bunyikan percakapan" #: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" -msgstr "" +#~ msgid "Unmute notifications" +#~ msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" -msgstr "Bunyikan utasan" +msgstr "Bunyikan utas" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "Lepas sematan" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" -msgstr "Batal sematkan dari beranda" +msgstr "Lepaskan sematan dari beranda" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "Lepas sematan daftar moderasi" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "Dilepaskan dari daftar feed Anda" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Berhenti langganan" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "Berhenti langganan pelabel ini" #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" +#~ msgid "Unwanted sexual content" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 +#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:85 msgid "Unwanted Sexual Content" msgstr "Konten Seksual yang Tidak Diinginkan" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "Perbarui {displayName} dalam Daftar" #: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" -msgstr "Ubah ke {handle}" +msgstr "Perbarui ke {handle}" #: src/screens/Login/SetNewPasswordForm.tsx:186 msgid "Updating..." msgstr "Memperbarui..." -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" -msgstr "" +msgstr "Unggah foto saja" #: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Unggah berkas teks ke:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "Unggah dari Kamera" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "Unggah dari Berkas" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -5629,9 +6999,9 @@ msgstr "Unggah dari Pustaka" msgid "Use a file on your server" msgstr "Gunakan berkas di server Anda" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." -msgstr "Gunakan kata sandi aplikasi untuk masuk ke klien Bluesky lainnya tanpa memberikan akses penuh ke akun atau kata sandi Anda." +msgstr "Gunakan kata sandi aplikasi untuk masuk ke klien Bluesky lain tanpa memberikan akses penuh ke akun atau kata sandi Anda." #: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" @@ -5639,7 +7009,7 @@ msgstr "Gunakan bsky.social sebagai penyedia hosting" #: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" -msgstr "Gunakan layanan bawaan" +msgstr "Gunakan penyedia panggilan bawaan" #: src/view/com/modals/InAppBrowserConsent.tsx:56 #: src/view/com/modals/InAppBrowserConsent.tsx:58 @@ -5653,34 +7023,38 @@ msgstr "Gunakan peramban bawaan saya" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 msgid "Use recommended" -msgstr "" +msgstr "Gunakan yang direkomendasikan" #: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "Gunakan panel DNS" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." -msgstr "Gunakan ini untuk masuk ke aplikasi lain dengan handle Anda." +msgstr "Gunakan sandi ini untuk masuk ke aplikasi lain bersama dengan panggilan Anda." #: src/view/com/modals/InviteCodes.tsx:201 msgid "Used by:" msgstr "Digunakan oleh:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "Pengguna Diblokir" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" -msgstr "Pengguna Diblokir oleh \"{0}\"" +msgstr "Diblokir oleh \"{0}\"" + +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "Pengguna diblokir oleh daftar" #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "Pengguna Diblokir oleh Daftar" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "Pengguna Memblokir Anda" @@ -5688,46 +7062,53 @@ msgstr "Pengguna Memblokir Anda" msgid "User Blocks You" msgstr "Pengguna Memblokir Anda" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" -msgstr "Daftar pengguna oleh {0}" +msgstr "Daftar pengguna {0}" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" -msgstr "Daftar pengguna oleh<0/>" +msgstr "Daftar pengguna oleh <0/>" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" -msgstr "Daftar pengguna oleh Anda" +msgstr "Daftar pengguna Anda" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "Daftar pengguna dibuat" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "Daftar pengguna diperbarui" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "Daftar Pengguna" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "Nama pengguna atau alamat email" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "Pengguna" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "pengguna yang diikuti <0/>" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "Pengguna yang saya ikuti" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "Pengguna di \"{0}\"" @@ -5741,21 +7122,21 @@ msgstr "Nilai:" #: src/view/com/modals/ChangeHandle.tsx:510 #~ msgid "Verify {0}" -#~ msgstr "Verifikasi {0}" +#~ msgstr "" #: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" -msgstr "" +msgstr "Verifikasi DNS" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "Verifikasi email" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "Verifikasi email saya" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "Verifikasi Email Saya" @@ -5766,7 +7147,7 @@ msgstr "Verifikasi Email Baru" #: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" -msgstr "" +msgstr "Verifikasi Berkas" #: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" @@ -5774,33 +7155,46 @@ msgstr "Verifikasi Email Anda" #: src/view/screens/Settings/index.tsx:852 #~ msgid "Version {0}" -#~ msgstr "Versi {0}" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" -msgstr "" +msgstr "Versi {appVersion} {bundleInfo}" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "Permainan Video" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "Lihat avatar {0}" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "Lihat profil {0}" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "Lihat profil pengguna yang diblokir" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "Lihat entri debug" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "Lihat detail" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "Lihat detail untuk melaporkan pelanggaran hak cipta" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "Lihat utas lengkap" @@ -5808,13 +7202,15 @@ msgstr "Lihat utas lengkap" msgid "View information about these labels" msgstr "Lihat informasi tentang label ini" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Lihat profil" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "Lihat avatar" @@ -5822,19 +7218,23 @@ msgstr "Lihat avatar" msgid "View the labeling service provided by @{0}" msgstr "Lihat layanan pelabelan yang disediakan oleh @{0}" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "Lihat pengguna yang menyukai feed ini" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "Lihat daftar feed Anda dan jelajahi lebih lanjut" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" -msgstr "Kunjungi Halaman" +msgstr "Kunjungi Situs" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Peringatkan" @@ -5848,19 +7248,19 @@ msgstr "Peringatkan konten dan saring dari feed" #: src/screens/Hashtag.tsx:210 msgid "We couldn't find any results for that hashtag." -msgstr "Kami tidak dapat menemukan hasil apa pun untuk tagar tersebut." +msgstr "Kami tidak menemukan hasil apa pun untuk tagar tersebut." -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" -msgstr "" +msgstr "Kami tidak dapat memuat percakapan ini" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Kami perkirakan {estimatedTime} hingga akun Anda siap." -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" -msgstr "Semoga Anda senang dan betah di sini. Ingat, Bluesky adalah:" +msgstr "Semoga Anda senang dan betah di sini. Ingat, Bluesky itu:" #: src/view/com/posts/DiscoverFallbackHeader.tsx:29 msgid "We ran out of posts from your follows. Here's the latest from <0/>." @@ -5871,65 +7271,89 @@ msgid "We recommend avoiding common words that appear in many posts, since it ca msgstr "Sebaiknya hindari kata-kata umum yang muncul dalam postingan, karena dapat mengakibatkan tidak adanya postingan yang ditampilkan." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "Kami merekomendasikan feed \"Discover\" kami:" +#~ msgid "We recommend our \"Discover\" feed:" +#~ msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "Kami tidak dapat memuat preferensi tanggal lahir Anda. Silakan coba lagi." -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "Kami tidak dapat memuat pelabel yang Anda konfigurasikan saat ini." -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Sepertinya ada masalah koneksi. Mohon coba lagi untuk melanjutkan pengaturan akun Anda. Jika terus gagal, Anda dapat melewati langkah ini." -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "Kami akan memberi tahu Anda ketika akun Anda siap." -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "Kami akan menggunakan ini untuk menyesuaikan pengalaman Anda." -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "Kami mengalami masalah jaringan, coba lagi" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "Kami sangat senang Anda bergabung dengan kami!" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Mohon maaf, kami tidak dapat menyelesaikan daftar ini. Jika hal ini terus berlanjut, silakan hubungi pembuat daftar, @{handleOrDid}." #: src/components/dialogs/MutedWords.tsx:229 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." -msgstr "Mohon maaf, untuk saat ini kami tidak dapat memuat kata yang Anda dibisukan. Silakan coba lagi." +msgstr "Mohon maaf, untuk saat ini kami tidak dapat memuat kata yang Anda bisukan. Silakan coba lagi." -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Maaf, pencarian Anda tidak dapat dilakukan. Mohon coba lagi dalam beberapa menit." -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "Kami mohon maaf! Postingan yang Anda balas telah dihapus." + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Maaf! Kami tidak dapat menemukan halaman yang Anda cari." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." -msgstr "Maaf, Anda hanya dapat berlangganan sepuluh pelabel dan Anda telah mencapai batas tersebut." +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 +#~ msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#~ msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "Maaf! Anda hanya dapat berlangganan dua puluh pelabel, dan Anda telah mencapai batas tersebut." + +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" +msgstr "Selamat datang kembali!" #: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 #~ msgid "Welcome to <0>Bluesky" #~ msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "Selamat datang, kawan!" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" msgstr "Apa saja minat Anda?" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "Apa nama paket pemula Anda?" + #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "Apa kabar?" @@ -5939,38 +7363,55 @@ msgstr "Bahasa apa yang digunakan di postingan ini?" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:77 msgid "Which languages would you like to see in your algorithmic feeds?" -msgstr "Bahasa apa yang ingin Anda lihat di feed Anda?" +msgstr "Bahasa apa yang ingin Anda lihat di feed algoritmik Anda?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "Siapa yang dapat mengirim pesan kepada Anda?" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "Siapa yang dapat membalas" -#: src/screens/Home/NoFeedsPinned.tsx:92 -msgid "Whoops!" -msgstr "" +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "Dialog siapa yang dapat membalas" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "Siapa yang dapat membalas?" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 +msgid "Whoops!" +msgstr "Waduh!" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "Mengapa konten ini perlu ditinjau?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "Mengapa feed ini perlu ditinjau?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "Mengapa daftar ini perlu ditinjau?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" -msgstr "" +msgstr "Mengapa pesan ini perlu ditinjau?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "Mengapa postingan ini perlu ditinjau?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "Mengapa paket pemula ini perlu ditinjau?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "Mengapa pengguna ini perlu ditinjau?" @@ -5978,39 +7419,61 @@ msgstr "Mengapa pengguna ini perlu ditinjau?" msgid "Wide" msgstr "Lebar" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" -msgstr "" +msgstr "Tulis pesan" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "Tulis postingan" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "Tulis balasan Anda" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "Penulis" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "Ya" -#: src/components/dms/MessageItem.tsx:158 -msgid "Yesterday, {time}" -msgstr "" +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "Ya, nonaktifkan" -#: src/screens/Deactivated.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "Ya, hapus paket pemula ini" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "Ya, aktifkan kembali akun saya" + +#: src/components/dms/MessageItem.tsx:182 +msgid "Yesterday, {time}" +msgstr "Kemarin, {time}" + +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "Anda" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "Anda" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "Anda sedang dalam antrian." @@ -6018,58 +7481,82 @@ msgstr "Anda sedang dalam antrian." msgid "You are not following anyone." msgstr "Anda tidak mengikuti siapa pun." -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." -msgstr "Anda juga dapat menemukan Feed Khusus baru untuk diikuti." +msgstr "Anda juga bisa menemukan Feed Kustom baru untuk diikuti." + +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "Anda juga dapat menonaktifkan akun untuk sementara, dan mengaktifkannya kembali kapan saja." #: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." -msgstr "Anda dapat mengubah pengaturan ini nanti." +#~ msgid "You can change these settings later." +#~ msgstr "" + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "Anda dapat mengubah ini kapan saja." + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "Anda dapat melanjutkan percakapan yang sedang berlangsung terlepas dari pengaturan mana yang Anda pilih." #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." msgstr "Sekarang Anda dapat masuk dengan kata sandi baru." +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "Anda dapat mengaktifkan kembali akun Anda untuk melanjutkan masuk. Profil dan postingan Anda akan terlihat oleh pengguna lain." + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "Anda tidak memiliki pengikut." +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "Anda tidak mengikuti satu pun pengguna yang mengikuti @{name}." + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Anda belum memiliki kode undangan! Kami akan mengirimkan kode saat Anda sudah sedikit lama di Bluesky." -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." msgstr "Anda tidak memiliki feed yang disematkan." #: src/view/screens/Feeds.tsx:477 #~ msgid "You don't have any saved feeds!" -#~ msgstr "Anda tidak memiliki feed yang disimpan!" +#~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." msgstr "Anda tidak memiliki feed yang disimpan." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Anda telah memblokir atau diblokir oleh penulis ini." +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "Anda telah memblokir pengguna ini" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "Anda telah memblokir pengguna ini. Anda tidak dapat melihat konten mereka." #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Anda telah memasukkan kode yang tidak valid. Seharusnya terlihat seperti XXXXX-XXXXX." -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "Anda telah menyembunyikan postingan ini" @@ -6078,68 +7565,104 @@ msgid "You have hidden this post." msgstr "Anda telah menyembunyikan postingan ini." #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "Anda telah membisukan akun ini." -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "Anda telah membisukan pengguna ini" -#: src/view/com/feeds/ProfileFeedgens.tsx:144 -msgid "You have no feeds." -msgstr "Anda tidak punya feed." +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "Anda belum memiliki percakapan. Mulai sekarang!" -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/feeds/ProfileFeedgens.tsx:137 +msgid "You have no feeds." +msgstr "Anda tidak memiliki feed." + +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." -msgstr "Anda tidak punya daftar." +msgstr "Anda tidak memiliki daftar." #: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "Anda belum memiliki pesan. Mulailah percakapan dengan seseorang!" +#~ msgid "You have no messages yet. Start a conversation with someone!" +#~ msgstr "" #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." -msgstr "Anda belum memblokir akun apa pun. Untuk memblokir akun, buka profilnya dan pilih \"Blokir akun\" dari menu di akunnya." +msgstr "Anda belum memblokir akun apa pun. Untuk memblokir akun, buka profil mereka dan pilih \"Blokir akun\" dari menu di akunnya." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Anda belum membuat kata sandi aplikasi. Anda dapat membuatnya dengan menekan tombol di bawah ini." #: src/view/screens/ModerationMutedAccounts.tsx:133 msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." -msgstr "Anda belum membisukan akun apa pun. Untuk membisukan akun, buka profilnya dan pilih \"Bisukan akun\" dari menu di akunnya." +msgstr "Anda belum membisukan akun apa pun. Untuk membisukan akun, buka profil mereka dan pilih \"Bisukan akun\" dari menu di akunnya." + +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "Anda telah mencapai akhir" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "Anda belum membuat paket pemula!" #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" -msgstr "Anda belum membisukan kata atau tag apa pun" +msgstr "Anda belum membisukan kata atau tagar apa pun" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." -msgstr "" +msgstr "Anda dapat mengajukan banding atas label non-mandiri jika Anda merasa label tersebut ditempatkan secara tidak tepat." -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." -msgstr "Anda dapat mengajukan banding atas label ini jika Anda merasa label tersebut ditempatkan secara tidak tepat." +msgstr "Anda dapat mengajukan banding atas label berikut jika Anda merasa label tersebut ditempatkan secara tidak tepat." + +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "Anda hanya boleh menambahkan maksimal 50 feed" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "Anda hanya boleh menambahkan maksimal 50 profil" #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "Anda harus berusia 13 tahun atau lebih untuk mendaftar." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" -msgstr "Anda harus berusia 18 tahun atau lebih untuk mengaktifkan konten dewasa" +#~ msgid "You must be 18 years or older to enable adult content" +#~ msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." +msgstr "Anda harus mengikuti setidaknya tujuh orang sebelum membuat paket pemula." + +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "Anda harus memberikan akses ke pustaka foto Anda untuk menyimpan kode QR" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "Anda harus memberikan akses ke pustaka foto Anda untuk menyimpan gambar ini." + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" -msgstr "Anda harus memilih setidaknya satu pelabel untuk laporan" +msgstr "Anda harus memilih setidaknya satu pelabel untuk sebuah laporan" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "Anda telah menonaktifkan @{0} sebelumnya." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "Anda tidak akan lagi menerima notifikasi untuk utas ini" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "Anda sekarang akan menerima notifikasi untuk utas ini" @@ -6147,60 +7670,98 @@ msgstr "Anda sekarang akan menerima notifikasi untuk utas ini" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Anda akan menerima email berisikan \"kode reset\". Masukkan kode tersebut di sini, lalu masukkan kata sandi baru." -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" -msgstr "" +msgstr "Anda: {0}" + +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "Anda: {defaultEmbeddedContentMessage}" + +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "Anda: {short}" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "Anda akan mengikuti pengguna dan feed yang disarankan setelah selesai membuat akun!" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "Anda akan mengikuti pengguna yang disarankan setelah selesai membuat akun!" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "Anda akan mengikuti pengguna ini dan {0} lainnya" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "Anda akan otomatis mengikuti para pengguna ini" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" +msgstr "Dapatkan informasi terbaru melalui feed berikut" #: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "Anda memiliki kendali" +#~ msgid "You're in control" +#~ msgstr "" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "Anda sedang dalam antrian" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "Anda masuk menggunakan Sandi Aplikasi. Mohon gunakan kata sandi utama untuk melanjutkan penonaktifan akun Anda." + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "Anda siap untuk mulai!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." -msgstr "Anda telah memilih untuk menyembunyikan kata atau tag di dalam postingan ini." +msgstr "Anda telah memilih untuk menyembunyikan kata atau tagar dalam postingan ini." -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." -msgstr "Anda telah mencapai akhir feed Anda! Temukan beberapa akun lain untuk diikuti." +msgstr "Anda telah mencapai bagian akhir feed! Temukan lebih banyak akun lain untuk diikuti." -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "Akun Anda" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "Akun Anda telah dihapus" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." -msgstr "Semua catatan data publik dalam repositori akun Anda dapat diunduh sebagai file \"CAR\". Tidak termasuk konten media seperti gambar dan data pribadi yang harus diunduh secara terpisah." +msgstr "Semua catatan data publik dalam repositori akun Anda dapat diunduh sebagai berkas \"CAR\". Tidak termasuk konten media seperti gambar dan data pribadi yang harus diunduh secara terpisah." -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "Tanggal lahir Anda" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "Obrolan Anda telah dinonaktifkan" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "Pilihan Anda akan disimpan, tetapi dapat diubah nanti di pengaturan." #: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "Feed bawaan Anda adalah \"Mengikuti\"" +#~ msgid "Your default feed is \"Following\"" +#~ msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "Email Anda tidak valid." @@ -6212,46 +7773,54 @@ msgstr "Alamat email Anda telah diperbarui namun belum diverifikasi. Silakan ver msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Alamat email Anda belum diverifikasi. Ini merupakan langkah keamanan penting yang kami rekomendasikan." -#: src/view/com/posts/FollowingEmptyState.tsx:47 +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:43 msgid "Your following feed is empty! Follow more users to see what's happening." msgstr "Feed mengikuti Anda kosong! Ikuti lebih banyak pengguna untuk melihat apa yang terjadi." -#: src/screens/Signup/StepHandle.tsx:73 +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" -msgstr "Handle lengkap Anda akan menjadi" +msgstr "Panggilan lengkap Anda akan menjadi" #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" -msgstr "Handle lengkap Anda akan menjadi <0>@{0}" +msgstr "Panggilan lengkap Anda akan menjadi <0>@{0}" #: src/components/dialogs/MutedWords.tsx:220 msgid "Your muted words" msgstr "Kata yang Anda bisukan" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "Kata sandi Anda telah berhasil diubah!" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "Postingan Anda telah dipublikasikan" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." -msgstr "Postingan, suka, dan blokir Anda bersifat publik. Bisukan bersifat privat." +msgstr "Postingan, suka, dan pemblokiran Anda bersifat publik. Sedangkan pembisuan bersifat privat." -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "Profil Anda" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "Profil, postingan, feed, dan daftar Anda tidak akan terlihat lagi oleh pengguna Bluesky lain. Anda dapat mengaktifkan kembali kapan saja dengan cara masuk ke akun." + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "Balasan Anda telah dipublikasikan" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" -msgstr "" +msgstr "Laporan Anda akan dikirim ke Layanan Moderasi Bluesky" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" -msgstr "Handle Anda" +msgstr "Panggilan Anda" diff --git a/src/locale/locales/it/messages.po b/src/locale/locales/it/messages.po index f8468a5077..6fd20fe052 100644 --- a/src/locale/locales/it/messages.po +++ b/src/locale/locales/it/messages.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Italian localization\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-05 11:44+0530\n" -"PO-Revision-Date: 2024-04-24 12:37+0200\n" +"PO-Revision-Date: 2024-05-31 06:45+0200\n" "Last-Translator: Gabriella Nonino \n" "Language-Team: Gabriella Nonino\n" "Language: it\n" @@ -11,14 +11,18 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.4.2\n" +"X-Generator: Poedit 3.4.4\n" "X-Poedit-SourceCharset: UTF-8\n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(no email)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" @@ -26,36 +30,41 @@ msgstr "" #~ msgstr "{0, plural, one {# codice d'invito disponibile} other {# codici d'inviti disponibili}}" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" -msgstr "" +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" +msgstr "{0, plural, one {# un etichetta è stata applicata a questo account} other {# etichette sono stata applicate a questo account}}" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" -msgstr "" +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" +msgstr "{0, plural, one {# un etichetta è stata applicata a questo contenuto} other {# etichette sono state applicate a questo contenuto}}" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" -msgstr "" +msgstr "{0, plural, one {# ripubblicazione} other {# ripubblicazioni}}" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/KnownFollowers.tsx:179 +#~ msgid "{0, plural, one {and # other} other {and # others}}" +#~ msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -63,15 +72,15 @@ msgstr "" msgid "{0, plural, one {post} other {posts}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" @@ -81,27 +90,74 @@ msgstr "" #~ msgid "{0} {purposeLabel} List" #~ msgstr "Lista {purposeLabel} {0}" -#: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "" + +#~ msgid "{0} your feeds" +#~ msgstr "{0} tuoi feed" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" msgstr "" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" msgstr "" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} following" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "{handle} non può ricevere messaggi" + #~ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" #~ msgstr "{invitesAvailable, plural, one {Codici d'invito: # available} other {Codici d'invito: # available}}" @@ -111,125 +167,159 @@ msgstr "{following} following" #~ msgid "{invitesAvailable} invite codes available" #~ msgstr "{invitesAvailable} codici d'invito disponibili" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" #~ msgid "{message}" #~ msgstr "{message}" -#: src/view/shell/Drawer.tsx:461 +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} non letto" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "<0/> membri" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:485 +#~ msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:497 +#~ msgid "<0>{0}, <1>{1}, and {2} {3, plural, one {other} other {others}} are included in your starter pack" +#~ msgstr "" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" -#: src/view/shell/Drawer.tsx:96 +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "" + #~ msgid "<0>{0} following" #~ msgstr "<0>{0} following" -#: src/components/ProfileHoverCard/index.web.tsx:437 +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "" + #~ msgid "<0>{followers} <1>{pluralizedFollowers}" #~ msgstr "<0>{followers} <1>{pluralizedFollowers}" -#: src/components/ProfileHoverCard/index.web.tsx:449 -#: src/screens/Profile/Header/Metrics.tsx:45 #~ msgid "<0>{following} <1>following" #~ msgstr "<0>{following} <1>following" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:31 #~ msgid "<0>Choose your<1>Recommended<2>Feeds" -#~ msgstr "<0>Scegli i tuoi<1>feeds<2>consigliati" +#~ msgstr "<0>Scegli i tuoi<1>feed/1><2>consigliati" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:38 #~ msgid "<0>Follow some<1>Recommended<2>Users" #~ msgstr "<0>Segui alcuni<1>utenti<2>consigliati" #: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." -msgstr "" +msgstr "<0>Non applicabile. Questo avviso è disponibile solo per i post che contengono media." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:21 #~ msgid "<0>Welcome to<1>Bluesky" #~ msgstr "<0>Ti diamo il benvenuto su<1>Bluesky" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "⚠Nome utente non valido" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" msgstr "Conferma 2FA" #~ msgid "A content warning has been applied to this {0}." #~ msgstr "A questo post è stato applicato un avviso di contenuto {0}." +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "" + #~ msgid "A new version of the app is available. Please update to continue using the app." #~ msgstr "È disponibile una nuova versione dell'app. Aggiorna per continuare a utilizzarla." -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "Accedi alle impostazioni di navigazione" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "Accedi al profilo e ad altre impostazioni di navigazione" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "Accessibilità" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" msgstr "Impostazioni di accessibilità" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" msgstr "Impostazioni di Accessibilità" -#: src/components/moderation/LabelsOnMe.tsx:42 #~ msgid "account" #~ msgstr "account" -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "Account" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "Account bloccato" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "Account seguito" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "Account silenziato" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "Account Silenziato" @@ -245,37 +335,46 @@ msgstr "Opzioni dell'account" msgid "Account removed from quick access" msgstr "Account rimosso dall'accesso immediato" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "Account sbloccato" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "Account non seguito" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "Account non silenziato" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "Aggiungi" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Aggiungi un avviso sul contenuto" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "Aggiungi un utente a questo elenco" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "Aggiungi account" @@ -284,17 +383,16 @@ msgstr "Aggiungi account" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Aggiungi testo alternativo" -#: src/view/com/composer/GifAltText.tsx:175 #~ msgid "Add ALT text" -#~ msgstr "" +#~ msgstr "Agguingo del testo descrittivo" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Aggiungi la Password per l'App" @@ -318,46 +416,56 @@ msgstr "Aggiungi parola silenziata alle impostazioni configurate" msgid "Add muted words and tags" msgstr "Aggiungi parole silenziate e tags" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/StarterPack/Wizard/index.tsx:197 +#~ msgid "Add people to your starter pack that you think others will enjoy following" +#~ msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" +msgstr "Aggiungi feed raccomandati" + +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" msgstr "" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" -msgstr "" +msgstr "Aggiungi il feed predefinito delle sole persone che segui" #: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Aggiungi il seguente record DNS al tuo dominio:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "Aggiungi alle Liste" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" msgstr "Aggiungi ai miei feed" -#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:139 #~ msgid "Added" #~ msgstr "Aggiunto" -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "Aggiunto alla lista" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" -msgstr "Aggiunto ai miei feeds" +msgstr "Aggiunto ai miei feed" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Modifica il numero di \"Mi piace\" che una risposta deve avere per essere mostrata nel tuo feed." #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Contenuto per adulti" @@ -365,21 +473,47 @@ msgstr "Contenuto per adulti" #~ msgid "Adult content can only be enabled via the Web at <0/>." #~ msgstr "I contenuti per adulti possono essere abilitati solo dal sito Web a <0/>." +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "" + #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." msgstr "Il contenuto per adulti è disattivato." -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "Avanzato" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." msgstr "Tutti i feed che hai salvato, in un unico posto." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + +#: src/screens/Messages/Settings.tsx:NaN +#~ msgid "Allow messages from" +#~ msgstr "Permetti tutti i messaggi di" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "Consenti nuovi messaggi da" + #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "Hai già un codice?" @@ -389,19 +523,19 @@ msgstr "Hai già effettuato l'accesso come @{0}" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" msgstr "Testo alternativo" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" -msgstr "" +msgstr "Testo Alternativo" #: src/view/com/composer/photos/Gallery.tsx:224 msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." @@ -416,83 +550,110 @@ msgstr "È stata inviata un'e-mail a {0}. Include un codice di conferma che puoi msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Una email è stata inviata al tuo indirizzo precedente, {0}. Include un codice di conferma che puoi inserire di seguito." -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" msgstr "Si è verificato un errore" -#: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/components/StarterPack/ShareDialog.tsx:79 +#~ msgid "An error occurred while saving the image." +#~ msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "" + +#~ msgid "An error occurred while trying to delete the message. Please try again." +#~ msgstr "È avvenuto un errore durante la cancellazione del messaggio. Riprovare un altra volta" + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "Un problema non incluso in queste opzioni" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Si è verificato un problema, riprova un'altra volta." -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" -msgstr "" +msgstr "si è verificato un errore sconosciuto" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "e" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "Animali" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" msgstr "GIF animata" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "Comportamento antisociale" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "Lingua dell'app" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Password dell'app eliminata" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "Le password dell'app possono contenere solo lettere, numeri, spazi, trattini e trattini bassi." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "Le password delle app devono contenere almeno 4 caratteri." -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "Impostazioni della password dell'app" #~ msgid "App passwords" #~ msgstr "Passwords dell'app" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "Password dell'App" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "Ricorso" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "Etichetta \"{0}\" del ricorso" @@ -505,46 +666,66 @@ msgstr "Etichetta \"{0}\" del ricorso" #~ msgid "Appeal Decision" #~ msgstr "Decisión de apelación" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" -msgstr "" +msgstr "Appello inviato" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 #~ msgid "Appeal submitted." #~ msgstr "Ricorso presentato." -#~ msgid "Appeal this decision" -#~ msgstr "Appella contro questa decisione" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "Appella contro questa decisione" #~ msgid "Appeal this decision." #~ msgstr "Appella contro questa decisione." -#: src/view/screens/Settings/index.tsx:430 +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "Aspetto" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" -msgstr "" +msgstr "Applica i feed raccomandati predefiniti" -#: src/view/screens/AppPasswords.tsx:265 +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +#~ msgid "Are you sure you want delete this starter pack?" +#~ msgstr "" + +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Confermi di voler eliminare la password dell'app \"{name}\"?" #: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgstr "" + +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." +msgstr "Sei sicuro di voler cancellare questo messaggio? Il messaggio verrà cancellato per te, ma non per gli altri partecipanti." + +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" msgstr "" -#: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." -msgstr "" +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." +msgstr "Sei sicuro di voler abbandonare questa conversazione? I messaggi verranno cancellati per te, ma non per gli altri partecipanti." -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Confermi di voler rimuovere {0} dai tuoi feed?" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "Confermi di voler eliminare questa bozza?" @@ -559,7 +740,8 @@ msgstr "Confermi?" msgid "Are you writing in <0>{0}?" msgstr "Stai scrivendo in <0>{0}?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "Arte" @@ -567,24 +749,27 @@ msgstr "Arte" msgid "Artistic or non-erotic nudity." msgstr "Nudità artistica o non erotica." -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "Almeno 3 caratteri" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "Indietro" @@ -593,10 +778,10 @@ msgstr "Indietro" #~ msgstr "Indietro" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "Basato sui tuoi interessi {interestsText}" +#~ msgid "Based on your interest in {interestsText}" +#~ msgstr "Basato sui tuoi interessi {interestsText}" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "Preferenze" @@ -604,59 +789,59 @@ msgstr "Preferenze" msgid "Birthday" msgstr "Compleanno" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "Compleanno:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "Blocca" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" -msgstr "" +msgstr "Blocca account" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "Blocca Account" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "Bloccare Account?" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "Blocca gli account" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "Lista di blocchi" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "Vuoi bloccare questi accounts?" #~ msgid "Block this List" #~ msgstr "Blocca questa Lista" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "Bloccato" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "Accounts bloccati" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "Accounts bloccati" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Gli account bloccati non possono rispondere alle tue discussioni, menzionarti o interagire in nessun altro modo con te." @@ -664,19 +849,19 @@ msgstr "Gli account bloccati non possono rispondere alle tue discussioni, menzio msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Gli account bloccati non possono rispondere alle tue discussioni, menzionarti, o interagire in nessun altro modo con te. Non vedrai il loro contenuto e non vedranno il tuo." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "Post bloccato." -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Il blocco non impedisce al labeler di inserire etichette nel tuo account." -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." -msgstr "l blocco è pubblico. Gli account bloccati non possono rispondere alle tue discussioni, menzionarti, o interagire con te in nessun altro modo." +msgstr "Il blocco è pubblico. Gli account bloccati non possono rispondere alle tue discussioni, menzionarti, o interagire con te in nessun altro modo." -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." msgstr "Il blocco non impedirà l'applicazione delle etichette al tuo account, ma impedirà a questo account di rispondere alle tue discussioni o di interagire con te." @@ -693,25 +878,27 @@ msgstr "Bluesky" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "Bluesky è un network aperto in cui puoi scegliere il tuo provider di hosting. L'hosting personalizzato è adesso disponibile in versione beta per gli sviluppatori." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "" + #~ msgid "Bluesky is flexible." #~ msgstr "Bluesky è flessibile." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 #~ msgid "Bluesky is open." #~ msgstr "Bluesky è aperto." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 #~ msgid "Bluesky is public." #~ msgstr "Bluesky è pubblico." #~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." #~ msgstr "Bluesky utilizza gli inviti per costruire una comunità più sana. Se non conosci nessuno con un invito, puoi iscriverti alla lista d'attesa e te ne invieremo uno al più presto." -#: src/screens/Moderation/index.tsx:533 +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "" + +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky non mostrerà il tuo profilo e i tuoi post agli utenti non loggati. Altre applicazioni potrebbero non rispettare questa istruzione. Ciò non rende il tuo account privato." @@ -726,15 +913,34 @@ msgstr "Sfoca le immagini" msgid "Blur images and filter from feeds" msgstr "Sfoca le immagini e filtra dai feed" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "Libri" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 -msgid "Browse other feeds" +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" msgstr "" +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 +msgid "Browse other feeds" +msgstr "Cerca altri feed" + #~ msgid "Build version {0} {1}" #~ msgstr "Versione {0} {1}" @@ -745,11 +951,10 @@ msgstr "Attività commerciale" #~ msgid "Button disabled. Input custom domain to proceed." #~ msgstr "Pulsante disabilitato. Inserisci il dominio personalizzato per procedere." -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "da —" -#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:100 #~ msgid "by {0}" #~ msgstr "di {0}" @@ -758,10 +963,10 @@ msgid "By {0}" msgstr "Di {0}" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" +#~ msgid "by @{0}" +#~ msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "di <0/>" @@ -769,7 +974,7 @@ msgstr "di <0/>" msgid "By creating an account you agree to the {els}." msgstr "Creando un account accetti i {els}." -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "da te" @@ -777,7 +982,7 @@ msgstr "da te" msgid "Camera" msgstr "Fotocamera" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Può contenere solo lettere, numeri, spazi, trattini e trattini bassi. Deve contenere almeno 4 caratteri, ma non più di 32 caratteri." @@ -785,14 +990,15 @@ msgstr "Può contenere solo lettere, numeri, spazi, trattini e trattini bassi. D #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -800,23 +1006,23 @@ msgstr "Può contenere solo lettere, numeri, spazi, trattini e trattini bassi. D #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "Cancella" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "Cancella" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "Annulla la cancellazione dell'account" @@ -835,12 +1041,16 @@ msgstr "Annulla il ritaglio dell'immagine" msgid "Cancel profile editing" msgstr "Annulla la modifica del profilo" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "Annnulla la citazione del post" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "Annulla la ricerca" @@ -855,17 +1065,17 @@ msgstr "Annulla l'apertura del sito collegato" msgid "Change" msgstr "Cambia" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "Cambia" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "Cambia il nome utente" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "Cambia il Nome Utente" @@ -873,12 +1083,12 @@ msgstr "Cambia il Nome Utente" msgid "Change my email" msgstr "Cambia la mia email" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "Cambia la password" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "Cambia la Password" @@ -893,106 +1103,137 @@ msgstr "Cambia la lingua del post a {0}" msgid "Change Your Email" msgstr "Cambia la tua email" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" -msgstr "" +msgstr "Messaggi" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" -msgstr "" +msgstr "Conversazione silenziata" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" -msgstr "" +msgstr "Impostazioni messaggi" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "Impostazioni messaggi" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" -msgstr "" +msgstr "Conversizione non silenziata" #: src/screens/Messages/Conversation/index.tsx:26 #~ msgid "Chat with {chatId}" #~ msgstr "" -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "Verifica il mio stato" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:122 #~ msgid "Check out some recommended feeds. Tap + to add them to your list of pinned feeds." #~ msgstr "Dai un'occhiata ad alcuni feed consigliati. Clicca + per aggiungerli al tuo elenco dei feed." -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:186 #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Scopri alcuni utenti consigliati. Seguili per vedere utenti simili." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." msgstr "Controlla la tua email per il codice di accesso e inseriscilo qui." -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Controlla la tua posta in arrivo, dovrebbe contenere un'e-mail con il codice di conferma da inserire di seguito:" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "Scegli \"Tutti\" o \"Nessuno\"" +#: src/view/com/modals/Threadgate.tsx:75 +#~ msgid "Choose \"Everybody\" or \"Nobody\"" +#~ msgstr "Scegli \"Tutti\" o \"Nessuno\"" + +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "" #~ msgid "Choose a new Bluesky username or create" #~ msgstr "Scegli un nuovo nome utente Bluesky o creane uno" +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "Scegli il servizio" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." msgstr "Scegli gli algoritmi che compilano i tuoi feed personalizzati." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "Scegli gli algoritmi che migliorano la tua esperienza con i feed personalizzati." #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 msgid "Choose this color as your avatar" +msgstr "Scegli questo colore per il tuo avatar" + +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "Scegli i tuoi feed principali" +#~ msgid "Choose your main feeds" +#~ msgstr "Scegli i tuoi feed principali" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "Scegli la tua password" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "Cancella tutti i dati legacy in archivio" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "Cancella tutti i dati legacy in archivio (poi ricomincia)" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "Cancella tutti i dati in archivio" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "Cancella tutti i dati in archivio (poi ricomincia)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "Annulla la ricerca" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "Cancella tutti i dati di archiviazione legacy" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "Cancella tutti i dati di archiviazione" @@ -1000,10 +1241,18 @@ msgstr "Cancella tutti i dati di archiviazione" msgid "click here" msgstr "clicca qui" -#: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +#~ msgid "Click here to add one." +#~ msgstr "Clicca qui per aggiungerne uno." + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Clicca qui per aprire il menu per {tag}" @@ -1011,19 +1260,33 @@ msgstr "Clicca qui per aprire il menu per {tag}" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "Clicca qui per aprire il menu per #{tag}" -#: src/screens/Onboarding/index.tsx:47 +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "Clicca per riprovare l'invio" + +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "Clima" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "Chiudi" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "Chiudi la finestra attiva" @@ -1035,11 +1298,12 @@ msgstr "Chiudi l'avviso" msgid "Close bottom drawer" msgstr "Chiudi il bottom drawer" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" msgstr "Chiudi la finestra di dialogo" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" msgstr "Chiudi la finestra di dialogo GIF" @@ -1051,6 +1315,10 @@ msgstr "Chiudi l'immagine" msgid "Close image viewer" msgstr "Chiudi il visualizzatore di immagini" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "Chiudi finestra" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "Chiudi la navigazione del footer" @@ -1068,7 +1336,7 @@ msgstr "Chiude la barra di navigazione in basso" msgid "Closes password update alert" msgstr "Chiude l'avviso di aggiornamento della password" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "Chiude l'editore del post ed elimina la bozza del post" @@ -1076,42 +1344,48 @@ msgstr "Chiude l'editore del post ed elimina la bozza del post" msgid "Closes viewer for header image" msgstr "Chiude il visualizzatore dell'immagine di intestazione" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "Comprime l'elenco degli utenti per una determinata notifica" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "Commedia" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "Fumetti" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Linee guida della community" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "Completa l'incorporazione e inizia a utilizzare il tuo account" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "Completa la challenge" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Componi un post fino a {MAX_GRAPHEME_LENGTH} caratteri" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "Scrivi la risposta" #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "Configura l'impostazione del filtro dei contenuti per la categoria:{0}" +#~ msgid "Configure content filtering setting for category: {0}" +#~ msgstr "Configura l'impostazione del filtro dei contenuti per la categoria:{0}" #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" @@ -1121,13 +1395,11 @@ msgstr "Configura l'impostazione del filtro dei contenuti per la categoria: {nam msgid "Configured in <0>moderation settings." msgstr "Configurato nelle <0>impostazioni di moderazione." -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -1146,25 +1418,25 @@ msgstr "Conferma il cambio" msgid "Confirm content language settings" msgstr "Conferma le impostazioni della lingua del contenuto" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "Conferma l'eliminazione dell'account" #~ msgid "Confirm your age to enable adult content." #~ msgstr "Conferma la tua età per abilitare i contenuti per adulti." -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "Conferma la tua età:" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "Conferma la tua data di nascita" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 @@ -1174,15 +1446,14 @@ msgstr "Codice di conferma" #~ msgid "Confirms signing up {email} to the waitlist" #~ msgstr "Conferma l'iscrizione di {email} alla lista d'attesa" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "Connessione in corso..." -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "Contatta il supporto" -#: src/components/moderation/LabelsOnMe.tsx:42 #~ msgid "content" #~ msgstr "contenuto" @@ -1196,28 +1467,28 @@ msgstr "Contenuto Bloccato" #~ msgid "Content Filtering" #~ msgstr "Filtro dei Contenuti" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "Filtri dei contenuti" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "Lingue dei contenuti" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "Contenuto non disponibile" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "Avviso sul Contenuto" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "Avviso sui contenuti" @@ -1225,12 +1496,8 @@ msgstr "Avviso sui contenuti" msgid "Context menu backdrop, click to close the menu." msgstr "Sfondo del menu contestuale, clicca per chiudere il menu." -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "Continua" @@ -1238,41 +1505,47 @@ msgstr "Continua" msgid "Continue as {0} (currently signed in)" msgstr "Continua come {0} (attualmente connesso)" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "Vai al passaggio successivo" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "Vai al passaggio successivo" +#~ msgid "Continue to the next step" +#~ msgstr "Vai al passaggio successivo" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" -msgstr "Vai al passaggio successivo senza seguire nessun account" +#~ msgid "Continue to the next step without following any accounts" +#~ msgstr "Vai al passaggio successivo senza seguire nessun account" -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" +msgstr "Conversazione cancellata" + +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "Cucina" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Copiato" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "Versione di build copiata nella clipboard" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "Copiato nel clipboard" @@ -1280,11 +1553,12 @@ msgstr "Copiato nel clipboard" msgid "Copied!" msgstr "Copiato!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Copia la password dell'app" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Copia" @@ -1297,70 +1571,100 @@ msgstr "Copia {0}" msgid "Copy code" msgstr "Copia il codice" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "Copia il link alla lista" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "Copia il link al post" #~ msgid "Copy link to profile" #~ msgstr "Copia il link al profilo" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" -msgstr "" +msgstr "Copia il testo del messaggio" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "Copia il testo del post" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Politica sul diritto d'autore" -#: src/components/dms/ConvoMenu.tsx:80 -msgid "Could not leave chat" +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" msgstr "" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/components/dms/LeaveConvoPrompt.tsx:39 +msgid "Could not leave chat" +msgstr "Errore nell'abbandonare la conversione" + +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" msgstr "Feed non caricato" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "No si è potuto caricare la lista" #: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "" - -#: src/components/dms/ConvoMenu.tsx:69 -msgid "Could not mute chat" -msgstr "" - -#: src/components/dms/ConvoMenu.tsx:68 -#~ msgid "Could not unmute chat" +#~ msgid "Could not load profiles. Please try again later." #~ msgstr "" +#: src/components/dms/ConvoMenu.tsx:88 +msgid "Could not mute chat" +msgstr "Errore nel silenziare la conversazione" + #~ msgid "Country" #~ msgstr "Paese" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "" + #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "Crea un nuovo account" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "Crea un nuovo Bluesky account" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "Crea un account" @@ -1369,11 +1673,15 @@ msgstr "Crea un account" msgid "Create an account" msgstr "Crea un account" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" +msgstr "In alternativa crea un avatar" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Crea un password per l'app" @@ -1382,11 +1690,15 @@ msgstr "Crea un password per l'app" msgid "Create new account" msgstr "Crea un nuovo account" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/StarterPack/ShareDialog.tsx:158 +#~ msgid "Create QR code" +#~ msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "Crea un report per {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "Creato {0}" @@ -1399,7 +1711,8 @@ msgstr "Creato {0}" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "Crea una scheda con una miniatura. La scheda si collega a {url}" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "Cultura" @@ -1412,8 +1725,8 @@ msgstr "Personalizzato" msgid "Custom domain" msgstr "Dominio personalizzato" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "I feed personalizzati creati dalla comunità ti offrono nuove esperienze e ti aiutano a trovare contenuti interessanti." @@ -1424,8 +1737,8 @@ msgstr "Personalizza i media da i siti esterni." #~ msgid "Danger Zone" #~ msgstr "Zona di Pericolo" -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "Scuro" @@ -1433,15 +1746,24 @@ msgstr "Scuro" msgid "Dark mode" msgstr "Aspetto scuro" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "Tema scuro" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "Data di nascita" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" msgstr "Eliminare errori nella Moderazione" @@ -1449,83 +1771,103 @@ msgstr "Eliminare errori nella Moderazione" msgid "Debug panel" msgstr "Pannello per il debug" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "Elimina" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "Elimina l'account" -#: src/view/com/modals/DeleteAccount.tsx:87 #~ msgid "Delete Account" #~ msgstr "Elimina l'Account" -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" -msgstr "" +msgstr "Cancella l'account <0>\"<1>{0}<2>\"" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Elimina la password dell'app" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Eliminare la password dell'app?" -#: src/components/dms/MessageMenu.tsx:101 -msgid "Delete for me" +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" msgstr "" -#: src/view/screens/ProfileList.tsx:466 +#: src/components/dms/MessageMenu.tsx:124 +msgid "Delete for me" +msgstr "Cancella per me" + +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "Elimina la lista" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" -msgstr "" +msgstr "Cancella messaggio" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" -msgstr "" +msgstr "Cancella messaggio per me" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "Cancellare account" #~ msgid "Delete my account…" #~ msgstr "Cancella il mio account…" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "Cancellare Account…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "Elimina il post" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "Elimina questa lista?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "Eliminare questo post?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "Eliminato" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." msgstr "Post eliminato." -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1533,7 +1875,7 @@ msgstr "Descrizione" #: src/view/com/composer/GifAltText.tsx:140 msgid "Descriptive alt text" -msgstr "" +msgstr "Testo descrittivo alternativo" #~ msgid "Dev Server" #~ msgstr "Server di sviluppo" @@ -1541,15 +1883,19 @@ msgstr "" #~ msgid "Developer Tools" #~ msgstr "Strumenti per sviluppatori" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "Volevi dire qualcosa?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "Fioco" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "I messaggi diretti sono arrivati!" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" msgstr "Disattiva la riproduzione automatica per le GIF" @@ -1557,44 +1903,59 @@ msgstr "Disattiva la riproduzione automatica per le GIF" msgid "Disable Email 2FA" msgstr "Disattiva l'email 2FA" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" msgstr "Disattiva il feedback tattile" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "Disabilitato" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "Scartare" #~ msgid "Discard draft" #~ msgstr "Scarta la bozza" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "Scartare la bozza?" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "Scoraggia le app dal mostrare il mio account agli utenti disconnessi" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" -msgstr "Scopri nuovi feeds personalizzati" +msgstr "Scopri nuovi feed personalizzati" -#~ msgid "Discover new feeds" -#~ msgstr "Scopri nuovi feeds" +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "Scopri nuovi feed" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" -msgstr "Scopri nuovi feeds" +msgstr "Scopri nuovi feed" + +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "" #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" @@ -1612,7 +1973,7 @@ msgstr "Pannello DNS" msgid "Does not include nudity." msgstr "Non include nudità." -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "Non inizia o termina con un trattino" @@ -1629,30 +1990,27 @@ msgstr "Dominio verificato!" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "Fatto" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "Fatto" @@ -1664,21 +2022,25 @@ msgstr "Fatto{extraText}" #~ msgid "Double tap to sign in" #~ msgstr "Usa il doppio tocco per accedere" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "" + #~ msgid "Download Bluesky account data (repository)" #~ msgstr "Scarica i dati dell'account Bluesky (archivio)" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "Scarica il CAR file" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "Trascina e rilascia per aggiungere immagini" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "A causa delle politiche di Apple, i contenuti per adulti possono essere abilitati sul Web solo dopo aver completato la registrazione." +#~ msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." +#~ msgstr "A causa delle politiche di Apple, i contenuti per adulti possono essere abilitati sul Web solo dopo aver completato la registrazione." #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" @@ -1700,19 +2062,19 @@ msgstr "e.g. Artista, amo i gatti, mi piace leggere." msgid "E.g. artistic nudes." msgstr "E.g. nudi artistici." -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "e.g. Gli utenti più seguiti" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "e.g. Spammers" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "e.g. Utenti più prolifici." -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "e.g. Utenti che rispondono ripetutamente con annunci." @@ -1720,58 +2082,83 @@ msgstr "e.g. Utenti che rispondono ripetutamente con annunci." msgid "Each code works once. You'll receive more invite codes periodically." msgstr "Ogni codice funziona per un solo uso. Riceverai periodicamente più codici di invito." +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "Modifica" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "Modifica l'avatar" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "Modifica l'immagine" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "Modifica i dettagli della lista" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "Modifica l'elenco di moderazione" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" -msgstr "Modifica i miei feeds" +msgstr "Modifica i miei feed" #: src/view/com/modals/EditProfile.tsx:153 msgid "Edit my profile" msgstr "Modifica il mio profilo" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "Modifica il profilo" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "Modifica il Profilo" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "Modifica i feeds memorizzati" +#: src/view/screens/Feeds.tsx:416 +#~ msgid "Edit Saved Feeds" +#~ msgstr "Modifica i feed memorizzati" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "Modifica l'elenco degli utenti" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "Modifica il tuo nome visualizzato" @@ -1780,11 +2167,20 @@ msgstr "Modifica il tuo nome visualizzato" msgid "Edit your profile description" msgstr "Modifica la descrizione del tuo profilo" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "Formazione scolastica" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "Email" @@ -1810,7 +2206,7 @@ msgstr "Email Aggiornata" msgid "Email verified" msgstr "Email verificata" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "Email:" @@ -1819,8 +2215,8 @@ msgid "Embed HTML code" msgstr "Incorpora il codice HTML" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" msgstr "Incorpora il post" @@ -1832,18 +2228,18 @@ msgstr "Incorpora questo post nel tuo sito web. Copia il seguente ritaglio e inc msgid "Enable {0} only" msgstr "Attiva {0} solo" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "Attiva il contenuto per adulti" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "Attiva Contenuto per Adulti" +#~ msgid "Enable Adult Content" +#~ msgstr "Attiva Contenuto per Adulti" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "Abilita i contenuti per adulti nei tuoi feeds" +#~ msgid "Enable adult content in your feeds" +#~ msgstr "Abilita i contenuti per adulti nei tuoi feed" #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 @@ -1853,11 +2249,16 @@ msgstr "Abilita i media esterni" #~ msgid "Enable External Media" #~ msgstr "Attiva Media Esterna" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "Attiva i lettori multimediali per" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "Abilita questa impostazione per vedere solo le risposte delle persone che segui." @@ -1865,7 +2266,9 @@ msgstr "Abilita questa impostazione per vedere solo le risposte delle persone ch msgid "Enable this source only" msgstr "Abilita solo questa fonte" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "Abilitato" @@ -1873,7 +2276,11 @@ msgstr "Abilitato" msgid "End of feed" msgstr "Fine del feed" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Inserisci un nome per questa password dell'app" @@ -1893,7 +2300,7 @@ msgstr "Inserire il codice di conferma" #~ msgid "Enter the address of your provider:" #~ msgstr "Inserisci l'indirizzo del tuo provider:" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "Inserisci il codice che hai ricevuto per modificare la tua password." @@ -1913,7 +2320,7 @@ msgstr "Inserisci la tua data di nascita" #~ msgstr "Inserisci la tua email" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "Inserisci il tuo indirizzo email" @@ -1932,32 +2339,45 @@ msgstr "Inserisci il tuo nuovo indirizzo email qui sotto." msgid "Enter your username and password" msgstr "Inserisci il tuo nome di utente e la tua password" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" -msgstr "" +msgstr "Un errore è avvenuto durante il salvataggio del file" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "Errore nella risposta del captcha." -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "Errore:" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "Tutti" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "Tutti possono rispondere" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "Tutti" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "Menzioni o risposte eccessive" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" -msgstr "" +msgstr "Troppi o indesiderati messaggi" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "Uscita dall'eliminazione dell'account" @@ -1973,8 +2393,8 @@ msgstr "Uscita dal processo di ritaglio dell'immagine" msgid "Exits image view" msgstr "Uscita dalla visualizzazione dell'immagine" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "Uscita dall'inserzione della domanda di ricerca" @@ -1985,11 +2405,19 @@ msgstr "Uscita dall'inserzione della domanda di ricerca" msgid "Expand alt text" msgstr "Ampliare il testo alternativo" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "Espandi o comprimi l'intero post a cui stai rispondendo" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "Media espliciti o potenzialmente inquietanti." @@ -1998,12 +2426,12 @@ msgstr "Media espliciti o potenzialmente inquietanti." msgid "Explicit sexual images." msgstr "Immagini sessuali esplicite." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "Esporta i miei dati" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "Esporta i miei dati" @@ -2013,124 +2441,181 @@ msgid "External Media" msgstr "Media esterni" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "I multimediali esterni possono consentire ai siti web di raccogliere informazioni su di te e sul tuo dispositivo. Nessuna informazione viene inviata o richiesta finché non si preme il pulsante \"Riproduci\"." -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "Preferenze multimediali esterni" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "Impostazioni multimediali esterni" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "Impossibile creare la password dell'app." -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "Impossibile creare l'elenco. Controlla la connessione Internet e riprova." -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" -msgstr "" +msgstr "Errore nel cancellare il messaggio" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "Non possiamo eliminare il post, riprova di nuovo" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" msgstr "Ha fallito il Il caricamento delle GIF's" -#: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." -msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" +msgstr "Errore nel caricare i vecchi messaggi" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:110 -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:143 #~ msgid "Failed to load recommended feeds" #~ msgstr "Non possiamo caricare i feed consigliati" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "Non è possibile salvare l'immagine: {0}" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "Errore nell'invio" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "Errore nel invio dell'appello, si prega di riprovare." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "Errore nell'aggiornamento delle impostazioni" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "Feed" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "Feed fatto da {0}" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "Feed offline" +#: src/view/screens/Feeds.tsx:709 +#~ msgid "Feed offline" +#~ msgstr "Feed offline" #~ msgid "Feed Preferences" #~ msgstr "Preferenze del feed" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "Commenti" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" -msgstr "Feeds" +msgstr "Feed" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:58 #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "I feed vengono creati dagli utenti per curare i contenuti. Scegli alcuni feed che ritieni interessanti." -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "I feed sono algoritmi personalizzati che gli utenti creano con un minimo di esperienza nella codifica. Vedi <0/> per ulteriori informazioni." #: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" -msgstr "I feeds possono anche avere tematiche!" +#~ msgid "Feeds can be topical as well!" +#~ msgstr "I feed possono anche avere tematiche!" + +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Archivia i contenuti" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" -msgstr "" +msgstr "File salvata con successo!" #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Filtra dai feed" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "Finalizzando" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "Trova account da seguire" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "" + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" msgstr "Trova post e utenti su Bluesky" @@ -2140,26 +2625,33 @@ msgstr "Trova post e utenti su Bluesky" #~ msgid "Find users with the search tool on the right" #~ msgstr "Trova gli utenti con lo strumento di ricerca sulla destra" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 #~ msgid "Finding similar accounts..." #~ msgstr "Trovare account simili…" -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." msgstr "Ottimizza il contenuto che vedi nel tuo Following feed." #~ msgid "Fine-tune the content you see on your home screen." #~ msgstr "Ottimizza il contenuto che vedi nella pagina d'inizio." -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "Ottimizza i la visualizzazione delle discussioni." -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "Fitness" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "Flessibile" @@ -2172,115 +2664,174 @@ msgstr "Gira in orizzontale" msgid "Flip vertically" msgstr "Gira in verticale" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "Segui" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "Segui" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Segui {0}" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "Segui l'Account" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" -msgstr "Segui tutti" +#~ msgid "Follow All" +#~ msgstr "Segui tutti" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "Seguire" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" -msgstr "Segui gli account selezionati e vai al passaggio successivo" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "" + +#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 +#~ msgid "Follow selected accounts and continue to the next step" +#~ msgstr "Segui gli account selezionati e vai al passaggio successivo" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:65 #~ msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." #~ msgstr "Segui alcuni utenti per iniziare. Possiamo consigliarti più utenti in base a chi trovi interessante." -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" -msgstr "Seguito da {0}" +#: src/components/KnownFollowers.tsx:169 +#~ msgid "Followed by" +#~ msgstr "" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/view/com/profile/ProfileCard.tsx:190 +#~ msgid "Followed by {0}" +#~ msgstr "Seguito da {0}" + +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" +msgstr "" + +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "Utenti seguiti" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "Solo utenti seguiti" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "ti segue" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Followers" +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "" + #~ msgid "following" #~ msgstr "following" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "Following" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" msgstr "Seguiti {0}" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" msgstr "Preferenze del Following feed" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" msgstr "Preferenze del Following Feed" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "Ti segue" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "Ti Segue" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "Gastronomia" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Per motivi di sicurezza, invieremo un codice di conferma al tuo indirizzo email." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Per motivi di sicurezza non potrai visualizzarlo nuovamente. Se perdi questa password, dovrai generarne una nuova." @@ -2295,15 +2846,15 @@ msgstr "Per motivi di sicurezza non potrai visualizzarlo nuovamente. Se perdi qu msgid "Forgot Password" msgstr "Hai dimenticato la Password" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "Hai dimenticato la password?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "Hai dimenticato?" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "Pubblica spesso contenuti indesiderati" @@ -2311,7 +2862,7 @@ msgstr "Pubblica spesso contenuti indesiderati" msgid "From @{sanitizedAuthor}" msgstr "Di @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "Da <0/>" @@ -2320,48 +2871,77 @@ msgstr "Da <0/>" msgid "Gallery" msgstr "Galleria" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "Iniziamo" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Inizia" -#: src/screens/Onboarding/StepProfile/index.tsx:228 -msgid "Give your profile a face" +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" msgstr "" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 +msgid "Give your profile a face" +msgstr "Dai un volto al tuo profilo" + +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "Evidenti violazioni della legge o dei termini di servizio" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "Torna indietro" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "Torna Indietro" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:189 +#~ msgid "Go back to previous screen" +#~ msgstr "" + +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "Torna al passaggio precedente" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "Torna Home" @@ -2370,136 +2950,145 @@ msgstr "Torna Home" msgid "Go Home" msgstr "Torna Home" -#: src/view/screens/Search/Search.tsx:NaN #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "Vai a @{queryMaybeHandle}" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "Vai alla conversazione con {0}" + #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "Seguente" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" +msgstr "Va al profilo" + +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" msgstr "" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" -msgstr "" +msgstr "Vai al profilo dell'utente" #: src/lib/moderation/useGlobalLabelStrings.ts:46 msgid "Graphic Media" msgstr "Media grafici" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Nome Utente" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" msgstr "Aptica" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "Molestie, trolling o intolleranza" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "Hashtag" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "Hashtag: #{tag}" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "Ci sono problemi?" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "Aiuto" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." -msgstr "" +msgstr "Aiuta le persone a sapere che tu non sei un bot caricando una immagine o creando un avatar." #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "Ecco alcuni account da seguire" +#~ msgid "Here are some accounts for you to follow" +#~ msgstr "Ecco alcuni account da seguire" #: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "Ecco alcuni feed più visitati. Puoi seguire quanti ne vuoi." +#~ msgid "Here are some popular topical feeds. You can choose to follow as many as you like." +#~ msgstr "Ecco alcuni feed più visitati. Puoi seguire quanti ne vuoi." #: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "Ecco alcuni feed di attualità scelti in base ai tuoi interessi: {interestsText}. Puoi seguire quanti ne vuoi." +#~ msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." +#~ msgstr "Ecco alcuni feed di attualità scelti in base ai tuoi interessi: {interestsText}. Puoi seguire quanti ne vuoi." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Ecco la password dell'app." -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "Nascondi" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "Nascondi" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "Nascondi il messaggio" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "Nascondere il contenuto" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "Vuoi nascondere questo post?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "Nascondi elenco utenti" #~ msgid "Hides posts from {0} in your feed" #~ msgstr "Nasconde i post di {0} nel tuo feed" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Si è verificato un problema durante il contatto con il server del feed. Informa il proprietario del feed del problema." -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Il server del feed sembra non è configurato correttamente. Informa il proprietario del feed del problema." -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Il server del feed sembra essere offline. Informa il proprietario del feed di questo problema." -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Il server del feed ha dato una risposta negativa. Informa il proprietario del feed di questo problema." -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Stiamo riscontrando problemi nel trovare questo feed. Potrebbe essere stato cancellato." -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." msgstr "Stiamo riscontrando problemi nel trovare questi dati. Guarda PI[U giù per trovare più dettagli. Se il problema continua mettiti in contatto." @@ -2507,11 +3096,12 @@ msgstr "Stiamo riscontrando problemi nel trovare questi dati. Guarda PI[U giù p msgid "Hmmmm, we couldn't load that moderation service." msgstr "Non siamo riusciti a caricare il servizio di moderazione." -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "Home" @@ -2523,8 +3113,8 @@ msgid "Host:" msgstr "Hosting:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Servizio di hosting" @@ -2550,9 +3140,10 @@ msgstr "Ho un codice di conferma" msgid "I have my own domain" msgstr "Ho il mio dominio" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" -msgstr "" +msgstr "Ho capito" #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" @@ -2566,42 +3157,54 @@ msgstr "Se niente è selezionato, adatto a tutte le età." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Se non sei ancora maggiorenne secondo le leggi del tuo Paese, il tuo genitore o tutore legale deve leggere i Termini a tuo nome." -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "Se elimini questa lista, non potrai recuperarla." -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "Se rimuovi questo post, non potrai recuperarlo." -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Se vuoi modificare la password, ti invieremo un codice per verificare se questo è il tuo account." -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "Illegale e Urgente" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "Immagine" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Testo alternativo dell'immagine" #~ msgid "Image options" #~ msgstr "Opzioni per l'immagine" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "Furto d'identità o false affermazioni sull'identità o sull'affiliazione" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "Messaggi inappropriati or link espliciti" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "Inserisci il codice inviato alla tua email per reimpostare la password" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "Inserisci il codice di conferma per la cancellazione dell'account" @@ -2611,7 +3214,7 @@ msgstr "Inserisci il codice di conferma per la cancellazione dell'account" #~ msgid "Input invite code to proceed" #~ msgstr "Inserisci il codice di invito per procedere" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Inserisci il nome per la password dell'app" @@ -2619,22 +3222,22 @@ msgstr "Inserisci il nome per la password dell'app" msgid "Input new password" msgstr "Inserisci la nuova password" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "Inserisci la password per la cancellazione dell'account" #~ msgid "Input phone number for SMS verification" #~ msgstr "Inserisci il numero di telefono per la verifica via SMS" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "Inserisci il codice che ti è stato inviato via email" -#: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "Inserisci la password relazionata a {identifier}" +#: src/screens/Login/LoginForm.tsx:221 +#~ msgid "Input the password tied to {identifier}" +#~ msgstr "Inserisci la password relazionata a {identifier}" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the username or email address you used at signup" msgstr "Inserisci il nome utente o l'indirizzo email che hai utilizzato al momento della registrazione" @@ -2644,7 +3247,7 @@ msgstr "Inserisci il nome utente o l'indirizzo email che hai utilizzato al momen #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "Inserisci la tua email per entrare nella lista d'attesa di Bluesky" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "Inserisci la tua password" @@ -2652,20 +3255,24 @@ msgstr "Inserisci la tua password" msgid "Input your preferred hosting provider" msgstr "Inserisci il tuo provider di hosting preferito" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "Inserisci il tuo identificatore" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "Introduzione ai Messaggi Diretti" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "Codice di conferma 2FA non valido." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "Protocollo del post non valido o non supportato" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "Nome dell'utente o password errato" @@ -2676,11 +3283,11 @@ msgstr "Nome dell'utente o password errato" msgid "Invite a Friend" msgstr "Invita un amico" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "Codice d'invito" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Codice invito non accettato. Controlla di averlo inserito correttamente e riprova." @@ -2695,14 +3302,41 @@ msgstr "Codici di invito: {0} disponibili" msgid "Invite codes: 1 available" msgstr "Codici di invito: 1 disponibile" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." -msgstr "Mostra i post delle persone che segui." +#~ msgid "It shows posts from the people you follow as they happen." +#~ msgstr "Mostra i post delle persone che segui." + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." +msgstr "" #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "Lavori" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "" + #~ msgid "Join the waitlist" #~ msgstr "Iscriviti alla lista d'attesa" @@ -2712,56 +3346,55 @@ msgstr "Lavori" #~ msgid "Join Waitlist" #~ msgstr "Iscriviti alla Lista d'Attesa" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "Giornalismo" -#: src/components/moderation/LabelsOnMe.tsx:59 #~ msgid "label has been placed on this {labelTarget}" #~ msgstr "l'etichetta è stata inserita su questo {labelTarget}" -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "Etichettato da {0}." -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "Etichettato dall'autore." -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "Etichette" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "Le etichette sono annotazioni su utenti e contenuti. Possono essere utilizzate per nascondere, avvisare e classificare il network." -#: src/components/moderation/LabelsOnMe.tsx:61 #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "le etichette sono state inserite su questo {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "Etichette sul tuo account" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "Etichette sul tuo contenuto" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "Seleziona la lingua" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "Impostazione delle lingue" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "Impostazione delle Lingue" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "Lingue" @@ -2769,7 +3402,7 @@ msgstr "Lingue" #~ msgstr "Ultimo passo!" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "Ultime" @@ -2780,33 +3413,40 @@ msgstr "Ultime" msgid "Learn More" msgstr "Ulteriori Informazioni" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "Scopri di più sulla moderazione applicata a questo contenuto." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Ulteriori informazioni su questo avviso" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "Scopri cosa è pubblico su Bluesky." -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "Saperne di più." -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" -msgstr "" +msgstr "Abbandona" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "Abbandona la chat" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" -msgstr "" +msgstr "Abbandona la conversazione" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." @@ -2816,42 +3456,55 @@ msgstr "Deseleziona tutte per vedere qualsiasi lingua." msgid "Leaving Bluesky" msgstr "Stai lasciando Bluesky" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "mancano." -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "L'archivio legacy è stato cancellato, riattiva la app." +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "Reimpostazione della password!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "Andiamo!" #~ msgid "Library" #~ msgstr "Biblioteca" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "Chiaro" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:197 #~ msgid "Like" #~ msgstr "Mi piace" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "" + +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "Metti mi piace a questo feed" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "Piace a" @@ -2861,95 +3514,107 @@ msgstr "Piace a" msgid "Liked By" msgstr "Piace A" -#: src/view/com/feeds/FeedSourceCard.tsx:268 #~ msgid "Liked by {0} {1}" #~ msgstr "Piace a {0} {1}" -#: src/components/LabelingServiceCard/index.tsx:72 #~ msgid "Liked by {count} {0}" #~ msgstr "È piaciuto a {count} {0}" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:287 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:301 -#: src/view/screens/ProfileFeed.tsx:600 #~ msgid "Liked by {likeCount} {0}" #~ msgstr "Piace a {likeCount} {0}" -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" msgstr "piace il tuo feed personalizzato" #~ msgid "liked your custom feed{0}" #~ msgstr "piace il feed personalizzato{0}" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" msgstr "piace il tuo post" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "Mi piace" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "Mi Piace in questo post" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "Lista" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "Lista avatar" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "Lista bloccata" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "Lista di {0}" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "Lista cancellata" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "Lista muta" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "Nome della lista" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "Lista sbloccata" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "Lista non mutata" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "Liste" +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "Liste che bloccano questo utente:" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "" + #~ msgid "Load more posts" #~ msgstr "Carica più post" -#: src/view/screens/Notifications.tsx:159 +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "Carica più notifiche" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "Carica nuovi posts" @@ -2960,18 +3625,23 @@ msgstr "Caricamento..." #~ msgid "Local dev server" #~ msgstr "Server di sviluppo locale" -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "Log" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "Disconnetta l'account" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "Visibilità degli utenti disconnessi" @@ -2979,7 +3649,7 @@ msgstr "Visibilità degli utenti disconnessi" msgid "Login to account that is not listed" msgstr "Accedi all'account che non è nella lista" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" msgstr "Tieni premutoper aprire il menu dei tag per #{tag}" @@ -2992,14 +3662,18 @@ msgstr "Sembra XXXX-XXXXX" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." -msgstr "" +msgstr "Sembra che tu non abbia salvato nessun feed! Usa le nostre raccomandazioni o cerca qui sotto." -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" -msgstr "" +msgstr "Sembra che tu non abbia più feed fissati. Ma non ti preoccupare, puoi aggiungerne qualcuno di quelli qui sotto 😄" -#: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "Sembra che ti manchi un following feed. <0>Clicca qui per aggiungere uno." + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" msgstr "" #: src/view/com/modals/LinkWarning.tsx:79 @@ -3010,10 +3684,10 @@ msgstr "Assicurati che questo sia dove intendi andare!" msgid "Manage your muted words and tags" msgstr "Gestisci le parole mute e i tags" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" -msgstr "" +msgstr "Segna come letto" #~ msgid "May not be longer than 253 characters" #~ msgstr "Non può contenere più di 253 caratteri" @@ -3021,28 +3695,32 @@ msgstr "" #~ msgid "May only contain letters and numbers" #~ msgstr "Può contenere solo lettere e numeri" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "Media" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "utenti menzionati" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "Utenti menzionati" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "Menù" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "Messaggio {0}" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" -msgstr "" +msgstr "Messaggio cancellato" #~ msgid "Message from server" #~ msgstr "Messaggio dal server" @@ -3051,40 +3729,33 @@ msgstr "" msgid "Message from server: {0}" msgstr "Messaggio dal server: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" -msgstr "" +msgstr "Il messaggio è troppo lungo" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" -msgstr "" +msgstr "Impostazioni messaggio" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" -msgstr "" +msgstr "Messaggi" -#: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "" - -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "Account Ingannevole" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "Moderazione" @@ -3092,56 +3763,57 @@ msgstr "Moderazione" msgid "Moderation details" msgstr "Dettagli sulla moderazione" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" msgstr "Lista di moderazione di {0}" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "Lista di moderazione di <0/>" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "Le tue liste di moderazione" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "Lista di moderazione creata" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "Lista di moderazione aggiornata" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "Liste di moderazione" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Liste di Moderazione" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "Impostazioni di moderazione" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "Stati di moderazione" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "Strumenti di moderazione" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "Il moderatore ha scelto di mettere un avviso generale sul contenuto." -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "Di più" @@ -3149,17 +3821,25 @@ msgstr "Di più" msgid "More feeds" msgstr "Altri feed" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "Altre opzioni" #~ msgid "More post options" #~ msgstr "Altre impostazioni per il post" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "Dai priorità alle risposte con più likes" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "" + #~ msgid "Must be at least 3 characters" #~ msgstr "Deve contenere almeno 3 caratteri" @@ -3171,12 +3851,12 @@ msgstr "Silenzia" msgid "Mute {truncatedTag}" msgstr "Silenzia {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "Silenzia l'account" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "Silenzia gli accounts" @@ -3184,6 +3864,11 @@ msgstr "Silenzia gli accounts" msgid "Mute all {displayTag} posts" msgstr "Silenzia tutti i post {displayTag}" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "Silenzia la conversazione" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" msgstr "Silenzia solo i tags" @@ -3192,16 +3877,16 @@ msgstr "Silenzia solo i tags" msgid "Mute in text & tags" msgstr "Silenzia nel testo & tags" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "Silenziare la lista" #: src/components/dms/ConvoMenu.tsx:136 #: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "" +#~ msgid "Mute notifications" +#~ msgstr "" -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "Vuoi silenziare queste liste?" @@ -3216,25 +3901,25 @@ msgstr "Silenzia questa parola nel testo e nei tag del post" msgid "Mute this word in tags only" msgstr "Siilenzia questa parola solo nei tags" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" msgstr "Silenzia questa discussione" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "Silenzia parole & tags" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "Silenziato" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "Account silenziato" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "Accounts Silenziati" @@ -3243,15 +3928,15 @@ msgstr "Accounts Silenziati" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "I post degli account silenziati verranno rimossi dal tuo feed e dalle tue notifiche. Silenziare è completamente privato." -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "Silenziato da \"{0}\"" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "Parole e tags silenziati" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Silenziare un account è privato. Gli account silenziati possono interagire con te, ma non vedrai i loro post né riceverai le loro notifiche." @@ -3260,67 +3945,75 @@ msgstr "Silenziare un account è privato. Gli account silenziati possono interag msgid "My Birthday" msgstr "Il mio Compleanno" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" -msgstr "I miei Feeds" +msgstr "I miei Feed" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "Il mio Profilo" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" msgstr "I miei feed salvati" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" -msgstr "I miei Feeds Salvati" +msgstr "I miei Feed Salvati" #~ msgid "my-server.com" #~ msgstr "my-server.com" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "Nome" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "Il nome è obbligatorio" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "Il Nome o la Descrizione Viola gli Standard della Comunità" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "Natura" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "Vai alla schermata successiva" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "Vai al tuo profilo" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "Hai bisogno di segnalare una violazione del copyright?" #~ msgid "Never load embeds from {0}" #~ msgstr "Non caricare mai gli inserimenti di {0}" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 #~ msgid "Never lose access to your followers and data." #~ msgstr "Non perdere mai l'accesso ai tuoi follower e ai tuoi dati." -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "Non perdere mai l'accesso ai tuoi follower o ai tuoi dati." @@ -3328,7 +4021,7 @@ msgstr "Non perdere mai l'accesso ai tuoi follower o ai tuoi dati." msgid "Nevermind, create a handle for me" msgstr "Non importa, crea una handle per me" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "Nuova" @@ -3337,40 +4030,44 @@ msgstr "Nuova" msgid "New" msgstr "Nuova" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" -msgstr "" +msgstr "Nuova chat" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "Nuovo messaggio" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "Nuova Lista di Moderazione" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "Nuovo Password" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "Nuovo Password" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "Nuovo Post" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "Nuovo post" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "Nuovo post" @@ -3378,31 +4075,40 @@ msgstr "Nuovo post" #~ msgid "New Post" #~ msgstr "Nuovo Post" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "Nuova lista" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "Mostrare prima le risposte più recenti" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "Notizie" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "Seguente" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:103 #~ msgctxt "action" #~ msgid "Next" #~ msgstr "Seguente" @@ -3411,17 +4117,17 @@ msgstr "Seguente" msgid "Next image" msgstr "Immagine seguente" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "No" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "Senza descrizione" @@ -3429,78 +4135,107 @@ msgstr "Senza descrizione" msgid "No DNS Panel" msgstr "Nessun pannello DNS" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "Non si è trovata nessuna GIF in primo piano. Potrebbe esserci un problema con Tenor." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "" + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "Non segui più {0}" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "Non più di 253 caratteri" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" -msgstr "" +msgstr "Ancora nessun messaggio" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "Nessuna conversazione da visualizzare" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "Ancora nessuna notifica!" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "Nessuno" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "" + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Nessun risultato" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "Nessun risultato" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Non si è trovato nessun risultato" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "Nessun risultato trovato per \"{query}\"" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "Nessun risultato trovato per {query}" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." msgstr "Nessun risultato trovato per \"{search}\"." -#: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "" - #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "No grazie" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "Nessuno" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "Nessuno puo rispondere" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "Nessuno ha fatto ancora un like. Fai il primo tu!" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "Nudità non sessuale" -#: src/view/com/modals/SelfLabel.tsx:135 #~ msgid "Not Applicable." #~ msgstr "Non applicabile." -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "Non trovato" @@ -3509,42 +4244,71 @@ msgstr "Non trovato" msgid "Not right now" msgstr "Non adesso" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "Nota sulla condivisione" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: Bluesky è una rete aperta e pubblica. Questa impostazione limita solo la visibilità dei tuoi contenuti sull'app e sul sito Web di Bluesky e altre app potrebbero non rispettare questa impostazione. I tuoi contenuti potrebbero comunque essere mostrati agli utenti disconnessi da altre app e siti web." -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "Nulla qui" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "Suoni di notifica" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "Suoni di notifica" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "Notifiche" -#: src/components/dms/MessageItem.tsx:145 -msgid "Now" +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" msgstr "" +#: src/components/dms/MessageItem.tsx:169 +msgid "Now" +msgstr "Ora" + #: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Nudità" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "Nudità o contenuti per adulti non etichettati come tali" #~ msgid "Nudity or pornography not labeled as such" #~ msgstr "Nudità o pornografia non etichettata come tale" -#: src/screens/Signup/index.tsx:145 #~ msgid "of" #~ msgstr "spento" @@ -3552,17 +4316,17 @@ msgstr "Nudità o contenuti per adulti non etichettati come tali" msgid "Off" msgstr "Spento" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "Oh no!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "Oh no! Qualcosa è andato male." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "OK" @@ -3570,107 +4334,151 @@ msgstr "OK" msgid "Okay" msgstr "Va bene" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "Mostrare prima le risposte più vecchie" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "Reimpostazione dell'onboarding" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "A una o più immagini manca il testo alternativo." -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" +msgstr "Solo i file .jpg e .png sono supportati" + +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" msgstr "" #: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." -msgstr "Solo {0} può rispondere." +#~ msgid "Only {0} can reply." +#~ msgstr "Solo {0} può rispondere." -#: src/screens/Signup/StepHandle.tsx:98 +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "Contiene solo lettere, numeri e trattini" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Ops! Qualcosa è andato male!" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "Ops!" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "Apri" -#: src/screens/Onboarding/StepProfile/index.tsx:280 -msgid "Open avatar creator" +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" msgstr "" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Onboarding/StepProfile/index.tsx:277 +msgid "Open avatar creator" +msgstr "Apri il generatore di avatar" + +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "Apri opzioni conversazione" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "Apri il selettore emoji" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "Apri il menu delle opzioni del feed" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "Apri i links con il navigatore della app" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "Apri opzioni messaggio" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "Apri le impostazioni delle parole e dei tag silenziati" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "Apri la navigazione" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "Apri il menu delle opzioni del post" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "Apri la pagina della cronologia" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "Apri il registro di sistema" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "Apre le {numItems} opzioni" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "Apre le impostazioni di accessibilità" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "Apre dettagli aggiuntivi per una debug entry" #: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "Apre un elenco ampliato di utenti in questa notifica" +#~ msgid "Opens an expanded list of users in this notification" +#~ msgstr "Apre un elenco ampliato di utenti in questa notifica" #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "Apre la fotocamera sul dispositivo" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "Apre impostazioni messaggi" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "Apre il compositore" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "Apre le impostazioni configurabili delle lingue" @@ -3681,7 +4489,7 @@ msgstr "Apre la galleria fotografica del dispositivo" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Apre l'editor per il nome configurato del profilo, l'avatar, l'immagine di sfondo e la descrizione" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "Apre le impostazioni esterne per gli incorporamenti" @@ -3701,7 +4509,7 @@ msgstr "Apre il procedimento per accedere al tuo account esistente di Bluesky" #~ msgid "Opens following list" #~ msgstr "Apre la lista di chi segui" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" msgstr "Apre la finestra per selezionare i GIF" @@ -3712,26 +4520,30 @@ msgstr "Apre la finestra per selezionare i GIF" msgid "Opens list of invite codes" msgstr "Apre la lista dei codici di invito" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Apre la modale per la conferma dell'eliminazione dell'account. Richiede un codice e-mail" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Apre il modal per la conferma dell'eliminazione dell'account. Richiede un codice email." -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "Apre la modale per modificare il tuo password di Bluesky" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Apre la modale per la scelta di un nuovo handle di Bluesky" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Apre la modale per scaricare i dati del tuo account Bluesky (repository)" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "Apre la modale per la verifica dell'e-mail" @@ -3739,31 +4551,31 @@ msgstr "Apre la modale per la verifica dell'e-mail" msgid "Opens modal for using custom domain" msgstr "Apre il modal per l'utilizzo del dominio personalizzato" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" msgstr "Apre le impostazioni di moderazione" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "Apre il modulo di reimpostazione della password" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "Apre la schermata per modificare i feed salvati" +#: src/view/screens/Feeds.tsx:417 +#~ msgid "Opens screen to edit Saved Feeds" +#~ msgstr "Apre la schermata per modificare i feed salvati" -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" msgstr "Apre la schermata con tutti i feed salvati" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "Apre le impostazioni della password dell'app" #~ msgid "Opens the app password settings page" #~ msgstr "Apre la pagina delle impostazioni della password dell'app" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" msgstr "Apre le preferenze del feed Following" @@ -3775,36 +4587,53 @@ msgid "Opens the linked website" msgstr "Apre il sito Web collegato" #: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "" +#~ msgid "Opens the message settings page" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "Apri la pagina della cronologia" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "Apre la pagina del registro di sistema" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "Apre le preferenze dei threads" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "Opzione {0} di {numItems}" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "Facoltativamente, fornisci ulteriori informazioni di seguito:" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "Oppure combina queste opzioni:" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "" + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "Altri" @@ -3815,11 +4644,15 @@ msgstr "Altro account" #~ msgid "Other service" #~ msgstr "Altro servizio" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "Altro..." -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "I nostri moderatori hanno revisionato i report e deciso di disabilitare il tuo accesso ai messaggi su Bluesky." + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Pagina non trovata" @@ -3828,14 +4661,14 @@ msgstr "Pagina non trovata" msgid "Page Not Found" msgstr "Pagina non trovata" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "Password" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "Password Cambiato" @@ -3847,55 +4680,69 @@ msgstr "Password aggiornata" msgid "Password updated!" msgstr "Password aggiornata!" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "Pausa" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "Gente" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "Persone seguite da @{0}" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "Persone che seguono @{0}" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." msgstr "È richiesta l'autorizzazione per accedere al la cartella delle immagini." -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "L'autorizzazione per accedere la cartella delle immagini è stata negata. Si prega di abilitarla nelle impostazioni del sistema." -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "Animali di compagnia" #~ msgid "Phone number" #~ msgstr "Numero di telefono" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Immagini per adulti." -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "Fissa su Home" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "Fissa su Home" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" -msgstr "Feeds Fissi" +msgstr "Feed Fissi" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "Fissa ai tuoi feed" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" msgstr "Play" @@ -3903,7 +4750,7 @@ msgstr "Play" msgid "Play {0}" msgstr "Riproduci {0}" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" msgstr "Riproduci o pausa la GIF" @@ -3916,15 +4763,16 @@ msgstr "Riproduci video" msgid "Plays the GIF" msgstr "Riproduci questa GIF" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "Scegli il tuo nome utente." -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "Scegli la tua password." -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "Si prega di completare il captcha di verifica." @@ -3932,14 +4780,14 @@ msgstr "Si prega di completare il captcha di verifica." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Conferma la tua email prima di cambiarla. Si tratta di un requisito temporaneo durante l'aggiunta degli strumenti di aggiornamento della posta elettronica e verrà presto rimosso." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Inserisci un nome per la password dell'app. Tutti gli spazi non sono consentiti." #~ msgid "Please enter a phone number that can receive SMS text messages." #~ msgstr "Inserisci un numero di telefono in grado di ricevere messaggi di testo SMS." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Inserisci un nome unico per la password dell'app o utilizzane uno generato automaticamente." @@ -3953,21 +4801,31 @@ msgstr "Inserisci una parola, un tag o una frase valida da silenziare" #~ msgid "Please enter the verification code sent to {phoneNumberFormatted}." #~ msgstr "Inserisci il codice di verifica inviato a {phoneNumberFormatted}." -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "Inserisci la tua email." -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "Inserisci anche la tua password:" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Spiega perché ritieni che questa etichetta sia stata applicata in modo errato da {0}" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "Per favore spiega perché pensi che i tuoi messaggi siano stati erroneamente disabiltiati" + #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" -msgstr "" +msgstr "Accedi come @{0}" #~ msgid "Please tell us why you think this content warning was incorrectly applied!" #~ msgstr "Spiegaci perché ritieni che questo avviso sui contenuti sia stato applicato in modo errato!" @@ -3979,11 +4837,12 @@ msgstr "" msgid "Please Verify Your Email" msgstr "Verifica la tua email" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "Attendi il caricamento della scheda di collegamento" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "Politica" @@ -3994,13 +4853,13 @@ msgstr "Porno" #~ msgid "Pornography" #~ msgstr "Pornografia" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "Post" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" msgstr "Post" @@ -4008,35 +4867,35 @@ msgstr "Post" #~ msgid "Post" #~ msgstr "Post" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "Pubblicato da {0}" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "Pubblicato da @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "Post eliminato" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Post nascosto" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" msgstr "Post nascosto dalla Parola Silenziata" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" msgstr "Post nascosto da te" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "Lingua del post" @@ -4044,8 +4903,8 @@ msgstr "Lingua del post" msgid "Post Languages" msgstr "Lingue del post" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Post non trovato" @@ -4053,7 +4912,8 @@ msgstr "Post non trovato" msgid "posts" msgstr "post" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "Post" @@ -4061,7 +4921,7 @@ msgstr "Post" msgid "Posts can be muted based on their text, their tags, or both." msgstr "I post possono essere silenziati ​​in base al testo, ai tag o entrambi." -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "Post nascosto" @@ -4069,61 +4929,76 @@ msgstr "Post nascosto" msgid "Potentially Misleading Link" msgstr "Link potenzialmente fuorviante" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "Premere per tentare di riconnetterti" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "Premi per cambiare provider di hosting" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "Premere per riprovare" -#: src/screens/Messages/Conversation/MessagesList.tsx:47 -#: src/screens/Messages/Conversation/MessagesList.tsx:53 -#~ msgid "Press to Retry" -#~ msgstr "" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Immagine precedente" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "Lingua principale" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "Dai priorità a quelli che segui" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "Privacy" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Informativa sulla privacy" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "Messaggia privatamente con altri utenti." + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "Elaborazione in corso…" -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "profilo" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "Profilo" @@ -4131,11 +5006,11 @@ msgstr "Profilo" msgid "Profile updated" msgstr "Profilo aggiornato" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "Proteggi il tuo account verificando la tua email." -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "Pubblico" @@ -4143,36 +5018,55 @@ msgstr "Pubblico" msgid "Public, shareable lists of users to mute or block in bulk." msgstr "Elenchi pubblici e condivisibili di utenti da disattivare o bloccare in blocco." -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." -msgstr "Liste pubbliche e condivisibili che possono impulsare i feeds." +msgstr "Liste pubbliche e condivisibili che possono impulsare i feed." -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "Pubblica il post" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "Pubblica la risposta" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "Cita il post" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 -msgid "Quote post" -msgstr "Cita il post" +#: src/view/com/modals/Repost.tsx:66 +#~ msgctxt "action" +#~ msgid "Quote post" +#~ msgstr "Cita il post" #: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "Cita il post" +#~ msgctxt "action" +#~ msgid "Quote Post" +#~ msgstr "Cita il post" #~ msgid "Quote Post" #~ msgstr "Cita il post" -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "Selezione a caso (nota anche come \"Poster's Roulette\")" @@ -4180,39 +5074,60 @@ msgstr "Selezione a caso (nota anche come \"Poster's Roulette\")" msgid "Ratios" msgstr "Rapporti" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" msgstr "" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "Motivazione:" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "Ricerche recenti" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:117 #~ msgid "Recommended Feeds" -#~ msgstr "Feeds consigliati" +#~ msgstr "Feed consigliati" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:181 #~ msgid "Recommended Users" #~ msgstr "Utenti consigliati" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "Riconnetti" + +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "Ricarica conversazioni" + #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Rimuovi" #~ msgid "Remove {0} from my feeds?" -#~ msgstr "Rimuovere {0} dai miei feeds?" +#~ msgstr "Rimuovere {0} dai miei feed?" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Rimuovi l'account" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "Rimuovere Avatar" @@ -4220,9 +5135,13 @@ msgstr "Rimuovere Avatar" msgid "Remove Banner" msgstr "Rimuovi il Banner" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "Rimuovi il feed" @@ -4230,15 +5149,16 @@ msgstr "Rimuovi il feed" msgid "Remove feed?" msgstr "Rimuovere il feed?" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "Rimuovi dai miei feed" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "Rimuovere dai miei feed?" @@ -4246,7 +5166,7 @@ msgstr "Rimuovere dai miei feed?" msgid "Remove image" msgstr "Rimuovi l'immagine" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "Rimuovi l'anteprima dell'immagine" @@ -4254,66 +5174,87 @@ msgstr "Rimuovi l'anteprima dell'immagine" msgid "Remove mute word from your list" msgstr "Rimuovi la parola silenziata dalla tua lista" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 -msgid "Remove quote" +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" msgstr "" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 +msgid "Remove quote" +msgstr "Rimuovi citazione" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "Rimuovi la ripubblicazione" #~ msgid "Remove this feed from my feeds?" -#~ msgstr "Rimuovere questo feed dai miei feeds?" +#~ msgstr "Rimuovere questo feed dai miei feed?" #: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "Rimuovi questo feed dai feed salvati" #~ msgid "Remove this feed from your saved feeds?" -#~ msgstr "Elimina questo feed dai feeds salvati?" +#~ msgstr "Elimina questo feed dai feed salvati?" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "Elimina dalla lista" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" -msgstr "Rimuovere dai miei feeds" +msgstr "Rimuovere dai miei feed" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" msgstr "Rimosso dai tuoi feed" #: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "Elimina la miniatura predefinita da {0}" +#~ msgid "Removes default thumbnail from {0}" +#~ msgstr "Elimina la miniatura predefinita da {0}" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" +msgstr "Rimuovi post citato" + +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" msgstr "" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 msgid "Replace with Discover" -msgstr "" +msgstr "Sostituisci con Discover" -#: src/view/screens/Profile.tsx:194 +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "Risposte" -#: src/view/com/threadgate/WhoCanReply.tsx:98 +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "" + +#: src/view/com/threadgate/WhoCanReply.tsx:123 +#~ msgid "Replies on this thread are disabled" +#~ msgstr "" + +#: src/components/WhoCanReply.tsx:243 msgid "Replies to this thread are disabled" msgstr "Le risposte a questo thread sono disabilitate" -#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "Risposta" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "Filtri di risposta" @@ -4321,97 +5262,116 @@ msgstr "Filtri di risposta" #~ msgid "Reply to <0/>" #~ msgstr "In risposta a <0/>" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "Rispondi a <0><1/>" -#: src/components/dms/MessageMenu.tsx:109 -msgid "Report" +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" msgstr "" +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 +msgid "Report" +msgstr "Segnala" + #~ msgid "Report {collectionName}" #~ msgstr "Segnala {collectionName}" -#: src/components/dms/ConvoMenu.tsx:146 -#: src/components/dms/ConvoMenu.tsx:150 -#~ msgid "Report account" -#~ msgstr "" - -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "Segnala l'account" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" -msgstr "" +msgstr "Segnala la conversazione" #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "Segnala il dialogo" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "Segnala il feed" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "Segnala la lista" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" -msgstr "" +msgstr "Segnala il messaggio" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "Segnala il post" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "Segnala questo contenuto" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "Segnala questo feed" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "Segnala questa lista" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" -msgstr "" +msgstr "Segnala questo messaggio" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "Segnala questo post" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "Segnala questo utente" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "Ripubblicare" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "Ripubblicare" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "Ripubblica o cita il post" @@ -4422,7 +5382,7 @@ msgstr "Ripubblica o cita il post" msgid "Reposted By" msgstr "Ripubblicato da" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "Ripubblicato da{0}" @@ -4432,15 +5392,20 @@ msgstr "Ripubblicato da{0}" #~ msgid "Reposted by <0/>" #~ msgstr "Repost di <0/>" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "Ripubblicato da <0><1/>" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "ripubblicato il tuo post" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "Ripubblicazioni di questo post" @@ -4452,12 +5417,12 @@ msgstr "Richiedi un cambio" #~ msgid "Request code" #~ msgstr "Richiedi un codice" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "Richiedi il codice" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "Richiedi il testo alternativo prima di pubblicare" @@ -4465,7 +5430,7 @@ msgstr "Richiedi il testo alternativo prima di pubblicare" msgid "Require email code to log into your account" msgstr "Richiedi il codice via email per accedere al tuo account" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "Obbligatorio per questo operatore" @@ -4474,19 +5439,19 @@ msgstr "Obbligatorio per questo operatore" msgid "Resend email" msgstr "Rinvia l'email" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "Reimpostare il codice" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "Reimposta il Codice" #~ msgid "Reset onboarding" #~ msgstr "Reimposta l'incorporazione" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "Reimposta lo stato dell' incorporazione" @@ -4497,20 +5462,20 @@ msgstr "Reimposta la password" #~ msgid "Reset preferences" #~ msgstr "Reimposta le preferenze" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "Reimposta lo stato delle preferenze" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "Reimposta lo stato dell'incorporazione" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "Reimposta lo stato delle preferenze" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "Ritenta l'accesso" @@ -4519,26 +5484,27 @@ msgstr "Ritenta l'accesso" msgid "Retries the last action, which errored out" msgstr "Ritenta l'ultima azione che ha generato un errore" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" msgstr "Riprova" -#: src/screens/Messages/Conversation/MessageListError.tsx:54 #~ msgid "Retry." #~ msgstr "Riprova." #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "Ritorna alla pagina precedente" @@ -4547,7 +5513,7 @@ msgid "Returns to home page" msgstr "Ritorna su Home" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "Ritorna alla pagina precedente" @@ -4555,21 +5521,23 @@ msgstr "Ritorna alla pagina precedente" #~ msgstr "SANDBOX. I post e gli account non sono permanenti." #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Salva" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "Salva" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Salva il testo alternativo" @@ -4585,29 +5553,37 @@ msgstr "Salva i cambi" msgid "Save handle change" msgstr "Salva la modifica del tuo identificatore" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "Salva il ritaglio dell'immagine" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" msgstr "Salva nei miei feed" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" msgstr "Canali salvati" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" -msgstr "" +msgstr "Salvata nella tua galleria" -#: src/view/com/lightbox/Lightbox.tsx:81 #~ msgid "Saved to your camera roll." #~ msgstr "Salvato nel rullino fotografico." -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "Salvato nei tuoi feed" @@ -4623,39 +5599,47 @@ msgstr "Salva la modifica del cambio dell'utente in {handle}" msgid "Saves image crop settings" msgstr "Salva le impostazioni di ritaglio dell'immagine" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "Di ciao!" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "Scienza" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "Scorri verso l'alto" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "Cerca" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "Cerca \"{query}\"" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" -msgstr "" +msgstr "Cerca \"{searchText}\"" #: src/components/TagMenu/index.tsx:145 msgid "Search for all posts by @{authorHandle} with tag {displayTag}" @@ -4665,25 +5649,28 @@ msgstr "Cerca tutti i post di @{authorHandle} con tag {displayTag}" msgid "Search for all posts with tag {displayTag}" msgstr "Cerca tutti i post con il tag {displayTag}" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." msgstr "" -#: src/view/com/auth/LoggedOut.tsx:105 #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "Cerca utenti" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "Cerca i Gif" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" -msgstr "" +msgstr "Cerca profili" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "Cerca Tenor" @@ -4708,11 +5695,11 @@ msgid "See <0>{displayTag} posts by this user" msgstr "Vedi <0>{displayTag} posts di questo utente" #: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "Vedi il profilo" +#: src/view/com/util/UserAvatar.tsx:402 +#~ msgid "See profile" +#~ msgstr "Vedi il profilo" -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "Consulta questa guida" @@ -4725,7 +5712,7 @@ msgstr "Seleziona {item}" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 msgid "Select a color" -msgstr "" +msgstr "Scegli un colore" #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" @@ -4733,11 +5720,11 @@ msgstr "Seleziona l'account" #: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 msgid "Select an avatar" -msgstr "" +msgstr "Scegli un avatar" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 msgid "Select an emoji" -msgstr "" +msgstr "Scegli un emoji" #~ msgid "Select Bluesky Social" #~ msgstr "Seleziona Bluesky Social" @@ -4746,15 +5733,15 @@ msgstr "" msgid "Select from an existing account" msgstr "Seleziona da un account esistente" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" msgstr "Seleziona GIF" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" msgstr "Seleziona GIF \"{0}\"" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "Seleziona lingue" @@ -4770,14 +5757,14 @@ msgstr "Seleziona l'opzione {i} di {numItems}" #~ msgstr "Selecciona el servei" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "Seleziona alcuni account da seguire qui giù" +#~ msgid "Select some accounts below to follow" +#~ msgstr "Seleziona alcuni account da seguire qui giù" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" -msgstr "" +msgstr "Scegli la {emojiName} emoji come tuo avatar" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "Seleziona il/i servizio/i di moderazione per fare la segnalazione" @@ -4786,57 +5773,65 @@ msgid "Select the service that hosts your data." msgstr "Seleziona il servizio che ospita i tuoi dati." #: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" -msgstr "Seleziona i feeds con temi da seguire dal seguente elenco" +#~ msgid "Select topical feeds to follow from the list below" +#~ msgstr "Seleziona i feed con temi da seguire dal seguente elenco" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" +msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "Seleziona ciò che vuoi vedere (o non vedere) e noi gestiremo il resto." +#~ msgid "Select what you want to see (or not see), and we’ll handle the rest." +#~ msgstr "Seleziona ciò che vuoi vedere (o non vedere) e noi gestiremo il resto." -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." msgstr "Seleziona le lingue che desideri includere nei feed a cui sei iscritto. Se non ne viene selezionata nessuna, verranno visualizzate tutte le lingue." #~ msgid "Select your app language for the default text to display in the app" #~ msgstr "Seleziona la lingua dell'app per il testo predefinito da visualizzare nell'app" -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "Seleziona la lingua dell'app per il testo predefinito da visualizzare nell'app." -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "Seleziona la tua data di nascita" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "Seleziona i tuoi interessi dalle seguenti opzioni" #~ msgid "Select your phone's country" #~ msgstr "Seleziona il Paese del tuo cellulare" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." msgstr "Seleziona la tua lingua preferita per le traduzioni nel tuo feed." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "Seleziona i tuoi feed algoritmici principali" +#~ msgid "Select your primary algorithmic feeds" +#~ msgstr "Seleziona i tuoi feed algoritmici principali" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" -msgstr "Seleziona i tuoi feed algoritmici secondari" +#~ msgid "Select your secondary algorithmic feeds" +#~ msgstr "Seleziona i tuoi feed algoritmici secondari" + +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" +msgstr "Consiglia un sito!" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Invia email di conferma" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "Invia email" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "Invia email" @@ -4844,20 +5839,23 @@ msgstr "Invia email" #~ msgid "Send Email" #~ msgstr "Envia Email" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "Invia feedback" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" +msgstr "Invia messaggio" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." msgstr "" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "Invia la segnalazione" @@ -4873,7 +5871,12 @@ msgstr "Invia la segnalazione a {0}" msgid "Send verification email" msgstr "Invia la email di verifica" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "Invia un'email con il codice di conferma per la cancellazione dell'account" @@ -4888,7 +5891,7 @@ msgstr "Indirizzo del server" #~ msgid "Set Age" #~ msgstr "Imposta l'età" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "Imposta la data di nascita" @@ -4914,26 +5917,26 @@ msgstr "Imposta una nuova password" #~ msgid "Set password" #~ msgstr "Imposta la password" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Seleziona \"No\" per nascondere tutti i post con le citazioni dal tuo feed. I repost saranno ancora visibili." -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Seleziona \"No\" per nascondere tutte le risposte dal tuo feed." -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Seleziona \"No\" per nascondere tutte le ripubblicazioni dal tuo feed." -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Seleziona \"Sì\" per mostrare le risposte in una visualizzazione concatenata. Questa è una funzionalità sperimentale." #~ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." #~ msgstr "Seleziona \"Sì\" per mostrare esempi dei feed salvati nel feed successivo. Questa è una funzionalità sperimentale." -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Imposta questa impostazione su \"Sì\" per mostrare esempi dei tuoi feed salvati nel feed Seguiti. Questa è una funzionalità sperimentale." @@ -4945,23 +5948,23 @@ msgstr "Configura il tuo account" msgid "Sets Bluesky username" msgstr "Imposta il tuo nome utente di Bluesky" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "Imposta il tema colore su scuro" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "Imposta il tema colore su chiaro" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "Imposta il tema colore basato impostazioni di sistema" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "Imposta il tema scuro sul tema scuro" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "Imposta il tema scuro sul tema semi fosco" @@ -4987,12 +5990,11 @@ msgstr "Imposta l'amplio sulle proporzioni dell'immagine" #~ msgid "Sets server for the Bluesky client" #~ msgstr "Imposta il server per il client Bluesky" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "Impostazioni" @@ -5004,55 +6006,95 @@ msgstr "Attività sessuale o nudità erotica." msgid "Sexually Suggestive" msgstr "Sessualmente suggestivo" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "Condividi" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "Condividi" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "Condividi" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "Condividi una storia interessante!" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "Condividi un fatto divertente!" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "Condividi comunque" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "Condividi il feed" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "Condividi il link" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "Condividi il tuo feed preferito!" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "Condivide il sito Web nel link" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "Mostra" -#: src/view/screens/PreferencesFollowingFeed.tsx:68 #~ msgid "Show all replies" #~ msgstr "Mostra tutte le repliche" -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" -msgstr "" +msgstr "Mostra testo alternativo" #: src/components/moderation/ScreenHider.tsx:169 #: src/components/moderation/ScreenHider.tsx:172 @@ -5071,82 +6113,89 @@ msgstr "Mostra badge e filtra dai feed" #~ msgid "Show embeds from {0}" #~ msgstr "Mostra incorporamenti di {0}" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "Mostra follows simile a {0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 -msgid "Show less like this" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 +msgid "Show less like this" +msgstr "Mostra meno come questo" + +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "Mostra di più" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" msgstr "Mostra post dai miei feed" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "Mostra post con citazioni" #: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "Mostra i post con citazioni nel feed Seguiti" +#~ msgid "Show quote-posts in Following feed" +#~ msgstr "Mostra i post con citazioni nel feed Seguiti" #: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "Mostra le citazioni in Seguiti" +#~ msgid "Show quotes in Following" +#~ msgstr "Mostra le citazioni in Seguiti" #: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "Mostra re-post nel feed Seguiti" +#~ msgid "Show re-posts in Following feed" +#~ msgstr "Mostra re-post nel feed Seguiti" -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "Mostra risposte" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "Mostra le risposte delle persone che segui prima delle altre risposte." #: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "Mostra le risposte in Seguiti" +#~ msgid "Show replies in Following" +#~ msgstr "Mostra le risposte in Seguiti" #: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "Mostra le risposte nel feed Seguiti" +#~ msgid "Show replies in Following feed" +#~ msgstr "Mostra le risposte nel feed Seguiti" -#: src/view/screens/PreferencesFollowingFeed.tsx:70 #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Mostra risposte con almeno {value} {0}" -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "Mostra ripubblicazioni" #: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "Mostra i re-repost in Seguiti" +#~ msgid "Show reposts in Following" +#~ msgstr "Mostra i re-repost in Seguiti" -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "Mostra il contenuto" #: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "Mostra utenti" +#~ msgid "Show users" +#~ msgstr "Mostra utenti" #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" @@ -5167,17 +6216,17 @@ msgstr "Mostra i post di {0} nel tuo feed" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -5206,17 +6255,17 @@ msgstr "Accedi o crea il tuo account per partecipare alla conversazione!" msgid "Sign into Bluesky or create a new account" msgstr "Accedi a Bluesky o crea un nuovo account" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "Disconnetta" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -5232,7 +6281,7 @@ msgstr "Iscriviti o accedi per partecipare alla conversazione" msgid "Sign-in Required" msgstr "È richiesta l'autenticazione" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "Registrato/a come" @@ -5241,68 +6290,105 @@ msgstr "Registrato/a come" msgid "Signed in as @{0}" msgstr "Registrato/a come @{0}" +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "" + #~ msgid "Signs {0} out of Bluesky" #~ msgstr "{0} esce da Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "Salta questo passo" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "Salta questa corrente" #~ msgid "SMS verification" #~ msgstr "Verifica tramite SMS" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "Sviluppo Software" -#: src/screens/Messages/Conversation/index.tsx:89 -msgid "Something went wrong" +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" msgstr "" +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "Solo alcune persone possono rispondere" + +#: src/screens/StarterPack/Wizard/index.tsx:203 +#~ msgid "Some subtitle" +#~ msgstr "" + +#: src/screens/Messages/Conversation/index.tsx:106 +msgid "Something went wrong" +msgstr "Qualcosa è andato storto" + #~ msgid "Something went wrong and we're not sure what." #~ msgstr "Qualcosa è andato storto ma non siamo sicuri di cosa." +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "Qualcosa è andato male, prova di nuovo." +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "" + #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "Qualcosa è andato storto. Controlla la tua email e riprova." -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "Scusa! La tua sessione è scaduta. Per favore accedi di nuovo." -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "Ordina le risposte" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "Ordina le risposte allo stesso post per:" -#: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" -msgstr "Origine:" +#~ msgid "Source:" +#~ msgstr "Origine:" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" +msgstr "Fonte: <0>{0}" + +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "Spam" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "Spam; menzioni o risposte eccessive" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "Sports" @@ -5313,72 +6399,112 @@ msgstr "Quadrato" #~ msgid "Staging" #~ msgstr "Allestimento" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" +msgstr "Avvia una nuova conversazione" + +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "Avvia conversazione con {displayName}" + +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "Iniza a conversare" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "" + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." msgstr "" -#: src/view/screens/Settings/index.tsx:862 #~ msgid "Status page" #~ msgstr "Pagina di stato" -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" -msgstr "" +msgstr "Pagina di stato" -#: src/screens/Signup/index.tsx:145 #~ msgid "Step" #~ msgstr "Passo" -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" -msgstr "" +msgstr "Step {0} di {1}" #~ msgid "Step {0} of {numSteps}" #~ msgstr "Passo {0} di {numSteps}" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "Spazio di archiviazione eliminato. Riavvia l'app." -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "Cronologia" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "Invia" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "Iscriviti" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "Iscriviti a @{0} per utilizzare queste etichette:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "Iscriviti a Labeler" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "Iscriviti a {0} feed" +#~ msgid "Subscribe to the {0} feed" +#~ msgstr "Iscriviti a {0} feed" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "Iscriviti a questo labeler" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "Iscriviti alla lista" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "Accounts da seguire" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "" +#: src/view/screens/Search/Search.tsx:425 +#~ msgid "Suggested Follows" +#~ msgstr "Accounts da seguire" + +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Suggerito per te" @@ -5387,7 +6513,7 @@ msgstr "Suggerito per te" msgid "Suggestive" msgstr "Suggestivo" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -5401,19 +6527,23 @@ msgstr "Supporto" msgid "Switch Account" msgstr "Cambia account" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "Cambia a {0}" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "Cambia l'account dal quale hai effettuato l'accesso" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "Registro di sistema" @@ -5429,29 +6559,51 @@ msgstr "Tag menu: {displayTag}" msgid "Tall" msgstr "Alto" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "Tocca per visualizzare completamente" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "Tecnologia" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "Racconta una barzalletta!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "Termini" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Termini di servizio" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "I termini utilizzati violano gli standard della comunità" @@ -5459,12 +6611,13 @@ msgstr "I termini utilizzati violano gli standard della comunità" msgid "text" msgstr "testo" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Campo di testo" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "Grazie. La tua segnalazione è stata inviata." @@ -5472,16 +6625,24 @@ msgstr "Grazie. La tua segnalazione è stata inviata." msgid "That contains the following:" msgstr "Che contiene il seguente:" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "Questo handle è già stato preso." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "L'account sarà in grado di interagire con te dopo lo sblocco." -#: src/components/moderation/ModerationDetailsDialog.tsx:127 #~ msgid "the author" #~ msgstr "l'autore" @@ -5493,15 +6654,24 @@ msgstr "Le Linee guida della community sono state spostate a<0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "La politica sul copyright è stata spostata a <0/>" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 -msgid "The feed has been replaced with Discover." +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 +msgid "The feed has been replaced with Discover." +msgstr "Questo feed è stato sostituito con Discover." + +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "Al tuo account sono state applicate le seguenti etichette." -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "Ai tuoi contenuti sono state applicate le seguenti etichette." @@ -5509,8 +6679,8 @@ msgstr "Ai tuoi contenuti sono state applicate le seguenti etichette." msgid "The following steps will help customize your Bluesky experience." msgstr "I passaggi seguenti ti aiuteranno a personalizzare la tua esperienza con Bluesky." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Il post potrebbe essere stato cancellato." @@ -5518,6 +6688,10 @@ msgstr "Il post potrebbe essere stato cancellato." msgid "The Privacy Policy has been moved to <0/>" msgstr "La politica sulla privacy è stata spostata a <0/><0/>" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "" + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "Il modulo di supporto è stato spostato. Se hai bisogno di aiuto, <0/> o visita {HELP_DESK_URL} per metterti in contatto con noi." @@ -5530,51 +6704,56 @@ msgid "The Terms of Service have been moved to" msgstr "I Termini di Servizio sono stati spostati a" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" -msgstr "Ci sono molti feed da provare:" +#~ msgid "There are many feeds to try:" +#~ msgstr "Ci sono molti feed da provare:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Si è verificato un problema nel contattare il server, controlla la tua connessione Internet e riprova." -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Si è verificato un problema durante la rimozione di questo feed. Per favore controlla la tua connessione Internet e prova di nuovo." #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Si è verificato un problema durante la rimozione di questo feed. Per favore controlla la tua connessione Internet e prova di nuovo." -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." msgstr "Si è verificato un problema durante la connessione a Tenor." #: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" +#~ msgid "There was an issue connecting to the chat." +#~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "Si è verificato un problema durante il contatto con il server" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "Si è verificato un problema durante il contatto con il tuo server" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Si è verificato un problema durante il recupero delle notifiche. Tocca qui per riprovare." -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Si è verificato un problema nel recupero dei post. Tocca qui per riprovare." @@ -5582,51 +6761,53 @@ msgstr "Si è verificato un problema nel recupero dei post. Tocca qui per riprov msgid "There was an issue fetching the list. Tap here to try again." msgstr "Si è verificato un problema durante il recupero dell'elenco. Tocca qui per riprovare." -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Si è verificato un problema durante il recupero delle tue liste. Tocca qui per riprovare." -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Si è verificato un problema durante l'invio della segnalazione. Per favore controlla la tua connessione Internet." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "Si è verificato un problema durante la sincronizzazione delle tue preferenze con il server" +#~ msgid "There was an issue syncing your preferences with the server" +#~ msgstr "Si è verificato un problema durante la sincronizzazione delle tue preferenze con il server" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Si è verificato un problema durante il recupero delle password dell'app" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "Si è verificato un problema! {0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "Si è verificato un problema. Per favore controlla la tua connessione Internet e prova di nuovo." -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "Si è verificato un problema imprevisto nell'applicazione. Per favore facci sapere se ti è successo!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "C'è stata un'ondata di nuovi utenti su Bluesky! Attiveremo il tuo account il prima possibile." @@ -5634,8 +6815,8 @@ msgstr "C'è stata un'ondata di nuovi utenti su Bluesky! Attiveremo il tuo accou #~ msgstr "C'è qualcosa di sbagliato in questo numero. Scegli il tuo Paese e inserisci il tuo numero di telefono completo!" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "Questi sono gli account popolari che potrebbero piacerti:" +#~ msgid "These are popular accounts you might like:" +#~ msgstr "Questi sono gli account popolari che potrebbero piacerti:" #~ msgid "This {0} has been labeled." #~ msgstr "Questo {0} è stato etichettato." @@ -5648,13 +6829,21 @@ msgstr "Questa {screenDescription} è stata segnalata:" msgid "This account has requested that users sign in to view their profile." msgstr "Questo account ha richiesto agli utenti di accedere Bluesky per visualizzare il profilo." -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "Questo account è bloccato da uno o più appartenente alle tue liste di moderazione. Per sbloccare, visista le liste direttamente e rimuovi l'utente." + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "Questo ricorso verrà inviato a <0>{0}." -#: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." -msgstr "" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." +msgstr "Questo appello verrà inviato al servizio di moderazione Bluesky." + +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "Questa chat è stata disconnessa" #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." @@ -5669,39 +6858,49 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Questo contenuto è hosted da {0}. Vuoi abilitare i media esterni?" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Questo contenuto non è disponibile perché uno degli utenti coinvolti ha bloccato l'altro." -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "Questo contenuto non è visualizzabile senza un account Bluesky." +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "" + #~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." #~ msgstr "Questa funzionalità è in versione beta. Puoi leggere ulteriori informazioni sulle esportazioni dell' archivio in <0>questo post del blog." -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "Questa funzionalità è in versione beta. Puoi leggere ulteriori informazioni sulle esportazioni del repository in <0>questo post del blog." -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Questo canale al momento sta ricevendo molte visite ed è temporaneamente non disponibile. Riprova più tardi." #: src/screens/Profile/Sections/Feed.tsx:59 #: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "Questo feed è vuoto!" +#: src/view/screens/ProfileList.tsx:729 +#~ msgid "This feed is empty!" +#~ msgstr "Questo feed è vuoto!" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Questo feed è vuoto! Prova a seguire più utenti o ottimizza le impostazioni della lingua." -#: src/view/com/posts/FeedShutdownMsg.tsx:97 -msgid "This feed is no longer online. We are showing <0>Discover instead." +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:99 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "Questo feed non è più online. Stiamo mostrando <0>Discover al suo posto." + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Queste informazioni non vengono condivise con altri utenti." @@ -5713,23 +6912,22 @@ msgstr "Questo è importante nel caso in cui avessi bisogno di modificare la tua #~ msgid "This is the service that keeps you online." #~ msgstr "Questo è il servizio che ti mantiene online." -#: src/components/moderation/ModerationDetailsDialog.tsx:124 #~ msgid "This label was applied by {0}." #~ msgstr "Questa etichetta è stata applicata da {0}." #: src/components/moderation/ModerationDetailsDialog.tsx:127 msgid "This label was applied by <0>{0}." -msgstr "" +msgstr "Questa etichetta è stata applicata da <0>{0}." #: src/components/moderation/ModerationDetailsDialog.tsx:125 msgid "This label was applied by the author." -msgstr "" +msgstr "Questa etichetta è stata applicata dall'autore." -#: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" -msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." +msgstr "Questa etichetta è stata applicata da te." -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "Questo etichettatore non ha dichiarato quali etichette pubblica e potrebbe non essere attivo." @@ -5737,7 +6935,7 @@ msgstr "Questo etichettatore non ha dichiarato quali etichette pubblica e potreb msgid "This link is taking you to the following website:" msgstr "Questo link ti porta al seguente sito web:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "La lista è vuota!" @@ -5745,24 +6943,24 @@ msgstr "La lista è vuota!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "Questo servizio di moderazione non è disponibile. Vedi giù per ulteriori dettagli. Se il problema persiste, contattaci." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "Questo nome è già in uso" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "Questo post è stato cancellato." -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Questo post è visibile solo agli utenti registrati. Non sarà visibile alle persone che non hanno effettuato l'accesso." -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "Questo post verrà nascosto dai feed." -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Questo profilo è visibile solo agli utenti registrati. Non sarà visibile alle persone che non hanno effettuato l'accesso." @@ -5778,8 +6976,12 @@ msgstr "Questo dovrebbe creare un record di dominio in:" msgid "This user doesn't have any followers." msgstr "Questo utente non ha follower." +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "Questo utente ti ha bloccato" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "Questo utente ti ha bloccato. Non è possibile visualizzare il suo contenuto." @@ -5804,11 +7006,14 @@ msgstr "Questo utente è incluso nell'elenco <0>{0} che hai silenziato." #~ msgid "This user is included the <0/> list which you have muted." #~ msgstr "Questo utente è incluso nella lista <0/> che hai silenziato." +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "" + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "Questo utente non sta seguendo nessuno." -#: src/view/com/modals/SelfLabel.tsx:137 #~ msgid "This warning is only available for posts with media attached." #~ msgstr "Questo avviso è disponibile solo per i post con contenuti multimediali allegati." @@ -5817,22 +7022,26 @@ msgid "This will delete {0} from your muted words. You can always add it back la msgstr "Questo eliminerà {0} dalle parole disattivate. Puoi sempre aggiungerla nuovamente in seguito." #~ msgid "This will hide this post from your feeds." -#~ msgstr "Questo nasconderà il post dai tuoi feeds." +#~ msgstr "Questo nasconderà il post dai tuoi feed." -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" msgstr "Preferenze delle discussioni" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "Preferenze delle Discussioni" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "Modalità discussione" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "Preferenze per le discussioni" @@ -5840,9 +7049,9 @@ msgstr "Preferenze per le discussioni" msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "Per disabilitare il metodo 2FA via e-mail, verifica il tuo accesso all'indirizzo e-mail." -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." -msgstr "" +msgstr "Per segnalare una conversazione, segnala uno dei messaggi nella schermata della conversazione. Questo permetterà ai nostri moderatori di capire il contesto del problema." #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" @@ -5852,16 +7061,16 @@ msgstr "A chi desideri inviare questo report?" msgid "Toggle between muted word options." msgstr "Alterna tra le opzioni delle parole silenziate." -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "Attiva/disattiva il menu a discesa" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "Seleziona per abilitare o disabilitare i contenuti per adulti" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "Top" @@ -5869,10 +7078,12 @@ msgstr "Top" msgid "Transformations" msgstr "Trasformazioni" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "Tradurre" @@ -5884,65 +7095,81 @@ msgstr "Riprova" #~ msgid "Try again" #~ msgstr "Provalo di nuovo" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "Autenticazione a due fattori" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" -msgstr "" +msgstr "Scrivi il tuo messaggio qui" #: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "Tipo:" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "Sblocca la lista" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "Riattiva questa lista" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Impossibile contattare il servizio. Per favore controlla la tua connessione Internet." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "Sblocca" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "Sblocca" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "Sblocca l'account" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "Sblocca Account" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" msgstr "Sblocca Account?" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "Annulla la ripubblicazione" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "Smetti di seguire" @@ -5951,28 +7178,27 @@ msgstr "Smetti di seguire" msgid "Unfollow" msgstr "Smetti di seguire" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "Smetti di seguire {0}" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "Smetti di seguire questo account" #~ msgid "Unfortunately, you do not meet the requirements to create an account." #~ msgstr "Sfortunatamente, non soddisfi i requisiti per creare un account." -#: src/view/com/util/post-ctrls/PostCtrls.tsx:197 #~ msgid "Unlike" #~ msgstr "Togli Mi piace" -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "Togli il like a questo feed" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "Riattiva" @@ -5980,8 +7206,8 @@ msgstr "Riattiva" msgid "Unmute {truncatedTag}" msgstr "Riattiva {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "Riattiva questo account" @@ -5989,49 +7215,49 @@ msgstr "Riattiva questo account" msgid "Unmute all {displayTag} posts" msgstr "Riattiva tutti i post di {displayTag}" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" -msgstr "" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" +msgstr "Riattiva conversazione" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" msgstr "Riattiva questa discussione" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "Stacca dal profilo" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "Stacca dalla Home" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "Stacca la lista di moderazione" +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "Sblocca dai tuoi feed" + #~ msgid "Unsave" #~ msgstr "Rimuovi" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Annulla l'iscrizione" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "Annulla l'iscrizione a questo/a labeler" +#: src/lib/moderation/useReportOptions.ts:72 #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" - -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "Contenuti Sessuali Indesiderati" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "Aggiorna {displayName} negli elenchi" @@ -6046,28 +7272,28 @@ msgstr "Aggiorna a {handle}" msgid "Updating..." msgstr "In aggiornamento..." -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" -msgstr "" +msgstr "Alternativamente carica una foto" #: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Carica una file di testo a:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "Carica dalla fotocamera" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "Carica dai Files" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -6077,7 +7303,7 @@ msgstr "Carica dalla Libreria" msgid "Use a file on your server" msgstr "Utilizza un file sul tuo server" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utilizza le password dell'app per accedere ad altri client Bluesky senza fornire l'accesso completo al tuo account o alla tua password." @@ -6101,13 +7327,13 @@ msgstr "Utilizza il mio browser predefinito" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 msgid "Use recommended" -msgstr "" +msgstr "Usa consigliati" #: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "Utilizza il pannello DNS" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Utilizza questo per accedere all'altra app insieme al tuo nome utente." @@ -6119,19 +7345,23 @@ msgid "Used by:" msgstr "Usato da:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "Utente bloccato" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr "Utente bloccato da \"{0}\"" +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "Utente bloccato dalla lista" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "Utente bloccato dalla lista" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "Questo Utente ti Blocca" @@ -6142,46 +7372,53 @@ msgstr "Questo utente ti blocca" #~ msgid "User handle" #~ msgstr "Handle dell'utente" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "Lista di {0}" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "Lista di<0/>" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "La tua lista" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "Lista creata" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "Lista aggiornata" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "Liste publiche" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "Nome utente o indirizzo Email" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "Utenti" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "utenti seguiti da <0/>" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "Utenti che seguo" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "Utenti in «{0}»" @@ -6196,23 +7433,22 @@ msgstr "Valore:" #~ msgid "Verification code" #~ msgstr "Codice di verifica" -#: src/view/com/modals/ChangeHandle.tsx:510 #~ msgid "Verify {0}" #~ msgstr "Verifica {0}" #: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" -msgstr "" +msgstr "Verifica record DNS" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "Verifica Email" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "Verifica la mia email" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "Verifica la Mia Email" @@ -6229,35 +7465,47 @@ msgstr "" msgid "Verify Your Email" msgstr "Verifica la tua email" -#: src/view/screens/Settings/index.tsx:852 #~ msgid "Version {0}" #~ msgstr "Versione {0}" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" -msgstr "" +msgstr "Versione {appVersion} {bundleInfo}" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "Video Games" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "Vedi l'avatar di {0}" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "Vedi le informazioni del debug" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "Vedere dettagli" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "Visualizza i dettagli per segnalare una violazione del copyright" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "Vedi la discussione completa" @@ -6265,13 +7513,15 @@ msgstr "Vedi la discussione completa" msgid "View information about these labels" msgstr "Visualizza le informazioni su queste etichette" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Vedi il profilo" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "Vedi l'avatar" @@ -6279,10 +7529,15 @@ msgstr "Vedi l'avatar" msgid "View the labeling service provided by @{0}" msgstr "Visualizza il servizio di etichettatura fornito da @{0}" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "Visualizza gli utenti a cui piace questo feed" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -6291,7 +7546,6 @@ msgstr "Visita il sito" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Avvisa" @@ -6310,15 +7564,15 @@ msgstr "Avvisa i contenuti e filtra dai feed" msgid "We couldn't find any results for that hashtag." msgstr "Non siamo riusciti a trovare alcun risultato per quell'hashtag." -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" -msgstr "" +msgstr "Non riusciamo a caricare questa conversazione" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Stimiamo {estimatedTime} prima che il tuo account sia pronto." -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Speriamo di darti dei momenti dei bei momenti. Ricorda, Bluesky è:" @@ -6331,37 +7585,41 @@ msgid "We recommend avoiding common words that appear in many posts, since it ca msgstr "Ti consigliamo di evitare usare parole comuni che compaiono in molti post, perchè ciò potrebbe comportare la mancata visualizzazione dei post." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "Consigliamo il nostro feed \"Scopri\":" +#~ msgid "We recommend our \"Discover\" feed:" +#~ msgstr "Consigliamo il nostro feed \"Scopri\":" #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "Non siamo riusciti a caricare le tue preferenze relative alla data di nascita. Per favore riprova." -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "Al momento non è stato possibile caricare le etichettatori configurati." -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Non siamo riusciti a connetterci. Riprova per continuare a configurare il tuo account. Se il problema persiste, puoi ignorare questo flusso." -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "Ti faremo sapere quando il tuo account sarà pronto." #~ msgid "We'll look into your appeal promptly." #~ msgstr "Esamineremo il tuo ricorso al più presto." -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "Lo useremo per personalizzare la tua esperienza." -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "Stiamo riscontrando problemi di rete, riprova" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "Siamo felici che tu ti unisca a noi!" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Siamo spiacenti, ma non siamo riusciti a risolvere questa lista. Se il problema persiste, contatta il creatore della lista, @{handleOrDid}." @@ -6369,27 +7627,46 @@ msgstr "Siamo spiacenti, ma non siamo riusciti a risolvere questa lista. Se il p msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Siamo spiacenti, ma al momento non siamo riusciti a caricare le parole silenziate. Per favore riprova si nuovo." -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Siamo spiacenti, ma non è stato possibile completare la ricerca. Riprova tra qualche minuto." -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "" + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Ci dispiace! Non riusciamo a trovare la pagina che stavi cercando." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." -msgstr "Ci dispiace! Puoi abbonarti solo a dieci etichettatori e hai raggiunto il limite di dieci." +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 +#~ msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#~ msgstr "Ci dispiace! Puoi abbonarti solo a dieci etichettatori e hai raggiunto il limite di dieci." + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "" + +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" +msgstr "" -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Ti diamo il benvenuto a <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" msgstr "Quali sono i tuoi interessi?" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "" + #~ msgid "What is the issue with this {collectionName}?" #~ msgstr "Qual è il problema con questo {collectionName}?" @@ -6398,7 +7675,7 @@ msgstr "Quali sono i tuoi interessi?" #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "Come va?" @@ -6408,38 +7685,55 @@ msgstr "Che lingue sono utilizzate in questo post?" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:77 msgid "Which languages would you like to see in your algorithmic feeds?" -msgstr "Quali lingue vorresti vedere negli algoritmi dei tuoi feeds?" +msgstr "Quali lingue vorresti vedere negli algoritmi dei tuoi feed?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "Chi puoi inviarti messaggi?" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "Chi può rispondere" -#: src/screens/Home/NoFeedsPinned.tsx:92 -msgid "Whoops!" +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 +msgid "Whoops!" +msgstr "Ops!" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "Perché questo contenuto dovrebbe essere revisionato?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "Perché questo feed dovrebbe essere revisionato?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "Perché questa lista dovrebbe essere revisionata?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" -msgstr "" +msgstr "Perché questo messaggio dovrebbe essere revisionato?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "Perché questo post dovrebbe essere revisionato?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "Perché questo utente dovrebbe essere revisionato?" @@ -6447,21 +7741,22 @@ msgstr "Perché questo utente dovrebbe essere revisionato?" msgid "Wide" msgstr "Largo" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" -msgstr "" +msgstr "Scrivi un messaggio" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "Scrivi un post" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "Scrivi la tua risposta" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "Scrittori" @@ -6469,20 +7764,41 @@ msgstr "Scrittori" #~ msgstr "XXXXXX" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "Si" -#: src/components/dms/MessageItem.tsx:158 -msgid "Yesterday, {time}" +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" msgstr "" -#: src/screens/Deactivated.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "" + +#: src/components/dms/MessageItem.tsx:182 +msgid "Yesterday, {time}" +msgstr "Ieri, {time}" + +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "Sei nella fila." @@ -6490,61 +7806,84 @@ msgstr "Sei nella fila." msgid "You are not following anyone." msgstr "Non stai seguendo nessuno." -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "Puoi anche scoprire nuovi feed personalizzati da seguire." +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "" + #~ msgid "You can change hosting providers at any time." #~ msgstr "Puoi cambiare provider di hosting in qualsiasi momento." #: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." -msgstr "Potrai modificare queste impostazioni in seguito." +#~ msgid "You can change these settings later." +#~ msgstr "Potrai modificare queste impostazioni in seguito." + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "Puoi modificarlo in qualsiasi momento." + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "Puoi proseguire le conversazioni in corso indipendentemente da quale settaggio scegli." #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." msgstr "Adesso puoi accedere con la tua nuova password." +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "Non hai follower." +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Non hai ancora alcun codice di invito! Te ne invieremo alcuni quando utilizzerai Bluesky per un po' più a lungo." -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." msgstr "Non hai fissato nessun feed." -#: src/view/screens/Feeds.tsx:477 #~ msgid "You don't have any saved feeds!" #~ msgstr "Non hai salvato nessun feed!" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." msgstr "Non hai salvato nessun feed." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Hai bloccato l'autore o sei stato bloccato dall'autore." +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "Hai bloccato questo utente" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "Hai bloccato questo utente. Non è possibile visualizzare il contenuto." #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Hai inserito un codice non valido. Dovrebbe apparire come XXXX-XXXXXX." -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "Hai nascosto questo post" @@ -6553,30 +7892,30 @@ msgid "You have hidden this post." msgstr "Hai silenziato questo post." #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "Hai silenziato questo account." -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "Hai silenziato questo utente" #~ msgid "You have muted this user." #~ msgstr "Hai disattivato questo utente." -#: src/view/com/feeds/ProfileFeedgens.tsx:144 -msgid "You have no feeds." -msgstr "Non hai feeds." +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "Non hai ancora nessuna conversazione. Avviane una!" -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/feeds/ProfileFeedgens.tsx:137 +msgid "You have no feeds." +msgstr "Non hai feed." + +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." msgstr "Non hai liste." -#: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "" - #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "Non hai ancora bloccato nessun account. Per bloccare un account, vai sul profilo e seleziona \"Blocca account\" dal menu dell'account." @@ -6584,7 +7923,7 @@ msgstr "Non hai ancora bloccato nessun account. Per bloccare un account, vai sul #~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." #~ msgstr "Non hai ancora bloccato nessun conto. Per bloccare un conto, vai al profilo e seleziona \"Blocca conto\" dal menu del suo conto." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Non hai ancora creato alcuna password per l'app. Puoi crearne uno premendo il pulsante qui sotto." @@ -6595,18 +7934,34 @@ msgstr "Non hai ancora silenziato nessun account. Per silenziare un account, vai #~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." #~ msgstr "Non hai ancora disattivato alcun account. Per disattivare un account, vai al suo profilo e seleziona \"Disattiva account\" dal menu del account." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "Hai raggiunto la fine" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Non hai ancora silenziato nessuna parola o tag" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." -msgstr "" +msgstr "Ti puoi appellare alle etichette se pensi che sia stata applicata per errore." -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Puoi presentare ricorso contro queste etichette se ritieni che siano state inserite per errore." +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "" + #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "Per iscriverti devi avere almeno 13 anni." @@ -6615,18 +7970,34 @@ msgstr "Per iscriverti devi avere almeno 13 anni." #~ msgstr "Devi avere almeno 18 anni per abilitare i contenuti per adulti." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" -msgstr "Devi avere almeno 18 anni per abilitare i contenuti per adulti" +#~ msgid "You must be 18 years or older to enable adult content" +#~ msgstr "Devi avere almeno 18 anni per abilitare i contenuti per adulti" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "" + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "È necessario selezionare almeno un'etichettatore per un report" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "Non riceverai più notifiche per questo filo di discussione" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "Adesso riceverai le notifiche per questa discussione" @@ -6634,60 +8005,98 @@ msgstr "Adesso riceverai le notifiche per questa discussione" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Riceverai un'email con un \"codice di reset\". Inserisci il codice qui, poi inserisci la nuova password." -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" +msgstr "Tu: {0}" + +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "" + +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "Sei in controllo" +#~ msgid "You're in control" +#~ msgstr "Sei in controllo" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "Sei in fila" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "" + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "Sei pronto per iniziare!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "Hai scelto di nascondere una parola o un tag in questo post." -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Hai raggiunto la fine del tuo feed! Trova altri account da seguire." -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "Il tuo account" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "Il tuo account è stato eliminato" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "L'archivio del tuo account, che contiene tutti i record di dati pubblici, può essere scaricato come file \"CAR\". Questo file non include elementi multimediali incorporati, come immagini o dati privati, che devono essere recuperati separatamente." -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "La tua data di nascita" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "Le tue conversazioni sonos state disabiltate" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "La tua scelta verrà salvata, ma potrà essere modificata successivamente nelle impostazioni." #: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "Il tuo feed predefinito è \"Following\"" +#~ msgid "Your default feed is \"Following\"" +#~ msgstr "Il tuo feed predefinito è \"Following\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "Your email appears to be invalid." @@ -6702,11 +8111,15 @@ msgstr "La tua email è stata aggiornata ma non verificata. Come passo successiv msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "La tua email non è stata ancora verificata. Ti consigliamo di fare questo importante passo per la sicurezza del tuo account." -#: src/view/com/posts/FollowingEmptyState.tsx:47 +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:43 msgid "Your following feed is empty! Follow more users to see what's happening." msgstr "Il tuo feed seguente è vuoto! Segui più utenti per vedere cosa sta succedendo." -#: src/screens/Signup/StepHandle.tsx:73 +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "Il tuo nome di utente completo sarà" @@ -6724,30 +8137,34 @@ msgstr "Il tuo nome di utente completo sarà <0>@{0}" msgid "Your muted words" msgstr "Le tue parole silenziate" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "La tua password è stata modificata correttamente!" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "Il tuo post è stato pubblicato" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "I tuoi post, i tuoi Mi piace e i tuoi blocchi sono pubblici. I conti silenziati sono privati." -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "Il tuo profilo" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "" + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "La tua risposta è stata pubblicata" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" -msgstr "" +msgstr "La tua segnalazione verrà inviata al Servizio Moderazione di Bluesky" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "Il tuo handle utente" diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index c1f3083fd4..e5ea1427ec 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -8,188 +8,254 @@ msgstr "" "Language: ja\n" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-05-06 15:47+0900\n" +"PO-Revision-Date: 2024-07-24 09:47+0900\n" "Last-Translator: tkusano\n" "Language-Team: Hima-Zinn, tkusano, dolciss, oboenikui, noritada, middlingphys, hibiki, reindex-ot, haoyayoi, vyv03354\n" "Plural-Forms: \n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "(埋め込みコンテンツあり)" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" -msgstr "メールがありません" +msgstr "(メールがありません)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" -msgstr "" +msgstr "{0, plural, other {他{formattedCount}人}}" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" -msgstr "" +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" +msgstr "{0, plural, other {#個のラベルがこのアカウントに適用されています}}" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" -msgstr "" +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" +msgstr "{0, plural, other {#個のラベルがこのコンテンツに適用されています}}" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" -msgstr "" +msgstr "{0, plural, other {#回のリポスト}}" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" -msgstr "" +msgstr "{0, plural, other {フォロワー}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" -msgstr "" +msgstr "{0, plural, other {フォロー中}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" -msgstr "" +msgstr "{0, plural, other {いいね(#個のいいね)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" -msgstr "" +msgstr "{0, plural, other {いいね}}" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{0, plural, other {#人のユーザーがいいね}}" #: src/screens/Profile/Header/Metrics.tsx:59 msgid "{0, plural, one {post} other {posts}}" -msgstr "" +msgstr "{0, plural, other {投稿}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" -msgstr "" +msgstr "{0, plural, other {返信(#件の返信)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" -msgstr "" +msgstr "{0, plural, other {リポスト}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" -msgstr "" +msgstr "{0, plural, other {いいねを外す(#個のいいね)}}" -#: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" -msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "今週、{0}人が参加しました" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "{0}人がこのスターターパックを使用しました!" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "{0}のアバター" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "{0}のお気に入りのフィードとユーザーです - 参加してね!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" +msgstr "{0}のスターターパック" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{count, plural, other {#人のユーザーがいいね}}" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "{diff, plural, other {日}}" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "{diff, plural, other {時間}}" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "{diff, plural, other {分}}" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "{diff, plural, other {ヶ月}}" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "{diffSeconds, plural, other {秒}}" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "{displayName}のスターターパック" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" -msgstr "" +msgstr "{estimatedTimeHrs, plural, other {時間}}" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" -msgstr "" +msgstr "{estimatedTimeMins, plural, other {分}}" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} フォロー" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 -msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "{handle}にメッセージを送れません" -#: src/view/shell/Drawer.tsx:461 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 +msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" +msgstr "{likeCount, plural, other {#人のユーザーがいいね}}" + +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications}件の未読" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "{profileName}はBlueskyに{0}前に参加しました" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "{profileName}はスターターパックを使って{0}前に参加しました" + #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" -msgstr "" +msgstr "{value, plural, =0 {すべての返信を表示} other {#個以上のいいねがついた返信を表示}}" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "<0/>のメンバー" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}、<1>{1}、そして{2, plural, other {他#人}}があなたのスターターパックに含まれています" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}、<1>{1}、そして{2, plural, other {他#フィード}}があなたのスターターパックに含まれています" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" -msgstr "" +msgstr "<0>{0} {1, plural, other {フォロワー}}" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" -msgstr "" +msgstr "<0>{0} {1, plural, other {フォロー}}" -#: src/view/shell/Drawer.tsx:96 -#~ msgid "<0>{0} following" -#~ msgstr "<0>{0} フォロー" +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "<0>{0}と<2>{1}はあなたのスターターパックに含まれています" -#: src/components/ProfileHoverCard/index.web.tsx:437 -#~ msgid "<0>{followers} <1>{pluralizedFollowers}" -#~ msgstr "<0>{followers} <1>フォロワー" - -#: src/components/ProfileHoverCard/index.web.tsx:449 -#: src/screens/Profile/Header/Metrics.tsx:45 -#~ msgid "<0>{following} <1>following" -#~ msgstr "<0>{following} <1>フォロー" +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "<0>{0}はあなたのスターターパックに含まれています" #: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." -msgstr "" +msgstr "<0>適用できません。 この警告はメディアが添付された投稿にのみ利用可能です。" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "<0>あなたと<1><2>{0}はあなたのスターターパックに含まれています" + +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "⚠無効なハンドル" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" msgstr "2要素認証の確認" -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "ヘルプ・ツールチップ" + +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "ナビゲーションリンクと設定にアクセス" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "プロフィールと他のナビゲーションリンクにアクセス" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "アクセシビリティ" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" msgstr "アクセシビリティの設定" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" msgstr "アクセシビリティの設定" -#: src/components/moderation/LabelsOnMe.tsx:42 -#~ msgid "account" -#~ msgstr "アカウント" - -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "アカウント" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "アカウントをブロックしました" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "アカウントをフォローしました" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "アカウントをミュートしました" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "ミュート中のアカウント" @@ -205,37 +271,46 @@ msgstr "アカウントオプション" msgid "Account removed from quick access" msgstr "クイックアクセスからアカウントを解除" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "アカウントのブロックを解除しました" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "アカウントのフォローを解除しました" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "アカウントのミュートを解除しました" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "追加" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "続けるにはさらに{0}ユーザー追加してください" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "{displayName}をスターターパックに加える" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "コンテンツの警告を追加" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "リストにユーザーを追加" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "アカウントを追加" @@ -244,17 +319,13 @@ msgstr "アカウントを追加" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "ALTテキストを追加" -#: src/view/com/composer/GifAltText.tsx:175 -#~ msgid "Add ALT text" -#~ msgstr "" - -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "アプリパスワードを追加" @@ -266,61 +337,90 @@ msgstr "ミュートするワードを設定に追加" msgid "Add muted words and tags" msgstr "ミュートするワードとタグを追加" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" -msgstr "" +msgstr "おすすめのフィードを追加" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" +msgstr "あなたのスターターパックにフィードをいくつか追加してください!" + +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" -msgstr "" +msgstr "フォローしているユーザーのみのデフォルトのフィードを追加" #: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "次のDNSレコードをドメインに追加してください:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "このフィードをあなたのフィードに追加する" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "リストに追加" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" msgstr "マイフィードに追加" -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "リストに追加" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" msgstr "マイフィードに追加" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "返信がフィードに表示されるために必要ないいねの数を調整します。" #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "成人向けコンテンツ" +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "成人向けコンテンツは<0>bsky.appのウェブ版からしか有効にできません。" + #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." msgstr "成人向けコンテンツは無効になっています。" -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "高度な設定" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "アルゴリズムのトレーニング完了!" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "すべてのアカウントをフォローしました!" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." msgstr "保存したすべてのフィードを1箇所にまとめます。" +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "ダイレクトメッセージへのアクセスを許可" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "新しいメッセージを誰から受け取れるか:" + #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "コードをすでに持っていますか?" @@ -330,19 +430,19 @@ msgstr "@{0}としてすでにサインイン済み" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" msgstr "ALTテキスト" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" -msgstr "" +msgstr "ALTテキスト" #: src/view/com/composer/photos/Gallery.tsx:224 msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." @@ -357,117 +457,149 @@ msgstr "メールが{0}に送信されました。以下に入力できる確認 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "以前のメールアドレス{0}にメールが送信されました。以下に入力できる確認コードがそのメールに記載されています。" -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" msgstr "エラーが発生しました" -#: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." -msgstr "メッセージ削除中にエラーが発生しました。再実行してみてください。" +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" +msgstr "スターターパックの生成中にエラーが発生しました。再度試しますか?" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "QRコードの保存中にエラーが発生しました!" + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "すべてフォローしようとしたらエラーが発生しました" + +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "ほかの選択肢にはあてはまらない問題" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "チャットの開始時に問題が発生しました" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "チャットを開始しようとした時に問題が発生しました" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "問題が発生しました。もう一度お試しください。" -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" -msgstr "" +msgstr "何らかのエラーが発生しました" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "および" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "動物" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" msgstr "アニメーションGIF" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "反社会的な行動" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "アプリの言語" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "アプリパスワードを削除しました" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "アプリパスワードの名前には、英数字、スペース、ハイフン、アンダースコアのみが使用可能です。" -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "アプリパスワードの名前は長さが4文字以上である必要があります。" -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "アプリパスワードの設定" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "アプリパスワード" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "異議を申し立てる" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "「{0}」のラベルに異議を申し立てる" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" -msgstr "" +msgstr "異議申し立てを提出しました" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 -#~ msgid "Appeal submitted." -#~ msgstr "異議申し立てを提出しました。" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "この決定に異議を申し立てる" -#: src/view/screens/Settings/index.tsx:430 +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "背景" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" -msgstr "" +msgstr "デフォルトのおすすめフィードを追加" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "アプリパスワード「{name}」を本当に削除しますか?" -#: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." msgstr "このメッセージを本当に削除しますか?このメッセージはあなたからは削除したように見えますが、他の参加者からは削除されません。" -#: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" +msgstr "本当にこのスターターパックを削除したいですか?" + +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." msgstr "この会話から退出しますか?あなたのメッセージはあなたからは削除したように見えますが、他の参加者からは削除されません。" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "あなたのフィードから{0}を削除してもよろしいですか?" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "本当にこのフィードをあなたのフィードから削除したいですか?" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "本当にこの下書きを破棄しますか?" @@ -479,7 +611,8 @@ msgstr "本当によろしいですか?" msgid "Are you writing in <0>{0}?" msgstr "<0>{0}で書かれた投稿ですか?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "アート" @@ -487,32 +620,31 @@ msgstr "アート" msgid "Artistic or non-erotic nudity." msgstr "芸術的または性的ではないヌード。" -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "少なくとも3文字" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "戻る" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "{interestsText}への興味に基づいたおすすめ" - -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "基本" @@ -520,56 +652,56 @@ msgstr "基本" msgid "Birthday" msgstr "生年月日" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "生年月日:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "ブロック" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" msgstr "アカウントをブロック" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "アカウントをブロック" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "アカウントをブロックしますか?" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "アカウントをブロック" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "リストをブロック" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "これらのアカウントをブロックしますか?" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "ブロックされています" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "ブロック中のアカウント" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "ブロック中のアカウント" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "ブロック中のアカウントは、あなたのスレッドでの返信、あなたへのメンション、その他の方法であなたとやり取りすることはできません。" @@ -577,21 +709,21 @@ msgstr "ブロック中のアカウントは、あなたのスレッドでの返 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "ブロック中のアカウントは、あなたのスレッドでの返信、あなたへのメンション、その他の方法であなたとやり取りすることはできません。あなたは相手のコンテンツを見ることができず、相手はあなたのコンテンツを見ることができなくなります。" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "投稿をブロックしました。" -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." -msgstr "ブロックしてもこのラベラーがあなたのアカウントにラベルを貼ることができます。" +msgstr "ブロックしてもこのラベラーがあなたのアカウントにラベルを適用することができます。" -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "ブロックしたことは公開されます。ブロック中のアカウントは、あなたのスレッドでの返信、あなたへのメンション、その他の方法であなたとやり取りすることはできません。" -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." -msgstr "ブロックしてもこのラベラーがあなたのアカウントにラベルを貼ることができますが、このアカウントがあなたのスレッドに返信したり、やりとりをしたりといったことはできなくなります。" +msgstr "ブロックしてもこのラベラーがあなたのアカウントにラベルを適用することができますが、このアカウントがあなたのスレッドに返信したり、やりとりをしたりといったことはできなくなります。" #: src/view/com/auth/SplashScreen.web.tsx:154 msgid "Blog" @@ -606,7 +738,15 @@ msgstr "Bluesky" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "Bluesky は、ホスティング プロバイダーを選択できるオープン ネットワークです。 カスタムホスティングは、開発者向けのベータ版で利用できるようになりました。" -#: src/screens/Moderation/index.tsx:533 +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "Blueskyは友達と一緒のほうが楽しい!" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "Blueskyはあなたのつながっているユーザーからおすすめのアカウントを選びます。" + +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Blueskyはログアウトしたユーザーにあなたのプロフィールや投稿を表示しません。他のアプリはこのリクエストに応じない場合があります。この設定はあなたのアカウントを非公開にするものではありません。" @@ -618,20 +758,39 @@ msgstr "画像をぼかす" msgid "Blur images and filter from feeds" msgstr "画像のぼかしとフィードからのフィルタリング" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "書籍" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" +msgstr "検索ページでさらにアカウントを見る" + +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "検索ページでさらにフィードを見る" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "さらにおすすめを見る" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "検索ページでさらにおすすめを見る" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 msgid "Browse other feeds" -msgstr "" +msgstr "他のフィードを見る" #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "ビジネス" -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "作成者:-" @@ -639,11 +798,7 @@ msgstr "作成者:-" msgid "By {0}" msgstr "作成者:{0}" -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" - -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "作成者:<0/>" @@ -651,7 +806,7 @@ msgstr "作成者:<0/>" msgid "By creating an account you agree to the {els}." msgstr "アカウントを作成することで、{els}に同意したものとみなされます。" -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "作成者:あなた" @@ -659,7 +814,7 @@ msgstr "作成者:あなた" msgid "Camera" msgstr "カメラ" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "英数字、スペース、ハイフン、アンダースコアのみが使用可能です。長さは4文字以上32文字以下である必要があります。" @@ -667,14 +822,15 @@ msgstr "英数字、スペース、ハイフン、アンダースコアのみが #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -682,23 +838,23 @@ msgstr "英数字、スペース、ハイフン、アンダースコアのみが #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "キャンセル" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "キャンセル" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "アカウントの削除をキャンセル" @@ -714,12 +870,16 @@ msgstr "画像の切り抜きをキャンセル" msgid "Cancel profile editing" msgstr "プロフィールの編集をキャンセル" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "引用をキャンセル" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "再有効化をキャンセルしてログアウト" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "検索をキャンセル" @@ -731,17 +891,17 @@ msgstr "リンク先のウェブサイトを開くことをキャンセル" msgid "Change" msgstr "変更" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "変更" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "ハンドルを変更" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "ハンドルを変更" @@ -749,12 +909,12 @@ msgstr "ハンドルを変更" msgid "Change my email" msgstr "メールアドレスを変更" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "パスワードを変更" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "パスワードを変更" @@ -766,86 +926,113 @@ msgstr "投稿の言語を{0}に変更します" msgid "Change Your Email" msgstr "メールアドレスを変更" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" msgstr "チャット" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" msgstr "チャットをミュートしました" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" msgstr "チャットの設定" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "チャットの設定" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" msgstr "チャットのミュートを解除しました" -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "ステータスを確認" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." msgstr "確認コードが記載されたメールを確認し、ここに入力してください。" -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "入力したメールアドレスの受信トレイを確認して、以下に入力するための確認コードが記載されたメールが届いていないか確認してください:" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "「全員」か「返信不可」のどちらかを選択" +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "3つ以上選んでください:" + +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "少なくともさらに{0}つ選んでください" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "フィードの選択" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "私向けに選んで" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "ユーザーの選択" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "サービスを選択" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." msgstr "カスタムフィードのアルゴリズムを選択できます。" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 msgid "Choose this color as your avatar" -msgstr "" +msgstr "この色をアバターとして選択" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "メインのフィードを選択" +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" +msgstr "誰が返信できるかを選択" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "パスワードを入力" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "レガシーストレージデータをすべてクリア" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "すべてのレガシーストレージデータをクリア(このあと再起動します)" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "すべてのストレージデータをクリア" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "すべてのストレージデータをクリア(このあと再起動します)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "検索クエリをクリア" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "すべてのレガシーストレージデータをクリア" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "すべてのストレージデータをクリア" @@ -853,27 +1040,45 @@ msgstr "すべてのストレージデータをクリア" msgid "click here" msgstr "こちらをクリック" -#: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." -msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" +msgstr "アカウントの無効化について詳しくはこちらをクリック" + +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "詳しい情報についてはここをクリック。" #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "{tag}のタグメニューをクリックして表示" -#: src/screens/Onboarding/index.tsx:47 +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "送信失敗したメッセージを再送信" + +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "気象" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "パカラッ 🐴 パカラッ 🐴" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "閉じる" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "アクティブなダイアログを閉じる" @@ -885,11 +1090,12 @@ msgstr "アラートを閉じる" msgid "Close bottom drawer" msgstr "一番下の引き出しを閉じる" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" msgstr "ダイアログを閉じる" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" msgstr "GIFのダイアログを閉じる" @@ -901,6 +1107,10 @@ msgstr "画像を閉じる" msgid "Close image viewer" msgstr "画像ビューアを閉じる" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "モーダルを閉じる" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "ナビゲーションフッターを閉じる" @@ -918,7 +1128,7 @@ msgstr "下部のナビゲーションバーを閉じる" msgid "Closes password update alert" msgstr "パスワード更新アラートを閉じる" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "投稿の編集画面を閉じて下書きを削除する" @@ -926,43 +1136,45 @@ msgstr "投稿の編集画面を閉じて下書きを削除する" msgid "Closes viewer for header image" msgstr "ヘッダー画像のビューワーを閉じる" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "ユーザーリストを折りたたむ" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "指定した通知のユーザーリストを折りたたむ" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "コメディー" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "漫画" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "コミュニティーガイドライン" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "初期設定を完了してアカウントを使い始める" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "テストをクリアしてください" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "{MAX_GRAPHEME_LENGTH}文字までの投稿を作成" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "返信を作成" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "このカテゴリのコンテンツフィルタリングを設定:{0}" - #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" msgstr "このカテゴリのコンテンツフィルタリングを設定:{name}" @@ -971,13 +1183,11 @@ msgstr "このカテゴリのコンテンツフィルタリングを設定:{na msgid "Configured in <0>moderation settings." msgstr "<0>モデレーションの設定で設定されています。" -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -992,66 +1202,62 @@ msgstr "変更を確認" msgid "Confirm content language settings" msgstr "コンテンツの言語設定を確認" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "アカウントの削除を確認" -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "年齢の確認:" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "生年月日の確認" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "確認コード" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." -msgstr "接続中..." +msgstr "接続中…" -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "サポートに連絡" -#: src/components/moderation/LabelsOnMe.tsx:42 -#~ msgid "content" -#~ msgstr "コンテンツ" - #: src/lib/moderation/useGlobalLabelStrings.ts:18 msgid "Content Blocked" msgstr "ブロックされたコンテンツ" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "コンテンツのフィルター" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "コンテンツの言語" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "コンテンツはありません" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "コンテンツの警告" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "コンテンツの警告" @@ -1059,54 +1265,48 @@ msgstr "コンテンツの警告" msgid "Context menu backdrop, click to close the menu." msgstr "コンテキストメニューの背景をクリックし、メニューを閉じる。" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "続行" #: src/components/AccountList.tsx:113 msgid "Continue as {0} (currently signed in)" -msgstr "{0}として続行 (現在サインイン中)" +msgstr "{0}として続行(現在サインイン中)" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "スレッドの続き…" + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "次のステップへ進む" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "次のステップへ進む" +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" +msgstr "会話が削除されました" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" -msgstr "アカウントをフォローせずに次のステップへ進む" - -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "料理" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "コピーしました" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "ビルドバージョンをクリップボードにコピーしました" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "クリップボードにコピーしました" @@ -1114,11 +1314,12 @@ msgstr "クリップボードにコピーしました" msgid "Copied!" msgstr "コピーしました!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "アプリパスワードをコピーします" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "コピー" @@ -1131,64 +1332,90 @@ msgstr "{0}をコピー" msgid "Copy code" msgstr "コードをコピー" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "リンクをコピー" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "リンクをコピー" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "リストへのリンクをコピー" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "投稿へのリンクをコピー" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" msgstr "メッセージのテキストをコピー" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "投稿のテキストをコピー" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "QRコードをコピー" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "著作権ポリシー" -#: src/components/dms/ConvoMenu.tsx:80 +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" +msgstr "ビデオを圧縮できませんでした" + +#: src/components/dms/LeaveConvoPrompt.tsx:39 msgid "Could not leave chat" msgstr "チャットからの退出に失敗しました" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" msgstr "フィードの読み込みに失敗しました" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "リストの読み込みに失敗しました" -#: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "プロフィールの読み込みに失敗しました。時間をおいてもう一度お試しください。" - -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" msgstr "チャットのミュートに失敗しました" -#: src/components/dms/ConvoMenu.tsx:68 -#~ msgid "Could not unmute chat" -#~ msgstr "チャットのミュートの解除に失敗しました" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "作成" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "新しいアカウントを作成" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "新しいBlueskyアカウントを作成" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "スターターパックのQRコードを作成" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "スターターパックを作成" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "私向けのスターターパックを作成" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "アカウントを作成" @@ -1197,11 +1424,15 @@ msgstr "アカウントを作成" msgid "Create an account" msgstr "アカウントを作成" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" -msgstr "" +msgstr "代わりにアバターを作成" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" +msgstr "別のものを作成" + +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "アプリパスワードを作成" @@ -1210,15 +1441,16 @@ msgstr "アプリパスワードを作成" msgid "Create new account" msgstr "新しいアカウントを作成" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "{0}の報告を作成" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0}に作成" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "文化" @@ -1231,8 +1463,8 @@ msgstr "カスタム" msgid "Custom domain" msgstr "カスタムドメイン" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "コミュニティーによって作成されたカスタムフィードは、あなたに新しい体験をもたらし、あなたが好きなコンテンツを見つけるのに役立ちます。" @@ -1240,8 +1472,8 @@ msgstr "コミュニティーによって作成されたカスタムフィード msgid "Customize media from external sites." msgstr "外部サイトのメディアをカスタマイズします。" -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "ダーク" @@ -1249,15 +1481,24 @@ msgstr "ダーク" msgid "Dark mode" msgstr "ダークモード" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "ダークテーマ" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "生年月日" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "アカウントを無効化" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "アカウントを無効化" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" msgstr "モデレーションをデバッグ" @@ -1265,80 +1506,97 @@ msgstr "モデレーションをデバッグ" msgid "Debug panel" msgstr "デバッグパネル" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "削除" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "アカウントを削除" -#: src/view/com/modals/DeleteAccount.tsx:87 -#~ msgid "Delete Account" -#~ msgstr "アカウントを削除" - -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" -msgstr "" +msgstr "アカウント<0>「<1>{0}<2>」を削除" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "アプリパスワードを削除" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "アプリパスワードを削除しますか?" -#: src/components/dms/MessageMenu.tsx:101 +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "チャットの宣言レコードを削除" + +#: src/components/dms/MessageMenu.tsx:124 msgid "Delete for me" msgstr "自分宛を削除" -#: src/view/screens/ProfileList.tsx:466 +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "リストを削除" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" msgstr "メッセージを削除" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" msgstr "メッセージの宛先から自分を削除" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" -msgstr "マイアカウントを削除" +msgstr "アカウントを削除" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" -msgstr "マイアカウントを削除…" +msgstr "アカウントを削除…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "投稿を削除" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "スターターパックを削除" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "スターターパックを削除しますか?" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "このリストを削除しますか?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "この投稿を削除しますか?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "削除されています" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." msgstr "投稿を削除しました。" -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "チャットの宣言レコードを削除する" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1346,17 +1604,21 @@ msgstr "説明" #: src/view/com/composer/GifAltText.tsx:140 msgid "Descriptive alt text" -msgstr "" +msgstr "説明的なALTテキスト" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "なにか言いたいことはあった?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "グレー" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "ダイレクトメッセージはこちら!" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" msgstr "GIFを自動再生しない" @@ -1364,39 +1626,57 @@ msgstr "GIFを自動再生しない" msgid "Disable Email 2FA" msgstr "メールでの2要素認証を無効化" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" msgstr "触覚フィードバックを無効化" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "無効" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "破棄" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "下書きを削除しますか?" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "アプリがログアウトしたユーザーに自分のアカウントを表示しないようにする" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "Discoverは閲覧中にどの投稿が好みなのかを学習します。" + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" msgstr "新しいカスタムフィードを見つける" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "新しいフィードを探す" + +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "新しいフィードを探す" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "入門ガイドを消す" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "大きなALTテキストのバッジを表示" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "表示名" @@ -1413,7 +1693,7 @@ msgstr "DNSパネルがある場合" msgid "Does not include nudity." msgstr "ヌードは含まれません。" -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "ハイフンで始まったり終ったりしない" @@ -1427,30 +1707,27 @@ msgstr "ドメインを確認しました!" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "完了" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "完了" @@ -1459,19 +1736,19 @@ msgstr "完了" msgid "Done{extraText}" msgstr "完了{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "Blueskyをダウンロード" + +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "CARファイルをダウンロード" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "ドロップして画像を追加する" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "Appleのポリシーにより、成人向けコンテンツはサインアップ完了後にウェブ上でのみ有効にすることができます。" - #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "例:太郎" @@ -1492,19 +1769,19 @@ msgstr "例:アーティスト、犬好き、熱烈な読書愛好家。" msgid "E.g. artistic nudes." msgstr "例:芸術的なヌード。" -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "例:重要な投稿をするユーザー" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "例:スパム" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "例:絶対に投稿を見逃してはならないユーザー。" -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "例:返信として広告を繰り返し送ってくるユーザー。" @@ -1512,32 +1789,45 @@ msgstr "例:返信として広告を繰り返し送ってくるユーザー。 msgid "Each code works once. You'll receive more invite codes periodically." msgstr "それぞれのコードは一回限り有効です。定期的に追加の招待コードをお送りします。" +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "編集" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "編集" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "アバターを編集" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "フィードを編集" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "画像を編集" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "リストの詳細を編集" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "モデレーションリストを編集" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" msgstr "マイフィードを編集" @@ -1545,25 +1835,32 @@ msgstr "マイフィードを編集" msgid "Edit my profile" msgstr "マイプロフィールを編集" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "ユーザーを編集" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "プロフィールを編集" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "プロフィールを編集" -#: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "保存されたフィードを編集" +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "スターターパックを編集" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "ユーザーリストを編集" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "誰が返信できるのかを編集" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "あなたの表示名を編集します" @@ -1572,11 +1869,20 @@ msgstr "あなたの表示名を編集します" msgid "Edit your profile description" msgstr "あなたのプロフィールの説明を編集します" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "スターターパックを編集" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "教育" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "「全員」か「返信不可」を選択" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "メールアドレス" @@ -1602,7 +1908,7 @@ msgstr "メールアドレスは更新されました" msgid "Email verified" msgstr "メールアドレスは認証されました" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "メールアドレス:" @@ -1611,8 +1917,8 @@ msgid "Embed HTML code" msgstr "HTMLコードを埋め込む" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" msgstr "投稿を埋め込む" @@ -1624,29 +1930,25 @@ msgstr "この投稿をあなたのウェブサイトに埋め込みます。以 msgid "Enable {0} only" msgstr "{0}のみ有効にする" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "成人向けコンテンツを有効にする" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "成人向けコンテンツを有効にする" - -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "フィードで成人向けコンテンツを有効にする" - #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 msgid "Enable external media" msgstr "外部メディアを有効にする" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "有効にするメディアプレイヤー" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "この設定を有効にすると、自分がフォローしているユーザーからの返信だけが表示されます。" @@ -1654,7 +1956,9 @@ msgstr "この設定を有効にすると、自分がフォローしているユ msgid "Enable this source only" msgstr "このソースのみ有効にする" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "有効" @@ -1662,7 +1966,11 @@ msgstr "有効" msgid "End of feed" msgstr "フィードの終わり" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "オンボーディングツアー・ウインドウ終了。先へ進まないでください。代わりに、戻って他のオプションを見るか、スキップしてください。" + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "このアプリパスワードの名前を入力" @@ -1679,7 +1987,7 @@ msgstr "ワードまたはタグを入力" msgid "Enter Confirmation Code" msgstr "確認コードを入力してください" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "パスワードを変更するために受け取ったコードを入力してください。" @@ -1696,7 +2004,7 @@ msgid "Enter your birth date" msgstr "生年月日を入力してください" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "メールアドレスを入力してください" @@ -1712,32 +2020,45 @@ msgstr "以下に新しいメールアドレスを入力してください。" msgid "Enter your username and password" msgstr "ユーザー名とパスワードを入力してください" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" -msgstr "" +msgstr "ファイルの保存中にエラーが発生しました" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "Captchaレスポンスの受信中にエラーが発生しました。" -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "エラー:" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "全員" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "誰でも返信可能" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "全員" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "過剰なメンションや返信" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" -msgstr "" +msgstr "多すぎる、または不要なメッセージ" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "アカウントの削除処理を終了" @@ -1753,8 +2074,8 @@ msgstr "画像の切り抜き処理を終了" msgid "Exits image view" msgstr "画像表示を終了" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "検索クエリの入力を終了" @@ -1762,11 +2083,19 @@ msgstr "検索クエリの入力を終了" msgid "Expand alt text" msgstr "ALTテキストを展開" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "ユーザーリストを展開" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "返信する投稿全体を展開または折りたたむ" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "露骨な、または不愉快になる可能性のあるメディア。" @@ -1775,12 +2104,12 @@ msgstr "露骨な、または不愉快になる可能性のあるメディア。 msgid "Explicit sexual images." msgstr "露骨な性的画像。" -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "私のデータをエクスポートする" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "私のデータをエクスポートする" @@ -1790,128 +2119,188 @@ msgid "External Media" msgstr "外部メディア" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "外部メディアを有効にすると、それらのメディアのウェブサイトがあなたやお使いのデバイスに関する情報を収集する場合があります。その場合でも、あなたが「再生」ボタンを押すまで情報は送信されず、要求もされません。" -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "外部メディアの設定" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "外部メディアの設定" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "アプリパスワードの作成に失敗しました。" -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "スターターパックの作成に失敗しました" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "リストの作成に失敗しました。インターネットへの接続を確認の上、もう一度お試しください。" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" msgstr "メッセージの削除に失敗しました" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "投稿の削除に失敗しました。もう一度お試しください。" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "スターターパックの削除に失敗しました" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "フィードの設定の読み込みに失敗しました" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" msgstr "GIFの読み込みに失敗しました" -#: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." -msgstr "過去のメッセージの読み込みに失敗しました。" +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" +msgstr "過去のメッセージの読み込みに失敗しました" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "おすすめのフィードの読み込みに失敗しました" + +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "おすすめのフォローの読み込みに失敗しました" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "画像の保存に失敗しました:{0}" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "送信に失敗" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "異議申し立ての送信に失敗しました。再度試してください。" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "スレッドのミュートの切り替えに失敗しました。再度試してください" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "フィードの更新に失敗しました" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "設定の更新に失敗しました" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "フィード" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "{0}によるフィード" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "フィードはオフラインです" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "フィードの切替" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "フィードバック" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" msgstr "フィード" -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "フィードはユーザーがプログラミングの専門知識を持って構築するカスタムアルゴリズムです。詳細については、<0/>を参照してください。" -#: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" -msgstr "フィードには特定の話題に焦点を当てたものもあります!" +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" +msgstr "フィードを更新しました!" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "ファイルのコンテンツ" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" -msgstr "" +msgstr "ファイルの保存に成功しました!" #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "フィードからのフィルター" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "最後に" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "フォローするアカウントを探す" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "検索ページでフォローすべきフィードやアカウントを見つける。" + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" msgstr "投稿やユーザーをBlueskyで検索" -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." msgstr "Followingフィードに表示されるコンテンツを調整します。" -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "ディスカッションスレッドを微調整します。" -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "完了" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "ツアーを終了してアプリを使用開始" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "フィットネス" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "柔軟です" @@ -1924,108 +2313,152 @@ msgstr "水平方向に反転" msgid "Flip vertically" msgstr "垂直方向に反転" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "フォロー" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "フォロー" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "{0}をフォロー" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "{name}をフォロー" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "7アカウントをフォロー" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "アカウントをフォロー" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" -msgstr "すべてのアカウントをフォロー" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" +msgstr "すべてフォロー" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "フォローバック" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" -msgstr "選択したアカウントをフォローして次のステップへ進む" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "もっとたくさんのアカウントをフォローして、興味あることにつながり、ネットワークを広げましょう。" -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" -msgstr "{0}がフォロー中" +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" +msgstr "<0>{0}がフォロー中" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "<0>{0}および{1, plural, other {他#人}}がフォロー中" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "<0>{0}と<1>{1}がフォロー中" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "<0>{0}、<1>{1}および{2, plural, other {他#人}}がフォロー中" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "自分がフォローしているユーザー" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "自分がフォローしているユーザーのみ" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" -msgstr "あなたをフォローしました" +msgstr "があなたをフォローしました" + +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "があなたをフォローバックしました" #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "フォロワー" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "あなたが知っている@{0}のフォロワー" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "あなたが知っているフォロワー" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "フォロー中" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" msgstr "{0}をフォローしています" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "{name}をフォローしています" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" msgstr "Followingフィードの設定" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" msgstr "Followingフィードの設定" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "Followingはフォローしてるユーザーの最新の投稿を表示します。" + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "あなたをフォロー" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "あなたをフォロー" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "食べ物" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "セキュリティ上の理由から、あなたのメールアドレスに確認コードを送信する必要があります。" -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "セキュリティ上の理由から、これを再度表示することはできません。このパスワードを紛失した場合は、新しいパスワードを生成する必要があります。" @@ -2034,15 +2467,15 @@ msgstr "セキュリティ上の理由から、これを再度表示すること msgid "Forgot Password" msgstr "パスワードを忘れた" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "パスワードを忘れた?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "忘れた?" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "望ましくないコンテンツを頻繁に投稿" @@ -2050,7 +2483,7 @@ msgstr "望ましくないコンテンツを頻繁に投稿" msgid "From @{sanitizedAuthor}" msgstr "@{sanitizedAuthor}による" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "<0/>から" @@ -2059,48 +2492,73 @@ msgstr "<0/>から" msgid "Gallery" msgstr "ギャラリー" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "スターターパックを生成" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "ヘルプを表示" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "始める" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "開始" -#: src/screens/Onboarding/StepProfile/index.tsx:228 -msgid "Give your profile a face" -msgstr "" +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" +msgstr "入門" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "GIF" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 +msgid "Give your profile a face" +msgstr "プロフィールに顔をつける" + +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "法律または利用規約への明らかな違反" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "戻る" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "戻る" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "前のステップに戻る" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "前のステップに戻る" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "ホームへ" @@ -2109,16 +2567,24 @@ msgstr "ホームへ" msgid "Go Home" msgstr "ホームへ" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "{0}との会話へ" + #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "次へ" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" msgstr "プロフィールへ" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" +msgstr "ツアーの次のステップへ移動" + +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" msgstr "ユーザーのプロフィールへ移動" @@ -2126,112 +2592,102 @@ msgstr "ユーザーのプロフィールへ移動" msgid "Graphic Media" msgstr "生々しいメディア" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "半分まで来ました!" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "ハンドル" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" msgstr "触覚フィードバック" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "嫌がらせ、荒らし、不寛容" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "ハッシュタグ" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "ハッシュタグ:#{tag}" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "なにか問題が発生しましたか?" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "ヘルプ" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." -msgstr "" +msgstr "画像をアップロードするかアバターを作ってあなたがbotではないことをみんなに知らせましょう。" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "あなたがフォローしそうなアカウントを紹介します" - -#: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "人気のあるフィードを紹介します。好きなだけフォローすることができます。" - -#: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "{interestsText}への興味に基づいたおすすめです。好きなだけフォローすることができます。" - -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "アプリパスワードをお知らせします。" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "非表示" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "非表示" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "投稿を非表示" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "コンテンツを非表示" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "この投稿を非表示にしますか?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "ユーザーリストを非表示" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "フィードサーバーに問い合わせたところ、なんらかの問題が発生しました。この問題をフィードのオーナーにお知らせください。" -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "フィードサーバーの設定が間違っているようです。この問題をフィードのオーナーにお知らせください。" -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "フィードサーバーがオフラインのようです。この問題をフィードのオーナーにお知らせください。" -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "フィードサーバーの反応が悪いようです。この問題をフィードのオーナーにお知らせください。" -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "このフィードが見つからないようです。もしかしたら削除されたのかもしれません。" -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." msgstr "このデータの読み込みに問題があるようです。詳細は以下をご覧ください。この問題が解決しない場合は、サポートにご連絡ください。" @@ -2239,11 +2695,12 @@ msgstr "このデータの読み込みに問題があるようです。詳細は msgid "Hmmmm, we couldn't load that moderation service." msgstr "そのモデレーションサービスを読み込めませんでした。" -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "ホーム" @@ -2252,8 +2709,8 @@ msgid "Host:" msgstr "ホスト:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "ホスティングプロバイダー" @@ -2276,9 +2733,10 @@ msgstr "確認コードを持っています" msgid "I have my own domain" msgstr "自分のドメインを持っています" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" -msgstr "" +msgstr "理解した" #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" @@ -2292,43 +2750,55 @@ msgstr "なにも選択しない場合は、全年齢対象です。" msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "あなたがお住いの国の法律においてまだ成人していない場合は、親権者または法定後見人があなたに代わって本規約をお読みください。" -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "このリストを削除すると、復元できなくなります。" -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "この投稿を削除すると、復元できなくなります。" -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "パスワードを変更する場合は、あなたのアカウントであることを確認するためのコードをお送りします。" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "ハンドルやメールアドレスを変えるのであれば、無効化の前に変更してください。" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "違法かつ緊急" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "画像" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "画像のALTテキスト" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "画像をカメラロールに保存しました!" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "なりすまし、または身元もしくは所属に関する虚偽の主張" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "不適切なメッセージ、または露骨なコンテンツへのリンク" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "パスワードをリセットするためにあなたのメールアドレスに送られたコードを入力" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "アカウント削除のために確認コードを入力" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "アプリパスワードの名前を入力" @@ -2336,23 +2806,19 @@ msgstr "アプリパスワードの名前を入力" msgid "Input new password" msgstr "新しいパスワードを入力" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "アカウント削除のためにパスワードを入力" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "メールで送られたコードを入力" #: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "{identifier}に紐づくパスワードを入力" - -#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "サインアップ時に使用したユーザー名またはメールアドレスを入力" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "あなたのパスワードを入力" @@ -2360,20 +2826,24 @@ msgstr "あなたのパスワードを入力" msgid "Input your preferred hosting provider" msgstr "ご希望のホスティングプロバイダーを入力" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "あなたのユーザーハンドルを入力" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "ダイレクトメッセージの紹介" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "無効な2要素認証の確認コードです。" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "無効またはサポートされていない投稿のレコード" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "無効なユーザー名またはパスワード" @@ -2381,11 +2851,11 @@ msgstr "無効なユーザー名またはパスワード" msgid "Invite a Friend" msgstr "友達を招待" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "招待コード" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "招待コードが確認できません。正しく入力されていることを確認し、もう一度実行してください。" @@ -2397,69 +2867,85 @@ msgstr "招待コード:{0}個使用可能" msgid "Invite codes: 1 available" msgstr "招待コード:1個使用可能" -#: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." -msgstr "あなたがフォローしたユーザーの投稿が随時表示されます。" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "このスターターパックにユーザーを招待!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "お気に入りのフィードやユーザーをフォローするよう、あなたの友人を招待する" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "招待、ただし個人的なもの" + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." +msgstr "今はあなただけ!上で検索してスターターパックにより多くのユーザーを追加してください。" #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "仕事" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "Blueskyに参加" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "会話に参加" + +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "報道" -#: src/components/moderation/LabelsOnMe.tsx:59 -#~ msgid "label has been placed on this {labelTarget}" -#~ msgstr "個のラベルがこの{labelTarget}に貼られました" - -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "{0}によるラベル" -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "投稿者によるラベル。" -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "ラベル" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "ラベルは、ユーザーやコンテンツに対する注釈です。ラベルはネットワークを隠したり、警告したり、分類したりするのに使われます。" -#: src/components/moderation/LabelsOnMe.tsx:61 -#~ msgid "labels have been placed on this {labelTarget}" -#~ msgstr "個のラベルがこの{labelTarget}に貼られました" - -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "あなたのアカウントのラベル" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "あなたのコンテンツのラベル" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "言語の選択" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "言語の設定" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "言語の設定" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "言語" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "最新" @@ -2467,31 +2953,38 @@ msgstr "最新" msgid "Learn More" msgstr "詳細" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "このコンテンツに適用されるモデレーションはこちらを参照してください。" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "この警告の詳細" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "Blueskyで公開されている内容はこちらを参照してください。" -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "詳細。" -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" msgstr "退出" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "チャットを退出" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" msgstr "会話を退出" @@ -2503,39 +2996,49 @@ msgstr "どの言語も表示するには、すべてのチェックを外した msgid "Leaving Bluesky" msgstr "Blueskyから離れる" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "あと少しです。" -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "レガシーストレージがクリアされたため、今すぐアプリを再起動する必要があります。" +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "選ばせて" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "パスワードをリセットしましょう!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "さあ始めましょう!" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "ライト" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:197 -#~ msgid "Like" -#~ msgstr "いいね" +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "10投稿をいいね" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "Discoverフィードを訓練するために10投稿をいいねする" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "このフィードをいいね" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "いいねしたユーザー" @@ -2545,108 +3048,116 @@ msgstr "いいねしたユーザー" msgid "Liked By" msgstr "いいねしたユーザー" -#: src/view/com/feeds/FeedSourceCard.tsx:268 -#~ msgid "Liked by {0} {1}" -#~ msgstr "{0} {1}にいいねされました" - -#: src/components/LabelingServiceCard/index.tsx:72 -#~ msgid "Liked by {count} {0}" -#~ msgstr "{count} {0}にいいねされました" - -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:287 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:301 -#: src/view/screens/ProfileFeed.tsx:600 -#~ msgid "Liked by {likeCount} {0}" -#~ msgstr "いいねしたユーザー:{likeCount}人" - -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" -msgstr "あなたのカスタムフィードがいいねされました" +msgstr "があなたのカスタムフィードをいいねしました" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" -msgstr "あなたの投稿がいいねされました" +msgstr "があなたの投稿をいいねしました" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "いいね" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "この投稿をいいねする" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "リスト" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "リストのアバター" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "リストをブロックしました" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "{0}によるリスト" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "リストを削除しました" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "リストをミュートしました" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "リストの名前" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "リストのブロックを解除しました" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "リストのミュートを解除しました" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "リスト" -#: src/view/screens/Notifications.tsx:159 +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "このユーザーをブロックしているリスト:" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "さらに読み込む" + +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "おすすめのフィードをさらに読み込む" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "おすすめのフォローをさらに読み込む" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "最新の通知を読み込む" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "最新の投稿を読み込む" #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." -msgstr "読み込み中..." +msgstr "読み込み中…" -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "ログ" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "ログインまたはサインアップ" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "ログアウト" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "ログアウトしたユーザーからの可視性" @@ -2654,7 +3165,7 @@ msgstr "ログアウトしたユーザーからの可視性" msgid "Login to account that is not listed" msgstr "リストにないアカウントにログイン" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" msgstr "長押しで #{tag} のタグメニューを開く" @@ -2664,15 +3175,19 @@ msgstr "XXXXX-XXXXXみたいなもの" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." -msgstr "" +msgstr "フィードを保存してないようですね!おすすめを使うか以下で探してみましょう。" -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" -msgstr "" +msgstr "すべてのフィードのピン留めを外したようですね。心配ありません、以下で追加できます 😄" -#: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." -msgstr "" +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "Followingフィードを消したようです。<0>ここをクリックして追加。" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" +msgstr "私のために作って" #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" @@ -2682,31 +3197,35 @@ msgstr "意図した場所であることを確認してください!" msgid "Manage your muted words and tags" msgstr "ミュートしたワードとタグの管理" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" -msgstr "" +msgstr "既読にする" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "メディア" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "メンションされたユーザー" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "メンションされたユーザー" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "メニュー" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "{0}へメッセージを送る" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" msgstr "メッセージは削除されました" @@ -2714,40 +3233,33 @@ msgstr "メッセージは削除されました" msgid "Message from server: {0}" msgstr "サーバーからのメッセージ:{0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" msgstr "メッセージを入力するフィールド" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" -msgstr "" +msgstr "メッセージが長すぎます" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "メッセージの設定" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "メッセージ" -#: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "メッセージの設定" - -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "誤解を招くアカウント" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "モデレーション" @@ -2755,56 +3267,57 @@ msgstr "モデレーション" msgid "Moderation details" msgstr "モデレーションの詳細" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" msgstr "{0}の作成したモデレーションリスト" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "<0/>の作成したモデレーションリスト" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "あなたの作成したモデレーションリスト" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "モデレーションリストを作成しました" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "モデレーションリストを更新しました" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "モデレーションリスト" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "モデレーションリスト" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "モデレーションの設定" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "モデレーションのステータス" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "モデレーションのツール" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "モデレーターによりコンテンツに一般的な警告が設定されました。" -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "さらに" @@ -2812,14 +3325,22 @@ msgstr "さらに" msgid "More feeds" msgstr "その他のフィード" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "その他のオプション" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "いいねの数が多い順に返信を表示" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "映画" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "音楽" + #: src/components/TagMenu/index.tsx:249 msgid "Mute" msgstr "ミュート" @@ -2828,12 +3349,12 @@ msgstr "ミュート" msgid "Mute {truncatedTag}" msgstr "{truncatedTag}をミュート" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "アカウントをミュート" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "アカウントをミュート" @@ -2841,6 +3362,11 @@ msgstr "アカウントをミュート" msgid "Mute all {displayTag} posts" msgstr "{displayTag}のすべての投稿をミュート" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "会話をミュート" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" msgstr "タグのみをミュート" @@ -2849,16 +3375,11 @@ msgstr "タグのみをミュート" msgid "Mute in text & tags" msgstr "テキストとタグをミュート" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "リストをミュート" -#: src/components/dms/ConvoMenu.tsx:136 -#: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "通知をミュート" - -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "これらのアカウントをミュートしますか?" @@ -2870,25 +3391,25 @@ msgstr "投稿のテキストやタグでこのワードをミュート" msgid "Mute this word in tags only" msgstr "タグのみでこのワードをミュート" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" msgstr "スレッドをミュート" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "ワードとタグをミュート" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "ミュートされています" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "ミュート中のアカウント" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "ミュート中のアカウント" @@ -2897,15 +3418,15 @@ msgstr "ミュート中のアカウント" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "ミュート中のアカウントの投稿は、フィードや通知から取り除かれます。ミュートの設定は完全に非公開です。" -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "「{0}」によってミュート中" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "ミュートしたワードとタグ" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "ミュートの設定は非公開です。ミュート中のアカウントはあなたと引き続き関わることができますが、そのアカウントの投稿や通知を受信することはできません。" @@ -2914,56 +3435,66 @@ msgstr "ミュートの設定は非公開です。ミュート中のアカウン msgid "My Birthday" msgstr "生年月日" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" msgstr "マイフィード" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "マイプロフィール" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" msgstr "保存されたフィード" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" msgstr "保存されたフィード" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "名前" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "名前は必須です" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "名前または説明がコミュニティ基準に違反" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "自然" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "{0}へ移動します" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "スターターパックへ移動します" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "次の画面に移動します" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "あなたのプロフィールに移動します" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "著作権侵害を報告する必要がありますか?" -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "フォロワーやデータへのアクセスを失うことはありません。" @@ -2971,7 +3502,7 @@ msgstr "フォロワーやデータへのアクセスを失うことはありま msgid "Nevermind, create a handle for me" msgstr "気にせずにハンドルを作成" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "新規" @@ -2980,65 +3511,79 @@ msgstr "新規" msgid "New" msgstr "新規" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "新しいチャット" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "新しいメッセージ" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "新しいモデレーションリスト" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "新しいパスワード" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "新しいパスワード" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "新しい投稿" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "新しい投稿" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "新しい投稿" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "新しいユーザー情報ダイアログ" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "新しいユーザーリスト" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "新しい順に返信を表示" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "ニュース" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "次へ" @@ -3046,17 +3591,17 @@ msgstr "次へ" msgid "Next image" msgstr "次の画像" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "いいえ" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "説明はありません" @@ -3064,78 +3609,104 @@ msgstr "説明はありません" msgid "No DNS Panel" msgstr "DNSパネルがない場合" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "おすすめのGIFが見つかりません。Tenorに問題があるかもしれません。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "フィードが見つかりませんでした。他を探してみて。" + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "{0}のフォローを解除しました" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "253文字まで" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" msgstr "メッセージはありません" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "これ以上表示できる会話はありません" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "お知らせはありません!" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "誰からも受け取らない" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "まだ投稿がありません。" + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "結果はありません" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "結果はありません" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "結果は見つかりません" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "「{query}」の検索結果はありません" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "「{query}」の検索結果はありません" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." msgstr "「{search}」の検索結果はありません。" -#: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "「{searchText}」の検索結果はありません。" - #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "結構です" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "返信不可" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "誰も返信できない" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "まだ誰もこれをいいねしていません。あなたが最初になるべきかもしれません!" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "誰も見つかりませんでした。他を探してみて。" + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "性的ではないヌード" -#: src/view/com/modals/SelfLabel.tsx:135 -#~ msgid "Not Applicable." -#~ msgstr "該当なし。" - -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "見つかりません" @@ -3144,27 +3715,57 @@ msgstr "見つかりません" msgid "Not right now" msgstr "今はしない" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "共有についての注意事項" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "注記:Blueskyはオープンでパブリックなネットワークです。この設定はBlueskyのアプリおよびウェブサイト上のみでのあなたのコンテンツの可視性を制限するものであり、他のアプリではこの設定を尊重しない場合があります。他のアプリやウェブサイトでは、ログアウトしたユーザーにあなたのコンテンツが表示される場合があります。" -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "何もありません" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "通知音" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "通知音" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "通知" -#: src/components/dms/MessageItem.tsx:145 +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" +msgstr "今" + +#: src/components/dms/MessageItem.tsx:169 msgid "Now" msgstr "今" @@ -3172,29 +3773,25 @@ msgstr "今" msgid "Nudity" msgstr "ヌード" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "ヌードあるいは成人向けコンテンツと表示されていないもの" -#: src/screens/Signup/index.tsx:145 -#~ msgid "of" -#~ msgstr "/" - #: src/lib/moderation/useLabelBehaviorDescription.ts:11 msgid "Off" msgstr "オフ" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "ちょっと!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "ちょっと!なにかがおかしいです。" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "OK" @@ -3202,107 +3799,143 @@ msgstr "OK" msgid "Okay" msgstr "OK" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "古い順に返信を表示" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "on" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "{str}" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "オンボーディングのリセット" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "オンボーディングツアー ステップ {0}:{1}" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "1つもしくは複数の画像にALTテキストがありません。" -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" -msgstr "" +msgstr ".jpgと.pngファイルのみに対応しています" -#: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" msgstr "{0}のみ返信可能" -#: src/screens/Signup/StepHandle.tsx:98 +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "英数字とハイフンのみ" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "おっと、なにかが間違っているようです!" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "おっと!" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "開かれています" -#: src/screens/Onboarding/StepProfile/index.tsx:280 -msgid "Open avatar creator" -msgstr "" +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "{name}のプロフィールのショートカットメニューを開く" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Onboarding/StepProfile/index.tsx:277 +msgid "Open avatar creator" +msgstr "アバター・クリエイターを開く" + +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "会話のオプションを開く" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "絵文字を入力" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "フィードの設定メニューを開く" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "アプリ内ブラウザーでリンクを開く" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "メッセージのオプションを開く" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "ミュートしたワードとタグの設定を開く" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "ナビゲーションを開く" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "投稿のオプションを開く" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "スターターパックのメニューを開く" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "絵本のページを開く" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "システムのログを開く" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "{numItems}個のオプションを開く" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "このスレッドに誰が返信できるかを選択するダイアログを開く" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "アクセシビリティの設定を開く" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "デバッグエントリーの追加詳細を開く" -#: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "この通知内のユーザーの拡張リストを開く" - #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "デバイスのカメラを開く" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "チャットの設定を開く" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "編集画面を開く" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "構成可能な言語設定を開く" @@ -3310,7 +3943,7 @@ msgstr "構成可能な言語設定を開く" msgid "Opens device photo gallery" msgstr "デバイスのフォトギャラリーを開く" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "外部コンテンツの埋め込みの設定を開く" @@ -3324,7 +3957,7 @@ msgstr "新しいBlueskyのアカウントを作成するフローを開く" msgid "Opens flow to sign into your existing Bluesky account" msgstr "既存のBlueskyアカウントにサインインするフローを開く" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" msgstr "GIFの選択のダイアログを開く" @@ -3332,23 +3965,27 @@ msgstr "GIFの選択のダイアログを開く" msgid "Opens list of invite codes" msgstr "招待コードのリストを開く" -#: src/view/screens/Settings/index.tsx:773 -msgid "Opens modal for account deletion confirmation. Requires email code" -msgstr "アカウントの削除確認用の表示を開きます。メールアドレスのコードが必要です" +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "アカウント無効化の確認のモーダルを開く" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:832 +msgid "Opens modal for account deletion confirmation. Requires email code" +msgstr "アカウントの削除確認用のモーダルを開きます。メールアドレスのコードが必要です" + +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "Blueskyのパスワードを変更するためのモーダルを開く" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "新しいBlueskyのハンドルを選択するためのモーダルを開く" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Blueskyのアカウントのデータ(リポジトリ)をダウンロードするためのモーダルを開く" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "メールアドレスの認証のためのモーダルを開く" @@ -3356,28 +3993,23 @@ msgstr "メールアドレスの認証のためのモーダルを開く" msgid "Opens modal for using custom domain" msgstr "カスタムドメインを使用するためのモーダルを開く" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" msgstr "モデレーションの設定を開く" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "パスワードリセットのフォームを開く" -#: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "保存されたフィードの編集画面を開く" - -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" msgstr "保存されたすべてのフィードで画面を開く" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "アプリパスワードの設定を開く" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" msgstr "Followingフィードの設定を開く" @@ -3385,37 +4017,50 @@ msgstr "Followingフィードの設定を開く" msgid "Opens the linked website" msgstr "リンク先のウェブサイトを開く" -#: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "メッセージの設定のページを開く" - -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "ストーリーブックのページを開く" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "システムログのページを開く" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "スレッドの設定を開く" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "プロフィールを開く" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "ビデオの選択画面を開く" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "{numItems}個中{0}目のオプション" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "オプションとして、以下に追加情報をご記入ください:" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "または以下のオプションを組み合わせてください:" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "または、他のアカウントで続行する。" + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "または、あなたの他のアカウントにログインする。" + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "その他" @@ -3423,11 +4068,15 @@ msgstr "その他" msgid "Other account" msgstr "その他のアカウント" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." -msgstr "その他..." +msgstr "その他…" -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "モデレーターが報告をレビューし、Blueskyであなたがチャットにアクセスできないようにしました。" + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "ページが見つかりません" @@ -3436,14 +4085,14 @@ msgstr "ページが見つかりません" msgid "Page Not Found" msgstr "ページが見つかりません" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "パスワード" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "パスワードが変更されました" @@ -3455,52 +4104,66 @@ msgstr "パスワードが更新されました" msgid "Password updated!" msgstr "パスワードが更新されました!" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "一時停止" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "ユーザー" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "@{0}がフォロー中のユーザー" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "@{0}をフォロー中のユーザー" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." msgstr "カメラへのアクセス権限が必要です。" -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "カメラへのアクセスが拒否されました。システムの設定で有効にしてください。" -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "ユーザーを切替" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "ペット" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "写真" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "成人向けの画像です。" -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "ホームにピン留め" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "ホームにピン留め" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "ピン留めされたフィード" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "フィードにピン留めしました" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" msgstr "再生" @@ -3508,7 +4171,7 @@ msgstr "再生" msgid "Play {0}" msgstr "{0}を再生" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" msgstr "GIFの再生や一時停止" @@ -3521,15 +4184,16 @@ msgstr "動画を再生" msgid "Plays the GIF" msgstr "GIFを再生" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "ハンドルをお選びください。" -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "パスワードを選択してください。" -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "Captcha認証を完了してください。" @@ -3537,11 +4201,11 @@ msgstr "Captcha認証を完了してください。" msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "変更する前にメールを確認してください。これは、メールアップデートツールが追加されている間の一時的な要件であり、まもなく削除されます。" -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "アプリパスワードにつける名前を入力してください。すべてスペースとしてはいけません。" -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "このアプリパスワードに固有の名前を入力するか、ランダムに生成された名前を使用してください。" @@ -3549,19 +4213,29 @@ msgstr "このアプリパスワードに固有の名前を入力するか、ラ msgid "Please enter a valid word, tag, or phrase to mute" msgstr "ミュートにする有効な単語、タグ、フレーズを入力してください" -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "メールアドレスを入力してください。" -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "招待コードを入力してください。" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "パスワードも入力してください:" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" -msgstr "{0}によって貼られたこのラベルが誤って適用されたと思われる理由を説明してください" +msgstr "{0}によって適用されたこのラベルが誤りであると思われる理由を説明してください" + +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "チャットが間違って無効化されたと考える理由を説明してください" #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" msgstr "@{0}としてサインインしてください" @@ -3569,11 +4243,12 @@ msgstr "@{0}としてサインインしてください" msgid "Please Verify Your Email" msgstr "メールアドレスを確認してください" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "リンクカードが読み込まれるまでお待ちください" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "政治" @@ -3581,46 +4256,46 @@ msgstr "政治" msgid "Porn" msgstr "ポルノ" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "投稿" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" msgstr "投稿" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "{0}による投稿" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "@{0}による投稿" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "投稿を削除" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "投稿を非表示" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" msgstr "ミュートしたワードによって投稿が表示されません" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" msgstr "あなたが非表示にした投稿" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "投稿の言語" @@ -3628,8 +4303,8 @@ msgstr "投稿の言語" msgid "Post Languages" msgstr "投稿の言語" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "投稿が見つかりません" @@ -3637,7 +4312,8 @@ msgstr "投稿が見つかりません" msgid "posts" msgstr "投稿" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "投稿" @@ -3645,7 +4321,7 @@ msgstr "投稿" msgid "Posts can be muted based on their text, their tags, or both." msgstr "投稿はテキスト、タグ、またはその両方に基づいてミュートできます。" -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "非表示の投稿" @@ -3653,61 +4329,76 @@ msgstr "非表示の投稿" msgid "Potentially Misleading Link" msgstr "誤解を招く可能性のあるリンク" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "再接続してみる" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "ホスティングプロバイダーを変える" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "再実行する" -#: src/screens/Messages/Conversation/MessagesList.tsx:47 -#: src/screens/Messages/Conversation/MessagesList.tsx:53 -#~ msgid "Press to Retry" -#~ msgstr "再実行" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "あなたもフォローしているこのアカウントのフォロワーを見る" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "前の画像" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "第一言語" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "あなたのフォローを優先" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "プライバシー" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "プライバシーポリシー" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "他のユーザーとプライベートにチャットします。" + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." -msgstr "処理中..." +msgstr "処理中…" -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "プロフィール" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "プロフィール" @@ -3715,11 +4406,11 @@ msgstr "プロフィール" msgid "Profile updated" msgstr "プロフィールを更新しました" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "メールアドレスを確認してアカウントを保護します。" -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "公開されています" @@ -3727,33 +4418,42 @@ msgstr "公開されています" msgid "Public, shareable lists of users to mute or block in bulk." msgstr "ユーザーを一括でミュートまたはブロックする、公開された共有可能なリスト。" -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." msgstr "フィードとして利用できる、公開された共有可能なリスト。" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "投稿を公開" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "返信を公開" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "QRコードをクリップボードにコピーしました" + +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "QRコードをダウンロードしました!" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "QRコードをカメラロールに保存しました!" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "クイック・チップ" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "引用" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 -msgid "Quote post" -msgstr "引用" - -#: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "引用" - -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "ランダムな順番で表示(別名「投稿者のルーレット」)" @@ -3761,28 +4461,51 @@ msgstr "ランダムな順番で表示(別名「投稿者のルーレット」 msgid "Ratios" msgstr "比率" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" -msgstr "" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" +msgstr "あなたのアカウントを再有効化" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "理由:" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "検索履歴" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "再接続" + +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "会話を再読み込み" + #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "削除" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "{displayName}をスターターパックから削除" + #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "アカウントを削除" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "アバターを削除" @@ -3790,9 +4513,13 @@ msgstr "アバターを削除" msgid "Remove Banner" msgstr "バナーを削除" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "埋め込みを削除" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "フィードを削除" @@ -3800,15 +4527,16 @@ msgstr "フィードを削除" msgid "Remove feed?" msgstr "フィードを削除しますか?" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "マイフィードから削除" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "マイフィードから削除しますか?" @@ -3816,7 +4544,7 @@ msgstr "マイフィードから削除しますか?" msgid "Remove image" msgstr "イメージを削除" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "イメージプレビューを削除" @@ -3824,11 +4552,20 @@ msgstr "イメージプレビューを削除" msgid "Remove mute word from your list" msgstr "リストからミュートワードを削除" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "プロフィールを削除" + +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "検索履歴からプロフィールを削除する" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 msgid "Remove quote" msgstr "引用を削除" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "リポストを削除" @@ -3836,139 +4573,162 @@ msgstr "リポストを削除" msgid "Remove this feed from your saved feeds" msgstr "保存したフィードからこのフィードを削除" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "リストから削除されました" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" -msgstr "フィードから削除しました" +msgstr "マイフィードから削除しました" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" msgstr "あなたのフィードから削除しました" -#: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "{0}からデフォルトのサムネイルを削除" - -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" msgstr "引用を削除する" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 -msgid "Replace with Discover" -msgstr "" +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" +msgstr "画像のプレビューを削除する" -#: src/view/screens/Profile.tsx:194 +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 +msgid "Replace with Discover" +msgstr "Discoverで置き換える" + +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "返信" -#: src/view/com/threadgate/WhoCanReply.tsx:98 +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "返信できません" + +#: src/components/WhoCanReply.tsx:243 msgid "Replies to this thread are disabled" msgstr "このスレッドへの返信はできません" -#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "返信" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "返信のフィルター" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "<0><1/>に返信" -#: src/components/dms/MessageMenu.tsx:109 +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" +msgstr "ブロックした投稿への返信" + +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "あなたへの返信" + +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 msgid "Report" msgstr "報告" -#: src/components/dms/ConvoMenu.tsx:146 -#: src/components/dms/ConvoMenu.tsx:150 -#~ msgid "Report account" -#~ msgstr "アカウントを報告" - -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "アカウントを報告" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" -msgstr "" +msgstr "会話を報告" #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "報告ダイアログ" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "フィードを報告" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "リストを報告" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" msgstr "メッセージを報告" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "投稿を報告" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "スタータパックを報告" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "このコンテンツを報告" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "このフィードを報告" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "このリストを報告" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" -msgstr "" +msgstr "このメッセージを報告" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "この投稿を報告" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "このスターターパックを報告" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "このユーザーを報告" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "リポスト" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "リポスト" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "リポストまたは引用" @@ -3976,19 +4736,24 @@ msgstr "リポストまたは引用" msgid "Reposted By" msgstr "リポストしたユーザー" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "{0}にリポストされた" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "<0><1/>がリポスト" -#: src/view/com/notifications/FeedItem.tsx:160 -msgid "reposted your post" -msgstr "あなたの投稿はリポストされました" +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "あなたのリポスト" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/notifications/FeedItem.tsx:188 +msgid "reposted your post" +msgstr "があなたの投稿をリポストしました" + +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "この投稿をリポスト" @@ -3997,12 +4762,12 @@ msgstr "この投稿をリポスト" msgid "Request Change" msgstr "変更を要求" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "コードをリクエスト" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "画像投稿時にALTテキストを必須とする" @@ -4010,7 +4775,7 @@ msgstr "画像投稿時にALTテキストを必須とする" msgid "Require email code to log into your account" msgstr "アカウントにログインする時にメールのコードを必須とする" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "このプロバイダーに必要" @@ -4019,16 +4784,16 @@ msgstr "このプロバイダーに必要" msgid "Resend email" msgstr "メールを再送" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "リセットコード" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "リセットコード" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "オンボーディングの状態をリセット" @@ -4036,20 +4801,20 @@ msgstr "オンボーディングの状態をリセット" msgid "Reset password" msgstr "パスワードをリセット" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "設定をリセット" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "オンボーディングの状態をリセットします" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "設定の状態をリセットします" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "ログインをやり直す" @@ -4058,26 +4823,24 @@ msgstr "ログインをやり直す" msgid "Retries the last action, which errored out" msgstr "エラーになった最後のアクションをやり直す" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" msgstr "再試行" -#: src/screens/Messages/Conversation/MessageListError.tsx:54 -#~ msgid "Retry." -#~ msgstr "再試行。" - #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "前のページに戻る" @@ -4086,26 +4849,28 @@ msgid "Returns to home page" msgstr "ホームページに戻る" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "前のページに戻る" #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "保存" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "保存" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "ALTテキストを保存" @@ -4121,29 +4886,34 @@ msgstr "変更を保存" msgid "Save handle change" msgstr "ハンドルの変更を保存" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "画像を保存" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "画像の切り抜きを保存" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "QRコードを保存" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" msgstr "マイフィードに保存" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" msgstr "保存されたフィード" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" -msgstr "" +msgstr "カメラロールに保存しました" -#: src/view/com/lightbox/Lightbox.tsx:81 -#~ msgid "Saved to your camera roll." -#~ msgstr "カメラロールに保存しました。" - -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "フィードを保存しました" @@ -4159,37 +4929,45 @@ msgstr "{handle}へのハンドルの変更を保存" msgid "Saves image crop settings" msgstr "画像の切り抜き設定を保存" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "よろしく!" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "科学" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "一番上までスクロール" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "検索" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "「{query}」を検索" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" msgstr "「{searchText}」を検索" @@ -4201,25 +4979,28 @@ msgstr "{displayTag}のすべての投稿を検索(@{authorHandle}のみ)" msgid "Search for all posts with tag {displayTag}" msgstr "{displayTag}のすべての投稿を検索(すべてのユーザー)" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." -msgstr "会話を始める相手を検索。" +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." +msgstr "他の人におすすめしたいフィードを検索。" -#: src/view/com/auth/LoggedOut.tsx:105 #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "ユーザーを検索" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "GIFを検索" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" msgstr "プロフィールを検索" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "Tenorを検索" @@ -4243,12 +5024,7 @@ msgstr "<0>{displayTag}の投稿を表示(すべてのユーザー)" msgid "See <0>{displayTag} posts by this user" msgstr "<0>{displayTag}の投稿を表示(このユーザーのみ)" -#: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "プロフィールを表示" - -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "ガイドを見る" @@ -4258,7 +5034,7 @@ msgstr "{item}を選択" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 msgid "Select a color" -msgstr "" +msgstr "色を選択" #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" @@ -4266,25 +5042,25 @@ msgstr "アカウントを選択" #: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 msgid "Select an avatar" -msgstr "" +msgstr "アバターを選択" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 msgid "Select an emoji" -msgstr "" +msgstr "絵文字を選択" #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "既存のアカウントから選択" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" msgstr "GIFを選ぶ" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" msgstr "GIF「{0}」を選ぶ" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "言語を選択" @@ -4296,15 +5072,11 @@ msgstr "モデレーターを選択" msgid "Select option {i} of {numItems}" msgstr "{numItems}個中{i}個目のオプションを選択" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "次のアカウントを選択してフォローしてください" - #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" -msgstr "" +msgstr "絵文字{emojiName}をアバターとして選択" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "報告先のモデレーションサービスを選んでください" @@ -4312,70 +5084,65 @@ msgstr "報告先のモデレーションサービスを選んでください" msgid "Select the service that hosts your data." msgstr "データをホストするサービスを選択します。" -#: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" -msgstr "次のリストから話題のフィードを選択してフォローしてください" +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" +msgstr "ビデオを選択" -#: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "見たい(または見たくない)ものを選択してください。あとは私たちにお任せください。" - -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." msgstr "登録されたフィードに含める言語を選択します。選択されていない場合は、すべての言語が表示されます。" -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "アプリに表示されるデフォルトのテキストの言語を選択" -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "生年月日を選択" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "次のオプションから興味のあるものを選択してください" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." msgstr "フィード内の翻訳に使用する言語を選択します。" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "1番目のフィードのアルゴリズムを選択してください" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" -msgstr "2番目のフィードのアルゴリズムを選択してください" +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" +msgstr "素敵なウェブサイトを送って!" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "確認のメールを送信" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "メールを送信" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "メールを送信" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "フィードバックを送信" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" msgstr "メッセージを送信" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." +msgstr "投稿を送る…" + +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "報告を送信" @@ -4388,7 +5155,12 @@ msgstr "{0}に報告を送信" msgid "Send verification email" msgstr "確認メールを送信" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "ダイレクトメッセージで送信" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "アカウントの削除の確認コードをメールに送信" @@ -4396,7 +5168,7 @@ msgstr "アカウントの削除の確認コードをメールに送信" msgid "Server address" msgstr "サーバーアドレス" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "生年月日を設定" @@ -4404,23 +5176,23 @@ msgstr "生年月日を設定" msgid "Set new password" msgstr "新しいパスワードを設定" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "フィード内の引用をすべて非表示にするには、この設定を「いいえ」にします。リポストは引き続き表示されます。" -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "フィード内の返信をすべて非表示にするには、この設定を「いいえ」にします。" -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "フィード内のリポストをすべて非表示にするには、この設定を「いいえ」にします。" -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "スレッド表示で返信を表示するには、この設定を「はい」にします。これは実験的な機能です。" -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "保存されたフィードから投稿を抽出してFollowingフィードに表示するには、この設定を「はい」にします。これは実験的な機能です。" @@ -4432,23 +5204,23 @@ msgstr "アカウントを設定する" msgid "Sets Bluesky username" msgstr "Blueskyのユーザーネームを設定" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "カラーテーマをダークに設定します" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "カラーテーマをライトに設定します" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "デバイスで設定したカラーテーマを使用するように設定します" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "ダークテーマを暗いものに設定します" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "ダークテーマを薄暗いものに設定します" @@ -4468,12 +5240,11 @@ msgstr "画像のアスペクト比を縦長に設定" msgid "Sets image aspect ratio to wide" msgstr "画像のアスペクト比をワイドに設定" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "設定" @@ -4485,55 +5256,92 @@ msgstr "性的行為または性的なヌード。" msgid "Sexually Suggestive" msgstr "性的にきわどい" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "共有" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "共有" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "共有" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "クールなストーリーをシェアして!" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "面白いことをシェアして!" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "とにかく共有" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "フィードを共有" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "リンクを共有" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "リンクを共有" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "リンク共有のダイアログ" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "QRコードを共有" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "このスターターパックを共有" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "このスターターパックを共有して、他のユーザーがBlueskyでのコミュニティに参加するよう手伝います" + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "お気に入りのフィードをシェアして!" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "Shared Preferencesのテスター" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "リンクしたウェブサイトを共有" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "表示" -#: src/view/screens/PreferencesFollowingFeed.tsx:68 -#~ msgid "Show all replies" -#~ msgstr "すべての返信を表示" - -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" -msgstr "" +msgstr "ALTテキストを表示" #: src/components/moderation/ScreenHider.tsx:169 #: src/components/moderation/ScreenHider.tsx:172 @@ -4549,83 +5357,59 @@ msgstr "バッジを表示" msgid "Show badge and filter from feeds" msgstr "バッジの表示とフィードからのフィルタリング" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "{0}に似たおすすめのフォロー候補を表示" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 -msgid "Show less like this" -msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "隠れている返信を表示" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 +msgid "Show less like this" +msgstr "このような投稿の表示を減らす" + +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "さらに表示" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" -msgstr "" +msgstr "このような投稿の表示を増やす" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "ミュートした返信を表示" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" msgstr "マイフィードからの投稿を表示" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "引用を表示" -#: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "Followingフィードで引用を表示" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "Followingフィードで引用を表示" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "Followingフィードでリポストを表示" - -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "返信を表示" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "自分がフォローしているユーザーからの返信を、他のすべての返信の前に表示します。" -#: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "Followingフィードで返信を表示" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "Followingフィードで返信を表示" - -#: src/view/screens/PreferencesFollowingFeed.tsx:70 -#~ msgid "Show replies with at least {value} {0}" -#~ msgstr "{value}個以上の{0}がついた返信を表示" - -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "リポストを表示" -#: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "Followingフィードでリポストを表示" - -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "コンテンツを表示" -#: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "ユーザーを表示" - #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" msgstr "警告を表示" @@ -4642,17 +5426,17 @@ msgstr "マイフィード内の{0}からの投稿を表示します" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4675,17 +5459,17 @@ msgstr "会話に参加するにはサインインするか新しくアカウン msgid "Sign into Bluesky or create a new account" msgstr "Blueskyにサインイン または 新規アカウントの登録" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "サインアウト" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4701,7 +5485,7 @@ msgstr "サインアップまたはサインインして会話に参加" msgid "Sign-in Required" msgstr "サインインが必要" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "サインイン済み" @@ -4710,56 +5494,86 @@ msgstr "サインイン済み" msgid "Signed in as @{0}" msgstr "@{0}でサインイン" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "あなたのスターターパックでサインアップ" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "スターターパックを使わずにサインアップ" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "スキップ" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "この手順をスキップする" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "ソフトウェア開発" -#: src/screens/Messages/Conversation/index.tsx:89 +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" +msgstr "お好みかもしれない他のフィード" + +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "一部の人が返信可能" + +#: src/screens/Messages/Conversation/index.tsx:106 msgid "Something went wrong" -msgstr "" +msgstr "何らかの問題が発生しました" + +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "なにか間違っているようなので、もう一度お試しください" #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "なにか間違っているようなので、もう一度お試しください。" -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "" + +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "大変申し訳ありません!セッションの有効期限が切れました。もう一度ログインしてください。" -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "返信を並び替える" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "次の方法で同じ投稿への返信を並び替えます。" -#: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" -msgstr "ソース:" +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" +msgstr "ソース:<0>{0}" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "スパム" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "スパム、過剰なメンションや返信" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "スポーツ" @@ -4767,65 +5581,94 @@ msgstr "スポーツ" msgid "Square" msgstr "正方形" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" msgstr "新しいチャットを開始" -#: src/view/screens/Settings/index.tsx:896 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "{displayName}とのチャットを開始" + +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "チャットを開始" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "オンボーディングツアー・ウインドウ開始。前へ戻らないでください。代わりに、進んで他のオプションを見るか、スキップしてください。" + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "スターターパック" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "{0}によるスターターパック" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "スターターパックが無効です" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "スターターパック" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." +msgstr "スターターパックを使ってお気に入りのフィードやユーザーを友人へ簡単に共有できます。" + +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" msgstr "ステータスページ" -#: src/screens/Signup/index.tsx:145 -#~ msgid "Step" -#~ msgstr "ステップ" - -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" -msgstr "" +msgstr "ステップ {0} / {1}" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "ストレージがクリアされたため、今すぐアプリを再起動する必要があります。" -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "ストーリーブック" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "送信" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "登録" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "これらのラベルを使用するには@{0}を登録してください:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "ラベラーを登録する" -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "{0} フィードを登録" - -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "このラベラーを登録" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "このリストに登録" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "おすすめのフォロー" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "おすすめのアカウント" +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "あなたへのおすすめ" @@ -4834,7 +5677,7 @@ msgstr "あなたへのおすすめ" msgid "Suggestive" msgstr "きわどい" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -4845,19 +5688,23 @@ msgstr "サポート" msgid "Switch Account" msgstr "アカウントを切り替える" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "フィードを切り替えて、あなたの体験をコントロールしよう。" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "{0}に切り替え" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "ログインしているアカウントを切り替えます" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "システム" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "システムログ" @@ -4873,29 +5720,51 @@ msgstr "タグメニュー:{displayTag}" msgid "Tall" msgstr "トール" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "タップして消す" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "タップして全体を表示" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "タスク完了 - 10いいね!" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "アルゴリズムを鍛える" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "テクノロジー" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "ジョークを言って!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "もう少し教えて" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "条件" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "利用規約" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "使用されている用語がコミュニティ基準に違反している" @@ -4903,12 +5772,13 @@ msgstr "使用されている用語がコミュニティ基準に違反してい msgid "text" msgstr "テキスト" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "テキストの入力フィールド" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "ありがとうございます。あなたの報告は送信されました。" @@ -4916,19 +5786,24 @@ msgstr "ありがとうございます。あなたの報告は送信されまし msgid "That contains the following:" msgstr "その内容は以下の通りです:" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "そのハンドルはすでに使用されています。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "そのスターターパックが見つかりませんでした。" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "このアカウントは、ブロック解除後にあなたとやり取りすることができます。" -#: src/components/moderation/ModerationDetailsDialog.tsx:127 -#~ msgid "the author" -#~ msgstr "投稿者" - #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "コミュニティーガイドラインは<0/>に移動しました" @@ -4937,15 +5812,24 @@ msgstr "コミュニティーガイドラインは<0/>に移動しました" msgid "The Copyright Policy has been moved to <0/>" msgstr "著作権ポリシーは<0/>に移動しました" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 -msgid "The feed has been replaced with Discover." -msgstr "" +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" +msgstr "Discoverフィードはあなたの好みを学習しました" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "アプリのほうがより良い体験をすることができます。今すぐBlueskyをダウンロードして、中断したところから再開しましょう。" + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 +msgid "The feed has been replaced with Discover." +msgstr "フィードはDiscoverと置き換えられました。" + +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "以下のラベルがあなたのアカウントに適用されました。" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "以下のラベルがあなたのコンテンツに適用されました。" @@ -4953,8 +5837,8 @@ msgstr "以下のラベルがあなたのコンテンツに適用されました msgid "The following steps will help customize your Bluesky experience." msgstr "次の手順であなたのBlueskyでの体験をカスタマイズできます。" -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "投稿が削除された可能性があります。" @@ -4962,6 +5846,10 @@ msgstr "投稿が削除された可能性があります。" msgid "The Privacy Policy has been moved to <0/>" msgstr "プライバシーポリシーは<0/>に移動しました" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "見ようとしたスターターパックが無効です。代わりにスターターパックを削除してください。" + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "サポートフォームは移動しました。サポートが必要な場合は、<0/>または{HELP_DESK_URL}にアクセスしてご連絡ください。" @@ -4970,52 +5858,49 @@ msgstr "サポートフォームは移動しました。サポートが必要な msgid "The Terms of Service have been moved to" msgstr "サービス規約は移動しました" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" -msgstr "試せるフィードはたくさんあります:" +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." +msgstr "アカウントの無効化に期限はありません。いつでも戻ってこられます。" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "サーバーへの問い合わせ中に問題が発生しました。インターネットへの接続を確認の上、もう一度お試しください。" -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "フィードの削除中に問題が発生しました。インターネットへの接続を確認の上、もう一度お試しください。" #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "フィードの更新中に問題が発生しました。インターネットへの接続を確認の上、もう一度お試しください。" -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." msgstr "Tenorへの接続中に問題が発生しました。" -#: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" - -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "サーバーへの問い合わせ中に問題が発生しました" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "サーバーへの問い合わせ中に問題が発生しました" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "通知の取得中に問題が発生しました。もう一度試すにはこちらをタップしてください。" -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "投稿の取得中に問題が発生しました。もう一度試すにはこちらをタップしてください。" @@ -5023,58 +5908,52 @@ msgstr "投稿の取得中に問題が発生しました。もう一度試すに msgid "There was an issue fetching the list. Tap here to try again." msgstr "リストの取得中に問題が発生しました。もう一度試すにはこちらをタップしてください。" -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "リストの取得中に問題が発生しました。もう一度試すにはこちらをタップしてください。" -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "報告の送信に問題が発生しました。インターネットの接続を確認してください。" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "設定をサーバーと同期中に問題が発生しました" - -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "アプリパスワードの取得中に問題が発生しました" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "問題が発生しました! {0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "問題が発生しました。インターネットへの接続を確認の上、もう一度お試しください。" -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "アプリケーションに予期しない問題が発生しました。このようなことが繰り返した場合はサポートへお知らせください!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "Blueskyに新規ユーザーが殺到しています!できるだけ早くアカウントを有効にできるよう努めます。" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "これらは、あなたが好きかもしれない人気のあるアカウントです。" - #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" msgstr "この{screenDescription}にはフラグが設定されています:" @@ -5083,13 +5962,21 @@ msgstr "この{screenDescription}にはフラグが設定されています:" msgid "This account has requested that users sign in to view their profile." msgstr "このアカウントを閲覧するためにはサインインが必要です。" -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "このアカウントは1つ、あるいは複数のモデレーションリストでブロックされています。ブロックを解除するにはリストの画面に移動してこのユーザーをリストから外してください。" + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "この申し立ては<0>{0}に送られます。" -#: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." -msgstr "" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." +msgstr "この異議申し立てはBlueskyのモデレーション・サービスに送られます。" + +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "このチャットは切断されました" #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." @@ -5104,35 +5991,39 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "このコンテンツは{0}によってホストされています。外部メディアを有効にしますか?" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." msgstr "このコンテンツは関係するユーザーの一方が他方をブロックしているため、利用できません。" -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "このコンテンツはBlueskyのアカウントがないと閲覧できません。" -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "削除あるいは無効化されたアカウントとの会話です。押すと選択肢が表示されます。" + +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "この機能はベータ版です。リポジトリのエクスポートの詳細については、<0>このブログ投稿を参照してください。" -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "現在このフィードにはアクセスが集中しており、一時的にご利用いただけません。時間をおいてもう一度お試しください。" -#: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "このフィードは空です!" - #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "このフィードは空です!もっと多くのユーザーをフォローするか、言語の設定を調整する必要があるかもしれません。" -#: src/view/com/posts/FeedShutdownMsg.tsx:97 +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." +msgstr "このフィードは空です。" + +#: src/view/com/posts/FeedShutdownMsg.tsx:99 msgid "This feed is no longer online. We are showing <0>Discover instead." -msgstr "" +msgstr "このフィードはもはやオンラインではありません。代わりに<0>Discoverを表示しています。" #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." @@ -5142,23 +6033,19 @@ msgstr "この情報は他のユーザーと共有されません。" msgid "This is important in case you ever need to change your email or reset your password." msgstr "これは、メールアドレスの変更やパスワードのリセットが必要な場合に重要です。" -#: src/components/moderation/ModerationDetailsDialog.tsx:124 -#~ msgid "This label was applied by {0}." -#~ msgstr "{0}によって適用されたラベルです。" - #: src/components/moderation/ModerationDetailsDialog.tsx:127 msgid "This label was applied by <0>{0}." -msgstr "" +msgstr "<0>{0}によって適用されたラベルです。" #: src/components/moderation/ModerationDetailsDialog.tsx:125 msgid "This label was applied by the author." -msgstr "" +msgstr "投稿者によって適用されたラベルです。" -#: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" -msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." +msgstr "あなたによって適用されたラベルです。" -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "このラベラーはどのようなラベルを発行しているか宣言しておらず、活動していない可能性もあります。" @@ -5166,7 +6053,7 @@ msgstr "このラベラーはどのようなラベルを発行しているか宣 msgid "This link is taking you to the following website:" msgstr "このリンクは次のウェブサイトへリンクしています:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "このリストは空です!" @@ -5174,24 +6061,24 @@ msgstr "このリストは空です!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "このモデレーションのサービスはご利用できません。詳細は以下をご覧ください。この問題が解決しない場合は、サポートへお問い合わせください。" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "この名前はすでに使用中です" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "この投稿は削除されました。" -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "この投稿はログインしているユーザーにのみ表示されます。ログインしていない方には見えません。" -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "この投稿はフィードから非表示になります。" -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "このプロフィールはログインしているユーザーにのみ表示されます。ログインしていない方には見えません。" @@ -5207,8 +6094,12 @@ msgstr "右記にドメインレコードを作成されるはずです:" msgid "This user doesn't have any followers." msgstr "このユーザーにはフォロワーがいません。" +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "このユーザーはあなたをブロックしています" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "このユーザーはあなたをブロックしているため、あなたはこのユーザーのコンテンツを閲覧できません。" @@ -5224,32 +6115,36 @@ msgstr "このユーザーはブロックした<0>{0}リストに含まれ msgid "This user is included in the <0>{0} list which you have muted." msgstr "このユーザーはミュートした<0>{0}リストに含まれています。" +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "新しいユーザーです。ここを押すといつ参加したかの情報が表示されます。" + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "このユーザーは誰もフォローしていません。" -#: src/view/com/modals/SelfLabel.tsx:137 -#~ msgid "This warning is only available for posts with media attached." -#~ msgstr "この警告は、メディアが添付されている投稿にのみ使用できます。" - #: src/components/dialogs/MutedWords.tsx:283 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "ミュートしたワードから{0}が削除されます。あとでいつでも戻すことができます。" -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" msgstr "スレッドの設定" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "スレッドの設定" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "スレッドの設定を更新しました" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "スレッドモード" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "スレッドの設定" @@ -5257,9 +6152,9 @@ msgstr "スレッドの設定" msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "メールでの2要素認証を無効にするには、メールアドレスにアクセスできるか確認してください。" -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." -msgstr "" +msgstr "会話を報告するには、会話の画面からメッセージのうちの一つを報告してください。それによって問題の文脈をモデレーターが理解できるようになります。" #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" @@ -5269,16 +6164,16 @@ msgstr "この報告を誰に送りたいですか?" msgid "Toggle between muted word options." msgstr "ミュートしたワードのオプションを切り替えます。" -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "ドロップダウンをトグル" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "成人向けコンテンツの有効もしくは無効の切り替え" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "トップ" @@ -5286,10 +6181,12 @@ msgstr "トップ" msgid "Transformations" msgstr "変換" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "翻訳" @@ -5298,11 +6195,15 @@ msgctxt "action" msgid "Try again" msgstr "再試行" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "テレビ" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "2要素認証" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" msgstr "ここにメッセージを入力する" @@ -5310,53 +6211,65 @@ msgstr "ここにメッセージを入力する" msgid "Type:" msgstr "タイプ:" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "リストでのブロックを解除" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "リストでのミュートを解除" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "あなたのサービスに接続できません。インターネットの接続を確認してください。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "削除できません" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "ブロックを解除" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "ブロックを解除" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "アカウントのブロックを解除" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "アカウントのブロックを解除" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" msgstr "アカウントのブロックを解除しますか?" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "リポストを元に戻す" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "フォローを解除" @@ -5365,25 +6278,21 @@ msgstr "フォローを解除" msgid "Unfollow" msgstr "フォローを解除" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "{0}のフォローを解除" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "アカウントのフォローを解除" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:197 -#~ msgid "Unlike" -#~ msgstr "いいねを外す" - -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "このフィードからいいねを外す" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "ミュートを解除" @@ -5391,8 +6300,8 @@ msgstr "ミュートを解除" msgid "Unmute {truncatedTag}" msgstr "{truncatedTag}のミュートを解除" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "アカウントのミュートを解除" @@ -5400,46 +6309,46 @@ msgstr "アカウントのミュートを解除" msgid "Unmute all {displayTag} posts" msgstr "{displayTag}のすべての投稿のミュートを解除" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" -msgstr "通知のミュートを解除" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" +msgstr "会話のミュートを解除" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" msgstr "スレッドのミュートを解除" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "ピン留めを解除" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "ホームからピン留めを解除" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "モデレーションリストのピン留めを解除" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "フィードからピン留めを解除" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "登録を解除" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "このラベラーの登録を解除" +#: src/lib/moderation/useReportOptions.ts:72 #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" - -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "望まない性的なコンテンツ" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "リストの{displayName}を更新" @@ -5451,28 +6360,28 @@ msgstr "{handle}に更新" msgid "Updating..." msgstr "更新中…" -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" -msgstr "" +msgstr "代わりに写真をアップロード" #: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "テキストファイルのアップロード先:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "カメラからアップロード" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "ファイルからアップロード" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -5482,7 +6391,7 @@ msgstr "ライブラリーからアップロード" msgid "Use a file on your server" msgstr "あなたのサーバーのファイルを使用" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "他のBlueskyクライアントにアカウントやパスワードに完全にアクセスする権限を与えずに、アプリパスワードを使ってログインします。" @@ -5506,13 +6415,13 @@ msgstr "デフォルトのブラウザーを使用" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 msgid "Use recommended" -msgstr "" +msgstr "おすすめを使う" #: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "DNSパネルを使用" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "このアプリパスワードとハンドルを使って他のアプリにサインインします。" @@ -5521,19 +6430,23 @@ msgid "Used by:" msgstr "使用者:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "ブロック中のユーザー" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr "「{0}」によってブロックされたユーザー" +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "リストによってブロック中のユーザー" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "リストによってブロック中のユーザー" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "あなたをブロックしているユーザー" @@ -5541,46 +6454,53 @@ msgstr "あなたをブロックしているユーザー" msgid "User Blocks You" msgstr "あなたをブロックしているユーザー" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "<0/>の作成したユーザーリスト" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "<0/>の作成したユーザーリスト" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "あなたの作成したユーザーリスト" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "ユーザーリストを作成しました" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "ユーザーリストを更新しました" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "ユーザーリスト" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "ユーザー名またはメールアドレス" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "ユーザー" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "<0/>にフォローされているユーザー" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "フォローしているユーザー" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "{0}のユーザー" @@ -5592,23 +6512,19 @@ msgstr "このコンテンツやプロフィールにいいねをしているユ msgid "Value:" msgstr "値:" -#: src/view/com/modals/ChangeHandle.tsx:510 -#~ msgid "Verify {0}" -#~ msgstr "{0}で認証" - #: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" -msgstr "" +msgstr "DNSレコードを確認" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "メールアドレスを確認" @@ -5619,37 +6535,50 @@ msgstr "新しいメールアドレスを確認" #: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" -msgstr "" +msgstr "テキストファイルを確認" #: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" msgstr "バージョン {appVersion} {bundleInfo}" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "ビデオゲーム" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "ビデオは100MB以下にしてください" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "{0}のアバターを表示" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "{0}のプロフィールを表示" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "ブロック中のユーザーのプロフィールを表示" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "デバッグエントリーを表示" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "詳細を表示" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "著作権侵害の報告の詳細を見る" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "スレッドをすべて表示" @@ -5657,13 +6586,15 @@ msgstr "スレッドをすべて表示" msgid "View information about these labels" msgstr "これらのラベルに関する情報を見る" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "プロフィールを表示" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "アバターを表示" @@ -5671,10 +6602,15 @@ msgstr "アバターを表示" msgid "View the labeling service provided by @{0}" msgstr "@{0}によって提供されるラベリングサービスを見る" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "このフィードにいいねしたユーザーを見る" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "フィードを表示し、さらにフィードを探す" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -5683,7 +6619,6 @@ msgstr "サイトへアクセス" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "警告" @@ -5699,15 +6634,15 @@ msgstr "コンテンツの警告とフィードからのフィルタリング" msgid "We couldn't find any results for that hashtag." msgstr "そのハッシュタグの検索結果は見つかりませんでした。" -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" -msgstr "" +msgstr "この会話を読み込めませんでした" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "あなたのアカウントが準備できるまで{estimatedTime}ほどかかります。" -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "素敵なひとときをお過ごしください。覚えておいてください、Blueskyは:" @@ -5719,35 +6654,35 @@ msgstr "あなたのフォロー中のユーザーの投稿を読み終わりま msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "投稿が表示されなくなる可能性があるため、多くの投稿に使われる一般的なワードは避けることをおすすめします。" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "我々の「Discover」フィードがおすすめ:" - #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "生年月日の設定を読み込むことはできませんでした。もう一度お試しください。" -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "現在設定されたラベラーを読み込めません。" -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "接続できませんでした。アカウントの設定を続けるためにもう一度お試しください。繰り返し失敗する場合は、この手順をスキップすることもできます。" -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "アカウントの準備ができたらお知らせします。" -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "これはあなたの体験をカスタマイズするために使用されます。" -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "ネットワークで問題が発生しています。再度試してください" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "私たちはあなたが参加してくれることをとても楽しみにしています!" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "大変申し訳ありませんが、このリストを解決できませんでした。それでもこの問題が解決しない場合は、作成者の@{handleOrDid}までお問い合わせください。" @@ -5755,26 +6690,42 @@ msgstr "大変申し訳ありませんが、このリストを解決できませ msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "大変申し訳ありませんが、現在ミュートされたワードを読み込むことができませんでした。もう一度お試しください。" -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "大変申し訳ありませんが、検索を完了できませんでした。数分後に再試行してください。" -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "大変申し訳ありません!返信しようとしている投稿は削除されました。" + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "大変申し訳ありません!お探しのページは見つかりません。" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." -msgstr "大変申し訳ありません!ラベラーは10までしか登録できず、すでに上限に達しています。" +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "大変申し訳ありません!ラベラーは20までしか登録できず、すでに上限に達しています。" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" +msgstr "おかえりなさい!" + +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "ようこそ、友よ!" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" msgstr "なにに興味がありますか?" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "あなたのスターターパックを何と呼びたいですか?" + #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "最近どう?" @@ -5786,36 +6737,53 @@ msgstr "この投稿ではどの言語が使われていますか?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "アルゴリズムによるフィードにはどの言語を使用しますか?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "誰があなたへメッセージを送れるか?" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "返信できるユーザー" -#: src/screens/Home/NoFeedsPinned.tsx:92 -msgid "Whoops!" -msgstr "" +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "誰が返信できるのかについてのダイアログ" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "誰が返信できますか?" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 +msgid "Whoops!" +msgstr "おっと!" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "なぜこのコンテンツをレビューする必要がありますか?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "なぜこのフィードをレビューする必要がありますか?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "なぜこのリストをレビューする必要がありますか?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" -msgstr "" +msgstr "なぜこのメッセージをレビューする必要がありますか?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "なぜこの投稿をレビューする必要がありますか?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "なぜこのスターターパックをレビューする必要がありますか?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "なぜこのユーザーをレビューする必要がありますか?" @@ -5823,39 +6791,61 @@ msgstr "なぜこのユーザーをレビューする必要がありますか? msgid "Wide" msgstr "ワイド" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" msgstr "メッセージを書く" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "投稿を書く" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "返信を書く" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "ライター" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "はい" -#: src/components/dms/MessageItem.tsx:158 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "はい、無効化します" + +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "はい、このスターターパックを削除します" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "はい、アカウントを再有効化します" + +#: src/components/dms/MessageItem.tsx:182 msgid "Yesterday, {time}" msgstr "昨日、{time}" -#: src/screens/Deactivated.tsx:136 +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "あなた" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "あなた" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "あなたは並んでいます。" @@ -5863,58 +6853,74 @@ msgstr "あなたは並んでいます。" msgid "You are not following anyone." msgstr "あなたはまだだれもフォローしていません。" -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "また、あなたはフォローすべき新しいカスタムフィードを発見できます。" -#: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." -msgstr "これらの設定はあとで変更できます。" +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "代わりにアカウントを一時的に無効化して、いつでも再有効化することもできます。" + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "これはいつでも変更できます。" + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "どの設定を選択しても進行中の会話は続けることができます。" #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." msgstr "新しいパスワードでサインインできるようになりました。" +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "アカウントを再有効化してログインし続けることができます。あなたのプロフィールと投稿は他のユーザーに見えるようになります。" + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "あなたはまだだれもフォロワーがいません。" +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "@{name}をフォローしているユーザーを誰もフォローしていません。" + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "まだ招待コードがありません!Blueskyをもうしばらく利用したらお送りします。" -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." msgstr "ピン留めされたフィードがありません。" -#: src/view/screens/Feeds.tsx:477 -#~ msgid "You don't have any saved feeds!" -#~ msgstr "保存されたフィードがありません!" - -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." msgstr "保存されたフィードがありません。" -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "あなたが投稿者をブロックしているか、または投稿者によってあなたはブロックされています。" +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "あなたはこのユーザーをブロックしました" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "あなたはこのユーザーをブロックしているため、コンテンツを閲覧できません。" #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "無効なコードが入力されました。それはXXXXX-XXXXXのようになっているはずです。" -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "この投稿を非表示にしました" @@ -5923,32 +6929,32 @@ msgid "You have hidden this post." msgstr "この投稿を非表示にしました。" #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "このアカウントをミュートしました。" -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "このユーザーをミュートしました" -#: src/view/com/feeds/ProfileFeedgens.tsx:144 +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "まだ会話していません。始めましょう!" + +#: src/view/com/feeds/ProfileFeedgens.tsx:137 msgid "You have no feeds." msgstr "フィードがありません。" -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." msgstr "リストがありません。" -#: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "メッセージがありません。誰かと会話を始めましょう!" - #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "ブロック中のアカウントはまだありません。アカウントをブロックするには、ユーザーのプロフィールに移動し、アカウントメニューから「アカウントをブロック」を選択します。" -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "アプリパスワードはまだ作成されていません。下のボタンを押すと作成できます。" @@ -5956,35 +6962,63 @@ msgstr "アプリパスワードはまだ作成されていません。下のボ msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "ミュートしているアカウントはまだありません。アカウントをミュートするには、プロフィールに移動し、アカウントメニューから「アカウントをミュート」を選択します。" +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "最後まで到達しました" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "スターターパックをまだ作成していません!" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "まだワードやタグをミュートしていません" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." -msgstr "" +msgstr "間違って適用されたと思うのであれば、自己申告ではないラベルならば異議申し立てができます。" -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." -msgstr "これらのラベルが誤って貼られたと思った場合は、異議申し立てを行うことができます。" +msgstr "これらのラベルが誤って適用されたと思った場合は、異議申し立てを行うことができます。" + +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "50フィードまで追加できます" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "50ユーザーまで追加できます" #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "サインアップするには、13歳以上である必要があります。" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" -msgstr "成人向けコンテンツを有効にするには、18歳以上である必要があります。" +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." +msgstr "スターターパックを作成するには少なくとも7人フォローしていなくてはなりません" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "QRコードを保存するには写真ライブラリへのアクセスを許可する必要があります" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "画像を保存するには写真ライブラリへのアクセスを許可する必要があります。" + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "報告をするには少なくとも1つのラベラーを選択する必要があります" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "以前、あなたは@{0}を無効化しました。" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "これ以降、このスレッドに関する通知を受け取ることはできなくなります" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "これ以降、このスレッドに関する通知を受け取ることができます" @@ -5992,60 +7026,90 @@ msgstr "これ以降、このスレッドに関する通知を受け取ること msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "「リセットコード」が記載されたメールが届きます。ここにコードを入力し、新しいパスワードを入力します。" -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" msgstr "あなた: {0}" -#: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "あなたがコントロールしています" +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "あなた: {defaultEmbeddedContentMessage}" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "あなた: {short}" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "アカウントの作成を完了するとおすすめのユーザーやフィードをフォローします!" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "アカウントの作成を完了するとおすすめのユーザーをフォローします!" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "これらのユーザーや他{0}をフォローします" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "これらのユーザーをすぐにフォローします" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" +msgstr "これらのフィードの更新を受け取ります" + +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "あなたは並んでいます。" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "アプリパスワードでログイン中です。アカウントの無効化を続けるにはメインのパスワードでログインしてください。" + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "準備ができました!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "この投稿でワードまたはタグを隠すことを選択しました。" -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "フィードはここまでです!もっとフォローするアカウントを見つけましょう。" -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "あなたのアカウント" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "あなたのアカウントは削除されました" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "あなたのアカウントの公開データの全記録を含むリポジトリは、「CAR」ファイルとしてダウンロードできます。このファイルには、画像などのメディア埋め込み、また非公開のデータは含まれていないため、それらは個別に取得する必要があります。" -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "生年月日" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "あなたのチャットは無効化されています" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "ここで選択した内容は保存されますが、あとから設定で変更できます。" -#: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "あなたのデフォルトフィードは「Following」です" - #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "メールアドレスが無効なようです。" @@ -6057,11 +7121,15 @@ msgstr "メールアドレスは更新されましたが、確認されていま msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "メールアドレスはまだ確認されていません。これは、当社が推奨する重要なセキュリティステップです。" -#: src/view/com/posts/FollowingEmptyState.tsx:47 +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "最初のいいね!" + +#: src/view/com/posts/FollowingEmptyState.tsx:43 msgid "Your following feed is empty! Follow more users to see what's happening." msgstr "Followingフィードは空です!もっと多くのユーザーをフォローして、近況を確認しましょう。" -#: src/screens/Signup/StepHandle.tsx:73 +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "フルハンドルは" @@ -6073,30 +7141,34 @@ msgstr "フルハンドルは<0>@{0}になります" msgid "Your muted words" msgstr "ミュートしたワード" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "パスワードの変更が完了しました!" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "投稿を公開しました" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "投稿、いいね、ブロックは公開されます。ミュートは非公開です。" -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "あなたのプロフィール" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "あなたのプロフィール、投稿、フィード、そしてリストは他のBlueskyユーザーに見えなくなります。ログインすることでいつでもアカウントを再有効化できます。" + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "返信を公開しました" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" -msgstr "" +msgstr "あなたの報告はBluesky Moderation Serviceに送られます" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "あなたのユーザーハンドル" diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po index 96dd562817..3783b61f51 100644 --- a/src/locale/locales/ko/messages.po +++ b/src/locale/locales/ko/messages.po @@ -8,50 +8,55 @@ msgstr "" "Language: ko\n" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-05-08 09:37+0900\n" +"PO-Revision-Date: 2024-07-05 09:53+0900\n" "Last-Translator: quiple\n" "Language-Team: quiple, lens0021, HaruChanHeart, hazzzi, heartade\n" "Plural-Forms: \n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "(임베드 콘텐츠 포함)" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(이메일 없음)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "외 {0, plural, other {{formattedCount}}}명" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" msgstr "이 계정에 {0, plural, other {#}}개의 라벨이 지정됨" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" msgstr "이 콘텐츠에 {0, plural, other {#}}개의 라벨이 지정됨" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "{0, plural, other {#}}개" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "팔로워" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "팔로우 중" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "좋아요 ({0, plural, other {#}}개)" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" msgstr "좋아요" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{0, plural, other {#}}명의 사용자가 좋아함" @@ -59,120 +64,198 @@ msgstr "{0, plural, other {#}}명의 사용자가 좋아함" msgid "{0, plural, one {post} other {posts}}" msgstr "게시물" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "답글 ({0, plural, other {#}}개)" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" msgstr "재게시" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "좋아요 취소 ({0, plural, other {#}}개)" -#: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" -msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "이번 주에 {0}명이 가입함" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "{0}명이 이 스타터 팩을 사용했습니다!" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "{0} 님의 아바타" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "{0} 님이 좋아하는 피드 및 사람들 - 함께하세요!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" +msgstr "{0} 님의 스타터 팩" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{count, plural, other {#}}명의 사용자가 좋아함" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "일" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "시간" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "분" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "개월" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "초" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "{displayName} 님의 스타터 팩" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" msgstr "시간" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "분" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} 팔로우 중" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "{handle} 님에게 메시지를 보낼 수 없습니다" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{likeCount, plural, other {#}}명의 사용자가 좋아함" -#: src/view/shell/Drawer.tsx:461 +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications}개 읽지 않음" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "{profileName} 님은 {0} 전에 Bluesky에 가입했습니다" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "{profileName} 님은 {0} 전에 스타터 팩을 사용하여 Bluesky에 가입했습니다" + #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "{value, plural, =0 {모든 답글 표시} other {좋아요가 #개 이상인 답글 표시}}" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "<0/>의 멤버" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}, <1>{1} 외 {2, plural, other {#}}명이 스타터 팩에 포함됩니다" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}, <1>{1} 외 {2, plural, other {#}}개가 스타터 팩에 포함됩니다" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "<0>{0} 팔로워" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "<0>{0} 팔로우 중" +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "<0>{0} 및<1> <2>{1}이(가) 스타터 팩에 포함됩니다" + +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "<0>{0}이(가) 스타터 팩에 포함됩니다" + #: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "<0>해당 없음. 이 경고는 미디어가 첨부된 게시물에만 사용할 수 있습니다." -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "<0>나와<1> <2>{0} 님이 스타터 팩에 포함됩니다" + +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "⚠잘못된 핸들" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" msgstr "2단계 인증" -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "도움말 툴팁" + +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "탐색 링크 및 설정으로 이동합니다" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "프로필 및 기타 탐색 링크로 이동합니다" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "접근성" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" msgstr "접근성 설정" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" msgstr "접근성 설정" -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "계정" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "계정 차단됨" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "계정 팔로우함" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "계정 뮤트됨" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "계정 뮤트됨" @@ -188,37 +271,46 @@ msgstr "계정 옵션" msgid "Account removed from quick access" msgstr "빠른 액세스에서 계정 제거" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "계정 차단 해제됨" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "계정 언팔로우함" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "계정 언뮤트됨" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "추가" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "계속하려면 {0}개 더 추가하기" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "스타터 팩에 {displayName} 추가" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "콘텐츠 경고 추가" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "이 리스트에 사용자 추가" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "계정 추가" @@ -227,13 +319,13 @@ msgstr "계정 추가" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "대체 텍스트 추가" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "앱 비밀번호 추가" @@ -245,11 +337,15 @@ msgstr "구성 설정에 뮤트 단어 추가" msgid "Add muted words and tags" msgstr "뮤트할 단어 및 태그 추가" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" msgstr "추천 피드 추가" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" +msgstr "스타터 팩에 피드를 추가해 보세요!" + +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" msgstr "내가 팔로우하는 사람의 기본 피드만 추가하기" @@ -257,49 +353,74 @@ msgstr "내가 팔로우하는 사람의 기본 피드만 추가하기" msgid "Add the following DNS record to your domain:" msgstr "도메인에 다음 DNS 레코드를 추가하세요:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "이 피드를 내 피드에 추가하기" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "리스트에 추가" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" msgstr "내 피드에 추가" -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "리스트에 추가됨" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" msgstr "내 피드에 추가됨" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "답글이 피드에 표시되기 위해 필요한 좋아요 수를 조정합니다." #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "성인 콘텐츠" +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "성인 콘텐츠는 <0>bsky.app에서 웹을 통해서만 활성화할 수 있습니다." + #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." msgstr "성인 콘텐츠가 비활성화되어 있습니다." -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "고급" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "알고리즘 훈련 완료!" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "모든 계정을 팔로우했습니다" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." msgstr "저장한 모든 피드를 한 곳에서 확인하세요." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "다이렉트 메시지 접근 허용" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "새 메시지를 허용할 대상" + #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "이미 코드가 있나요?" @@ -309,17 +430,17 @@ msgstr "이미 @{0}(으)로 로그인했습니다" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" msgstr "대체 텍스트" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" msgstr "대체 텍스트" @@ -336,113 +457,153 @@ msgstr "{0}(으)로 이메일을 보냈습니다. 이 이메일에는 아래에 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "이전 주소인 {0}(으)로 이메일을 보냈습니다. 이 이메일에는 아래에 입력하는 인증 코드가 포함되어 있습니다." -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" msgstr "오류 발생" -#: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." -msgstr "메시지를 삭제하는 동안 오류가 발생했습니다. 다시 시도해 주세요." +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" +msgstr "스타터 팩을 만드는 동안 오류가 발생했습니다. 다시 시도하시겠습니까?" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "QR 코드를 저장하는 동안 오류가 발생했습니다" + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "모두 팔로우하려고 하는 동안 오류가 발생했습니다" + +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "어떤 옵션에도 포함되지 않는 문제" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "문제가 발생했습니다. 다시 시도해 주세요." -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" msgstr "알 수 없는 오류가 발생했습니다" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "및" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "동물" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" msgstr "움직이는 GIF" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "반사회적 행위" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "앱 언어" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "앱 비밀번호 삭제됨" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "앱 비밀번호 이름에는 문자, 숫자, 공백, 대시, 밑줄만 사용할 수 있습니다." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "앱 비밀번호 이름은 4자 이상이어야 합니다." -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "앱 비밀번호 설정" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "앱 비밀번호" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "이의신청" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "\"{0}\" 라벨 이의신청" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "이의신청 제출함" -#: src/view/screens/Settings/index.tsx:430 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "이 결정에 이의신청" + +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "모양" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" msgstr "기본 추천 피드 적용하기" -#: src/view/screens/AppPasswords.tsx:265 +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +#~ msgid "Are you sure you want delete this starter pack?" +#~ msgstr "이 스타터 팩을 삭제하시겠습니까?" + +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "앱 비밀번호 \"{name}\"을(를) 삭제하시겠습니까?" -#: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." msgstr "정말 이 메시지를 삭제하시겠습니까? 나에게 보이는 메시지는 삭제되지만 상대방에게는 삭제되지 않습니다." -#: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." -msgstr "정말 이 대화를 종료하시겠습니까? 나에게 보이는 메시지는 삭제되지만 상대방에게는 삭제되지 않습니다." +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" +msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." +msgstr "정말 이 대화에서 나가시겠습니까? 나에게 보이는 메시지는 삭제되지만 상대방에게는 삭제되지 않습니다." + +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "피드에서 {0}을(를) 제거하시겠습니까?" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "내 피드에서 이 피드를 삭제하시겠습니까?" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "이 초안을 삭제하시겠습니까?" @@ -454,7 +615,8 @@ msgstr "정말인가요?" msgid "Are you writing in <0>{0}?" msgstr "{0}(으)로 쓰고 있나요?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "예술" @@ -462,32 +624,31 @@ msgstr "예술" msgid "Artistic or non-erotic nudity." msgstr "선정적이지 않거나 예술적인 노출." -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "3자 이상" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "뒤로" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "{interestsText}에 대한 관심사 기반" - -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "기본" @@ -495,56 +656,56 @@ msgstr "기본" msgid "Birthday" msgstr "생년월일" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "생년월일:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "차단" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" msgstr "계정 차단" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "계정 차단" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "계정을 차단하시겠습니까?" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "계정 차단" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "리스트 차단" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "이 계정들을 차단하시겠습니까?" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "차단됨" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "차단한 계정" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "차단한 계정" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "차단한 계정은 내 스레드에 답글을 달거나 나를 멘션하거나 기타 다른 방식으로 나와 상호작용할 수 없습니다." @@ -552,19 +713,19 @@ msgstr "차단한 계정은 내 스레드에 답글을 달거나 나를 멘션 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "차단한 계정은 내 스레드에 답글을 달거나 나를 멘션하거나 기타 다른 방식으로 나와 상호작용할 수 없습니다. 차단한 계정의 콘텐츠를 볼 수 없으며 해당 계정도 내 콘텐츠를 볼 수 없게 됩니다." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "차단된 게시물." -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "차단하더라도 이 라벨러가 내 계정에 라벨을 붙이는 것을 막지는 못합니다." -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "차단 목록은 공개됩니다. 차단한 계정은 내 스레드에 답글을 달거나 나를 멘션하거나 기타 다른 방식으로 나와 상호작용할 수 없습니다." -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." msgstr "차단하더라도 내 계정에 라벨이 붙는 것은 막지 못하지만, 이 계정이 내 스레드에 답글을 달거나 나와 상호작용하는 것은 중지됩니다." @@ -581,7 +742,15 @@ msgstr "Bluesky" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "Bluesky는 호스팅 제공자를 선택할 수 있는 개방형 네트워크입니다. 개발자를 위한 사용자 지정 호스팅이 베타 버전으로 제공됩니다." -#: src/screens/Moderation/index.tsx:533 +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "Bluesky는 친구와 함께하면 더 좋답니다!" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "Bluesky가 네트워크에 있는 사람들 중에서 임의로 추천 계정 세트를 선택합니다." + +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "로그아웃한 사용자에게 내 프로필과 게시물을 표시하지 않습니다. 다른 앱에서는 이 설정을 따르지 않을 수 있습니다. 내 계정을 비공개로 전환하지는 않습니다." @@ -593,12 +762,31 @@ msgstr "이미지 흐리게" msgid "Blur images and filter from feeds" msgstr "이미지 흐리게 및 피드에서 필터링" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "책" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" +msgstr "탐색 페이지에서 더 많은 계정 찾아보기" + +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "탐색 페이지에서 더 많은 피드 찾아보기" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "더 많은 추천 찾아보기" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "탐색 페이지에서 더 많은 추천 찾아보기" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 msgid "Browse other feeds" msgstr "다른 피드 탐색하기" @@ -606,7 +794,7 @@ msgstr "다른 피드 탐색하기" msgid "Business" msgstr "비즈니스" -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "— 님이 만듦" @@ -614,11 +802,7 @@ msgstr "— 님이 만듦" msgid "By {0}" msgstr "{0} 님이 만듦" -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "@{0} 님이 만듦" - -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "<0/> 님이 만듦" @@ -626,7 +810,7 @@ msgstr "<0/> 님이 만듦" msgid "By creating an account you agree to the {els}." msgstr "계정을 만들면 {els}에 동의하는 것입니다." -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "내가 만듦" @@ -634,7 +818,7 @@ msgstr "내가 만듦" msgid "Camera" msgstr "카메라" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "글자, 숫자, 공백, 대시, 밑줄만 포함할 수 있습니다. 길이는 4자 이상이어야 하고 32자를 넘지 않아야 합니다." @@ -642,14 +826,15 @@ msgstr "글자, 숫자, 공백, 대시, 밑줄만 포함할 수 있습니다. #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -657,23 +842,23 @@ msgstr "글자, 숫자, 공백, 대시, 밑줄만 포함할 수 있습니다. #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "취소" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "취소" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "계정 삭제 취소" @@ -689,12 +874,16 @@ msgstr "이미지 자르기 취소" msgid "Cancel profile editing" msgstr "프로필 편집 취소" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "게시물 인용 취소" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "재활성화 취소 및 로그아웃" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "검색 취소" @@ -706,17 +895,17 @@ msgstr "연결된 웹사이트를 여는 것을 취소합니다" msgid "Change" msgstr "변경" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "변경" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "핸들 변경" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "핸들 변경" @@ -724,12 +913,12 @@ msgstr "핸들 변경" msgid "Change my email" msgstr "내 이메일 변경하기" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "비밀번호 변경" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "비밀번호 변경" @@ -741,45 +930,71 @@ msgstr "게시물 언어를 {0}(으)로 변경" msgid "Change Your Email" msgstr "이메일 변경" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" msgstr "대화" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" msgstr "대화 뮤트됨" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" msgstr "대화 설정" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "대화 설정" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" msgstr "대화 언뮤트됨" -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "내 상태 확인" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." msgstr "이메일에서 로그인 코드를 확인한 후 여기에 입력하세요." -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" -msgstr "받은 편지함에서 아래에 입력하는 인증 코드가 포함된 이메일이 있는지 확인하세요:" +msgstr "받은 편지함에서 아래에 입력할 인증 코드가 포함된 이메일이 있는지 확인하세요." -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "\"모두\" 또는 \"없음\"을 선택하세요." +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "3개 이상 선택하세요." + +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "최소 {0}개 이상 선택하세요" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "피드 선택" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "임의로 선택하기" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "사람들 선택" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "서비스 선택" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." msgstr "맞춤 피드를 구동할 알고리즘을 선택하세요." @@ -787,40 +1002,41 @@ msgstr "맞춤 피드를 구동할 알고리즘을 선택하세요." msgid "Choose this color as your avatar" msgstr "이 색상을 아바타로 선택" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "기본 피드 선택" +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" +msgstr "답글을 달 수 있는 사람 선택하기" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "비밀번호를 입력하세요" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "모든 레거시 스토리지 데이터 지우기" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "모든 레거시 스토리지 데이터 지우기 (이후 다시 시작)" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "모든 스토리지 데이터 지우기" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "모든 스토리지 데이터 지우기 (이후 다시 시작)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "검색어 지우기" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "모든 레거시 스토리지 데이터를 지웁니다" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "모든 스토리지 데이터를 지웁니다" @@ -828,27 +1044,45 @@ msgstr "모든 스토리지 데이터를 지웁니다" msgid "click here" msgstr "이곳을 클릭" -#: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." -msgstr "이곳을 클릭해 하나 추가하세요." +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" +msgstr "계정 비활성화에 대한 자세한 내용을 보려면 이곳을 클릭하세요" + +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "자세한 내용을 보려면 이곳을 클릭하세요." #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "이곳을 클릭하여 {tag}의 태그 메뉴 열기" -#: src/screens/Onboarding/index.tsx:47 +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "클릭하여 메시지를 다시 보내기" + +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "기후" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "다그닥 🐴 다그닥 🐴" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "닫기" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "열려 있는 대화 상자 닫기" @@ -860,11 +1094,12 @@ msgstr "알림 닫기" msgid "Close bottom drawer" msgstr "하단 서랍 닫기" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" msgstr "대화 상자 닫기" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" msgstr "GIF 대화 상자 닫기" @@ -876,6 +1111,10 @@ msgstr "이미지 닫기" msgid "Close image viewer" msgstr "이미지 뷰어 닫기" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "대화 상자 닫기" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "탐색 푸터 닫기" @@ -893,7 +1132,7 @@ msgstr "하단 탐색 막대를 닫습니다" msgid "Closes password update alert" msgstr "비밀번호 변경 알림을 닫습니다" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "게시물 작성 상자를 닫고 게시물 초안을 삭제합니다" @@ -901,43 +1140,45 @@ msgstr "게시물 작성 상자를 닫고 게시물 초안을 삭제합니다" msgid "Closes viewer for header image" msgstr "헤더 이미지 뷰어를 닫습니다" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "사용자 목록 접기" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "이 알림에 대한 사용자 목록을 축소합니다" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "코미디" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "만화" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "커뮤니티 가이드라인" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "온보딩 완료 후 계정 사용 시작" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "챌린지 완료하기" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "최대 {MAX_GRAPHEME_LENGTH}자 길이까지 글을 작성할 수 있습니다" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "답글 작성하기" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "{0} 카테고리에 대한 콘텐츠 필터링 설정을 구성합니다." - #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" msgstr "{name} 카테고리에 대한 콘텐츠 필터링 설정을 구성합니다." @@ -946,13 +1187,11 @@ msgstr "{name} 카테고리에 대한 콘텐츠 필터링 설정을 구성합니 msgid "Configured in <0>moderation settings." msgstr "<0>검토 설정에서 설정합니다." -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -967,33 +1206,33 @@ msgstr "변경 확인" msgid "Confirm content language settings" msgstr "콘텐츠 언어 설정 확인" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "계정 삭제 확인" -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "나이를 확인하세요:" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "생년월일 확인" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "인증 코드" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "연결 중…" -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "지원에 연락하기" @@ -1001,28 +1240,28 @@ msgstr "지원에 연락하기" msgid "Content Blocked" msgstr "콘텐츠 차단됨" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "콘텐츠 필터" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "콘텐츠 언어" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "콘텐츠를 사용할 수 없음" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "콘텐츠 경고" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "콘텐츠 경고" @@ -1030,12 +1269,8 @@ msgstr "콘텐츠 경고" msgid "Context menu backdrop, click to close the menu." msgstr "컨텍스트 메뉴 배경을 클릭하여 메뉴를 닫습니다." -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "계속" @@ -1043,41 +1278,39 @@ msgstr "계속" msgid "Continue as {0} (currently signed in)" msgstr "{0}(으)로 계속하기 (현재 로그인)" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "스레드 더 보기..." + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "다음 단계로 계속하기" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "다음 단계로 계속하기" +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" +msgstr "대화 삭제됨" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" -msgstr "계정을 팔로우하지 않고 다음 단계로 계속하기" - -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "요리" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "복사됨" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "빌드 버전 클립보드에 복사됨" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "클립보드에 복사됨" @@ -1085,11 +1318,12 @@ msgstr "클립보드에 복사됨" msgid "Copied!" msgstr "복사했습니다!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "앱 비밀번호를 복사합니다" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "복사" @@ -1102,64 +1336,90 @@ msgstr "{0} 복사" msgid "Copy code" msgstr "코드 복사" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "링크 복사" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "링크 복사" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "리스트 링크 복사" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "게시물 링크 복사" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" msgstr "메시지 텍스트 복사" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "게시물 텍스트 복사" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "QR 코드 복사" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "저작권 정책" -#: src/components/dms/ConvoMenu.tsx:80 -msgid "Could not leave chat" -msgstr "대화를 종료할 수 없습니다" +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" +msgstr "" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/components/dms/LeaveConvoPrompt.tsx:39 +msgid "Could not leave chat" +msgstr "대화에서 나갈 수 없습니다" + +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" msgstr "피드를 불러올 수 없습니다" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "리스트를 불러올 수 없습니다" -#: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "프로필을 불러올 수 없습니다. 나중에 다시 시도하세요." - -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" msgstr "대화를 뮤트할 수 없습니다" -#: src/components/dms/ConvoMenu.tsx:75 -#~ msgid "Could not unmute chat" -#~ msgstr "대화를 언뮤트할 수 없습니다" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "만들기" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "새 계정 만들기" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "새 Bluesky 계정을 만듭니다" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "스타터 팩 QR 코드 만들기" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "스타터 팩 만들기" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "나를 위한 스타터 팩 만들기" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "계정 만들기" @@ -1168,11 +1428,15 @@ msgstr "계정 만들기" msgid "Create an account" msgstr "계정 만들기" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" msgstr "대신 아바타 만들기" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" +msgstr "다른 스타터 팩 만들기" + +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "앱 비밀번호 만들기" @@ -1181,15 +1445,16 @@ msgstr "앱 비밀번호 만들기" msgid "Create new account" msgstr "새 계정 만들기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "{0}에 대한 신고 작성하기" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0}에 생성됨" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "문화" @@ -1202,8 +1467,8 @@ msgstr "사용자 지정" msgid "Custom domain" msgstr "사용자 지정 도메인" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "커뮤니티에서 구축한 맞춤 피드는 새로운 경험을 제공하고 좋아하는 콘텐츠를 찾을 수 있도록 도와줍니다." @@ -1211,8 +1476,8 @@ msgstr "커뮤니티에서 구축한 맞춤 피드는 새로운 경험을 제공 msgid "Customize media from external sites." msgstr "외부 사이트 미디어를 사용자 지정합니다." -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "어두움" @@ -1220,15 +1485,24 @@ msgstr "어두움" msgid "Dark mode" msgstr "어두운 모드" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "어두운 테마" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "생년월일" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "계정 비활성화" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "내 계정 비활성화" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" msgstr "검토 디버그" @@ -1236,76 +1510,97 @@ msgstr "검토 디버그" msgid "Debug panel" msgstr "디버그 패널" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "삭제" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "계정 삭제" -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "<0>\"<1>{0}<2>\" 계정 삭제" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "앱 비밀번호 삭제" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "앱 비밀번호를 삭제하시겠습니까?" -#: src/components/dms/MessageMenu.tsx:101 -msgid "Delete for me" -msgstr "내게서 삭제" +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "대화 신고 기록 삭제" -#: src/view/screens/ProfileList.tsx:466 +#: src/components/dms/MessageMenu.tsx:124 +msgid "Delete for me" +msgstr "나에게서 삭제" + +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "리스트 삭제" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" msgstr "메시지 삭제" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" msgstr "내게 보이는 메시지 삭제" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "내 계정 삭제" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "내 계정 삭제…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "게시물 삭제" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "스타터 팩 삭제" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "스타터 팩 삭제" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "이 리스트를 삭제하시겠습니까?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "이 게시물을 삭제하시겠습니까?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "삭제됨" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." msgstr "삭제된 게시물." -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "대화 신고 기록을 삭제합니다" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1315,15 +1610,19 @@ msgstr "설명" msgid "Descriptive alt text" msgstr "설명이 포함된 대체 텍스트" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" -msgstr "하고 싶은 말이 있나요?" +msgstr "하고 싶은 말이 없나요?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "어둑함" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "다이렉트 메시지가 생겼습니다!" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" msgstr "GIF 자동 재생 끄기" @@ -1331,39 +1630,57 @@ msgstr "GIF 자동 재생 끄기" msgid "Disable Email 2FA" msgstr "이메일 2단계 인증 끄기" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" msgstr "햅틱 피드백 끄기" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" -msgstr "비활성화됨" +msgstr "사용 안 함" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "삭제" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "초안 삭제" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "앱이 로그아웃한 사용자에게 내 계정을 표시하지 않도록 설정하기" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "Discover 피드는 탐색하며 내가 어떤 게시물을 좋아하는지 학습합니다." + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" msgstr "새로운 맞춤 피드 찾아보기" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "새 피드 발견하기" + +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "새 피드 발견하기" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "시작하기 가이드 닫기" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "더 큰 대체 텍스트 배지 표시" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "표시 이름" @@ -1380,7 +1697,7 @@ msgstr "DNS 패널" msgid "Does not include nudity." msgstr "노출을 포함하지 않습니다." -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "하이픈으로 시작하거나 끝나지 않음" @@ -1394,30 +1711,27 @@ msgstr "도메인을 확인했습니다." #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "완료" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "완료" @@ -1426,19 +1740,19 @@ msgstr "완료" msgid "Done{extraText}" msgstr "완료{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "Bluesky 다운로드" + +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "CAR 파일 다운로드" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "드롭하여 이미지 추가" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "Apple 정책으로 인해 성인 콘텐츠는 가입을 완료한 후에 웹에서만 사용 설정할 수 있습니다." - #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "예: alice" @@ -1459,19 +1773,19 @@ msgstr "예: 예술가, 개 애호가, 독서광." msgid "E.g. artistic nudes." msgstr "예: 예술적인 노출." -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "예: 멋진 포스터" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "예: 스팸 계정" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "예: 놓칠 수 없는 포스터들." -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "예: 반복적으로 광고 답글을 다는 계정." @@ -1479,58 +1793,78 @@ msgstr "예: 반복적으로 광고 답글을 다는 계정." msgid "Each code works once. You'll receive more invite codes periodically." msgstr "각 코드는 한 번만 사용할 수 있습니다. 주기적으로 더 많은 초대 코드를 받게 됩니다." +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "편집" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "편집" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "아바타 편집" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "피드 편집하기" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" -msgstr "이미지 편집" +msgstr "이미지 편집하기" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "리스트 세부 정보 편집" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "검토 리스트 편집" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" msgstr "내 피드 편집" #: src/view/com/modals/EditProfile.tsx:153 msgid "Edit my profile" -msgstr "내 프로필 편집" +msgstr "내 프로필 편집하기" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "사람들 편집하기" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "프로필 편집" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "프로필 편집" -#: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "저장한 피드 편집" +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "스타터 팩 편집" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "사용자 리스트 편집" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "답글을 달 수 있는 사람 편집" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "내 표시 이름 편집" @@ -1539,11 +1873,20 @@ msgstr "내 표시 이름 편집" msgid "Edit your profile description" msgstr "내 프로필 설명 편집" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "스타터 팩 편집" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "교육" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "\"모두\" 또는 \"없음\"을 선택합니다." + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "이메일" @@ -1569,7 +1912,7 @@ msgstr "이메일 변경됨" msgid "Email verified" msgstr "이메일 확인됨" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "이메일:" @@ -1578,8 +1921,8 @@ msgid "Embed HTML code" msgstr "임베드 HTML 코드" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" msgstr "게시물 임베드" @@ -1591,29 +1934,25 @@ msgstr "웹사이트에 이 게시물을 임베드하세요. 다음 코드를 msgid "Enable {0} only" msgstr "{0}에서만 사용" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "성인 콘텐츠 활성화" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "성인 콘텐츠 활성화" - -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "피드에서 성인 콘텐츠 사용" - #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 msgid "Enable external media" msgstr "외부 미디어 사용" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "미디어 플레이어를 사용할 외부 사이트" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "내가 팔로우하는 사람들 간의 답글만 표시합니다." @@ -1621,15 +1960,21 @@ msgstr "내가 팔로우하는 사람들 간의 답글만 표시합니다." msgid "Enable this source only" msgstr "이 소스에서만 사용" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" -msgstr "활성화됨" +msgstr "사용" #: src/screens/Profile/Sections/Feed.tsx:104 msgid "End of feed" msgstr "피드 끝" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "온보딩 투어 창이 종료됐습니다. 앞으로 이동하지 마세요. 대신 뒤로 이동하여 더 많은 옵션을 보거나 건너뛰려면 누르세요." + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "이 앱 비밀번호의 이름 입력" @@ -1646,7 +1991,7 @@ msgstr "단어 또는 태그 입력" msgid "Enter Confirmation Code" msgstr "인증 코드 입력" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "비밀번호를 변경하려면 받은 코드를 입력하세요." @@ -1663,7 +2008,7 @@ msgid "Enter your birth date" msgstr "생년월일을 입력하세요" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "이메일 주소를 입력하세요" @@ -1679,32 +2024,45 @@ msgstr "아래에 새 이메일 주소를 입력하세요." msgid "Enter your username and password" msgstr "사용자 이름 및 비밀번호 입력" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" msgstr "파일을 저장하는 동안 오류가 발생했습니다" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "캡차 응답을 수신하는 동안 오류가 발생했습니다." -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "오류:" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "모두" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "누구나 답글을 달 수 있음" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "모두" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "과도한 멘션 또는 답글" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" msgstr "과도하거나 원치 않는 메시지" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "계정 삭제 프로세스를 종료합니다" @@ -1720,8 +2078,8 @@ msgstr "이미지 자르기 프로세스를 종료합니다" msgid "Exits image view" msgstr "이미지 보기를 종료합니다" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "검색어 입력을 종료합니다" @@ -1729,11 +2087,19 @@ msgstr "검색어 입력을 종료합니다" msgid "Expand alt text" msgstr "대체 텍스트 확장" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "사용자 목록 펼치기" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "답글을 달고 있는 전체 게시물을 펼치거나 접습니다" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "노골적이거나 불쾌감을 줄 수 있는 미디어." @@ -1742,12 +2108,12 @@ msgstr "노골적이거나 불쾌감을 줄 수 있는 미디어." msgid "Explicit sexual images." msgstr "노골적인 성적 이미지." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "내 데이터 내보내기" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "내 데이터 내보내기" @@ -1757,94 +2123,142 @@ msgid "External Media" msgstr "외부 미디어" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "외부 미디어는 웹사이트가 나와 내 기기에 대한 정보를 수집하도록 할 수 있습니다. \"재생\" 버튼을 누르기 전까지는 어떠한 정보도 전송되거나 요청되지 않습니다." -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "외부 미디어 설정" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "외부 미디어 설정" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "앱 비밀번호를 만들지 못했습니다." -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "스타터 팩을 만들지 못했습니다" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "리스트를 만들지 못했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" msgstr "메시지를 삭제하지 못했습니다" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "게시물을 삭제하지 못했습니다. 다시 시도해 주세요" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "스타터 팩을 삭제하지 못했습니다" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "피드 환경설정을 불러오지 못했습니다" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" -msgstr "GIF 불러오기 실패" +msgstr "GIF를 불러오지 못했습니다" -#: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." -msgstr "지난 메시지를 불러오지 못했습니다." +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" +msgstr "지난 메시지를 불러오지 못했습니다" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "추천 피드를 불러오지 못했습니다" + +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "추천 팔로우를 불러오지 못했습니다" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "이미지를 저장하지 못함: {0}" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." -msgstr "메시지를 보내지 못했습니다." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" +msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "전송 실패" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "이의신청을 제출하지 못했습니다. 다시 시도해 주세요." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "스레드 뮤트를 전환하지 못했습니다. 다시 시도해 주세요" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "피드를 업데이트하지 못했습니다" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "설정을 업데이트하지 못했습니다" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "피드" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "{0} 님의 피드" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "피드 오프라인" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "피드 켜거나 끄기" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "피드백" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" msgstr "피드" -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "피드는 사용자가 약간의 코딩 전문 지식만으로 구축할 수 있는 맞춤 알고리즘입니다. <0/>에서 자세한 내용을 확인하세요." -#: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" -msgstr "주제 기반 피드도 있습니다!" +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" +msgstr "피드 업데이트됨" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "파일 콘텐츠" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" msgstr "파일을 성공적으로 저장했습니다!" @@ -1852,33 +2266,45 @@ msgstr "파일을 성공적으로 저장했습니다!" msgid "Filter from feeds" msgstr "피드에서 필터링" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "마무리 중" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "팔로우할 계정 찾아보기" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "탐색 페이지에서 팔로우할 피드와 계정을 더 찾아보세요." + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" msgstr "Bluesky에서 게시물 및 사용자 찾기" -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." msgstr "팔로우 중 피드에 표시되는 콘텐츠를 미세 조정합니다." -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "대화 스레드를 미세 조정합니다." -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "완료" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "투어 완료 및 애플리케이션 시작" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "건강" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "유연성" @@ -1891,108 +2317,156 @@ msgstr "가로로 뒤집기" msgid "Flip vertically" msgstr "세로로 뒤집기" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "팔로우" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "팔로우" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "{0} 님을 팔로우" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "{name} 님을 팔로우" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "7개 계정 팔로우하기" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "계정 팔로우" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" msgstr "모두 팔로우" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "맞팔로우" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" -msgstr "선택한 계정을 팔로우하고 다음 단계를 계속 진행합니다" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "더 많은 계정을 팔로우하고 관심 분야를 연결하여 네트워크를 구축하세요." -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" -msgstr "{0} 님이 팔로우함" +#: src/view/com/profile/ProfileCard.tsx:190 +#~ msgid "Followed by {0}" +#~ msgstr "{0} 님이 팔로우함" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" +msgstr "<0>{0} 님이 팔로우함" + +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "<0>{0} 님 외 {1, plural, other {#}}명이 팔로우함" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "<0>{0} 님과 <1>{1} 님이 팔로우함" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "<0>{0} 님, <1>{1} 님 외 {2, plural, other {#}}명이 팔로우함" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "팔로우한 사용자" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "팔로우한 사용자만" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "이(가) 나를 팔로우했습니다" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "이(가) 나를 맞팔로우했습니다" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "팔로워" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "내가 아는 @{0} 님의 팔로워" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "내가 아는 팔로워" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "팔로우 중" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" msgstr "{0} 님을 팔로우했습니다" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "{name} 님을 팔로우했습니다" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" msgstr "팔로우 중 피드 설정" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" msgstr "팔로우 중 피드 설정" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "팔로우 중 피드는 내가 팔로우하는 사람들의 최신 게시물을 표시합니다." + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "나를 팔로우함" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "나를 팔로우함" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "음식" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "보안상의 이유로 이메일 주소로 인증 코드를 보내야 합니다." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "보안상의 이유로 이 비밀번호는 다시 볼 수 없습니다. 이 비밀번호를 분실한 경우 새 비밀번호를 생성해야 합니다." @@ -2001,15 +2475,15 @@ msgstr "보안상의 이유로 이 비밀번호는 다시 볼 수 없습니다. msgid "Forgot Password" msgstr "비밀번호 분실" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "비밀번호를 잊으셨나요?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "분실" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "잦은 원치 않는 콘텐츠 게시" @@ -2017,7 +2491,7 @@ msgstr "잦은 원치 않는 콘텐츠 게시" msgid "From @{sanitizedAuthor}" msgstr "@{sanitizedAuthor} 님의 태그" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "<0/>에서" @@ -2026,48 +2500,77 @@ msgstr "<0/>에서" msgid "Gallery" msgstr "갤러리" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "스타터 팩 만들기" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "시작하기" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "시작하기" -#: src/screens/Onboarding/StepProfile/index.tsx:228 +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" +msgstr "시작하기" + +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "GIF" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 msgid "Give your profile a face" msgstr "프로필에 얼굴 달기" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "명백한 법률 또는 서비스 이용약관 위반 행위" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "뒤로" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "뒤로" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:189 +#~ msgid "Go back to previous screen" +#~ msgstr "이전 화면으로 돌아갑니다" + +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "이전 단계로 돌아가기" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "이전 단계로 돌아갑니다" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "홈으로 이동" @@ -2076,16 +2579,24 @@ msgstr "홈으로 이동" msgid "Go Home" msgstr "홈으로 이동" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "{0} 님과의 대화로 이동합니다" + #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "다음" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" msgstr "프로필로 가기" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" +msgstr "둘러보기 다음 단계로 이동" + +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" msgstr "사용자의 프로필로 가기" @@ -2093,112 +2604,102 @@ msgstr "사용자의 프로필로 가기" msgid "Graphic Media" msgstr "그래픽 미디어" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "절반은 완료!" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "핸들" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" msgstr "햅틱" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "괴롭힘, 분쟁 유발 또는 차별" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "해시태그" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "해시태그: #{tag}" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "문제가 있나요?" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "도움말" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." msgstr "사진을 업로드하거나 아바타를 만들어 사람들이 내가 봇이 아니라는 사실을 알 수 있도록 하세요." -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "팔로우할 만한 계정" - -#: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "다음은 인기 있는 화제 피드입니다. 원하는 만큼 피드를 팔로우할 수 있습니다." - -#: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "다음은 사용자의 관심사를 기반으로 한 몇 가지 주제별 피드입니다: {interestsText}. 원하는 만큼 많은 피드를 팔로우할 수 있습니다." - -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "앱 비밀번호입니다." -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "숨기기" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "숨기기" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "게시물 숨기기" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "콘텐츠 숨기기" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "이 게시물을 숨기시겠습니까?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "사용자 리스트 숨기기" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "피드 서버에 연결하는 중 어떤 문제가 발생했습니다. 피드 소유자에게 이 문제에 대해 알려주세요." -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "피드 서버가 잘못 구성된 것 같습니다. 피드 소유자에게 이 문제에 대해 알려주세요." -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "피드 서버가 오프라인 상태인 것 같습니다. 피드 소유자에게 이 문제에 대해 알려주세요." -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "피드 서버에서 잘못된 응답을 보냈습니다. 피드 소유자에게 이 문제에 대해 알려주세요." -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "이 피드를 찾는 데 문제가 있습니다. 피드가 삭제되었을 수 있습니다." -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." msgstr "이 데이터를 불러오는 데 문제가 있는 것 같습니다. 자세한 내용은 아래를 참조하세요. 이 문제가 지속되면 문의해 주세요." @@ -2206,11 +2707,12 @@ msgstr "이 데이터를 불러오는 데 문제가 있는 것 같습니다. 자 msgid "Hmmmm, we couldn't load that moderation service." msgstr "검토 서비스를 불러올 수 없습니다." -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "홈" @@ -2219,8 +2721,8 @@ msgid "Host:" msgstr "호스트:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "호스팅 제공자" @@ -2243,7 +2745,8 @@ msgstr "인증 코드가 있습니다" msgid "I have my own domain" msgstr "내 도메인을 가지고 있습니다" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" msgstr "확인" @@ -2259,43 +2762,55 @@ msgstr "아무것도 선택하지 않으면 모든 연령대에 적합하다는 msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "해당 국가의 법률에 따라 아직 성인이 아닌 경우, 부모 또는 법적 보호자가 대신 이 약관을 읽어야 합니다." -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "이 리스트를 삭제하면 다시 복구할 수 없습니다." -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "이 게시물을 삭제하면 다시 복구할 수 없습니다." -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." -msgstr "비밀번호를 변경하고 싶다면 본인 계정임을 확인할 수 있는 코드를 보내드리겠습니다." +msgstr "비밀번호를 변경하고 싶다면 본인 계정임을 확인할 수 있는 코드를 보내드립니다." -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "핸들이나 이메일을 변경하려는 경우 비활성화하기 전에 변경하세요." + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "불법 및 긴급 사항" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "이미지" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "이미지 대체 텍스트" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "이미지를 사진 보관함에 저장했습니다" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "신원 또는 소속에 대한 사칭 또는 허위 주장" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "부적절한 메시지 또는 노골적인 링크" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "비밀번호 재설정을 위해 이메일로 전송된 코드를 입력합니다" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "계정 삭제를 위한 인증 코드를 입력합니다" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "앱 비밀번호의 이름을 입력합니다" @@ -2303,23 +2818,19 @@ msgstr "앱 비밀번호의 이름을 입력합니다" msgid "Input new password" msgstr "새 비밀번호를 입력합니다" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "계정을 삭제하기 위해 비밀번호를 입력합니다" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "이메일로 전송된 코드를 입력합니다" #: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "{identifier}에 연결된 비밀번호를 입력합니다" - -#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "가입 시 사용한 사용자 이름 또는 이메일 주소를 입력합니다" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "비밀번호를 입력합니다" @@ -2327,20 +2838,24 @@ msgstr "비밀번호를 입력합니다" msgid "Input your preferred hosting provider" msgstr "선호하는 호스팅 제공자를 입력합니다" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "사용자 핸들을 입력합니다" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "다이렉트 메시지 소개" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "잘못된 2단계 인증 코드입니다." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "유효하지 않거나 지원되지 않는 게시물 기록" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "잘못된 사용자 이름 또는 비밀번호" @@ -2348,11 +2863,11 @@ msgstr "잘못된 사용자 이름 또는 비밀번호" msgid "Invite a Friend" msgstr "친구 초대하기" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "초대 코드" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "초대 코드가 올바르지 않습니다. 코드를 올바르게 입력했는지 확인한 후 다시 시도하세요." @@ -2364,61 +2879,85 @@ msgstr "초대 코드: {0}개 사용 가능" msgid "Invite codes: 1 available" msgstr "초대 코드: 1개 사용 가능" -#: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." -msgstr "내가 팔로우하는 사람들의 게시물이 올라오는 대로 표시됩니다." +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "이 스타터 팩을 사용할 사람들을 초대하세요!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "친구를 초대하여 좋아하는 피드와 사람들을 팔로우할 수 있게 합니다." + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "개인적인 초대" + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." +msgstr "아직은 나밖에 없습니다. 위에서 검색하여 스타터 팩에 더 많은 사람을 추가하세요." #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "채용" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "Bluesky 가입하기" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "대화에 참여하기" + +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "저널리즘" -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "{0}이(가) 라벨 지정함." -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "작성자가 라벨 지정함." -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "라벨" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "라벨은 사용자 및 콘텐츠에 대한 주석입니다. 네트워크를 숨기고, 경고하고, 분류하는 데 사용할 수 있습니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "내 계정의 라벨" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "내 콘텐츠의 라벨" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "언어 선택" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "언어 설정" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "언어 설정" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "언어" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "최신" @@ -2426,33 +2965,40 @@ msgstr "최신" msgid "Learn More" msgstr "더 알아보기" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "이 콘텐츠에 적용된 검토 설정에 대해 자세히 알아보세요." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "이 경고에 대해 더 알아보기" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "Bluesky에서 공개되는 항목에 대해 자세히 알아보세요." -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "더 알아보기" -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" -msgstr "종료" +msgstr "나가기" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "대화 떠나기" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" -msgstr "대화 종료" +msgstr "대화 나가기" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." @@ -2462,35 +3008,49 @@ msgstr "모든 언어를 보려면 모두 선택하지 않은 상태로 두세 msgid "Leaving Bluesky" msgstr "Bluesky 떠나기" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "명 남았습니다." -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "레거시 스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "직접 선택하기" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "비밀번호를 재설정해 봅시다!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "출발!" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "밝음" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "10개 게시물에 좋아요 누르기" + +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "10개 게시물에 좋아요를 눌러 Discover 피드를 훈련시키세요" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "이 피드에 좋아요 표시" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "좋아요 표시한 사용자" @@ -2500,75 +3060,92 @@ msgstr "좋아요 표시한 사용자" msgid "Liked By" msgstr "좋아요 표시한 사용자" -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" msgstr "이(가) 내 맞춤 피드를 좋아합니다" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" msgstr "이(가) 내 게시물을 좋아합니다" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "좋아요" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "이 게시물을 좋아요 표시합니다" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "리스트" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "리스트 아바타" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "리스트 차단됨" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "{0} 님의 리스트" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "리스트 삭제됨" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "리스트 뮤트됨" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "리스트 이름" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "리스트 차단 해제됨" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "리스트 언뮤트됨" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "리스트" -#: src/view/screens/Notifications.tsx:159 +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "이 사용자를 차단한 리스트:" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "더 불러오기" + +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "추천 피드 더 불러오기" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "추천 팔로우 더 불러오기" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "새 알림 불러오기" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "새 게시물 불러오기" @@ -2576,18 +3153,23 @@ msgstr "새 게시물 불러오기" msgid "Loading..." msgstr "불러오는 중…" -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "로그" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "로그인 또는 가입" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "로그아웃" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "로그아웃 표시" @@ -2595,7 +3177,7 @@ msgstr "로그아웃 표시" msgid "Login to account that is not listed" msgstr "목록에 없는 계정으로 로그인" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" msgstr "길게 눌러 #{tag}에 대한 태그 메뉴를 엽니다" @@ -2607,13 +3189,17 @@ msgstr "XXXXX-XXXXX 형식" msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." msgstr "저장한 피드가 없는 것 같습니다! 권장 사항을 사용하거나 아래에서 더 많은 피드를 찾아보세요." -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" msgstr "모든 피드를 고정 해제했군요. 하지만 걱정하지 마세요. 아래에서 추가할 수 있습니다 😄" -#: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." -msgstr "팔로우 중 피드가 누락된 것 같습니다." +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "팔로우 중 피드가 누락된 것 같습니다. <0>이곳을 클릭해 하나 추가하세요." + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" +msgstr "나를 위해 만들기" #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" @@ -2623,31 +3209,35 @@ msgstr "이곳이 당신이 가고자 하는 곳인지 확인하세요!" msgid "Manage your muted words and tags" msgstr "뮤트한 단어 및 태그 관리" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" msgstr "읽음으로 표시" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "미디어" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "멘션한 사용자" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "멘션한 사용자" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "메뉴" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "{0} 님에게 메시지 보내기" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" msgstr "메시지 삭제됨" @@ -2655,40 +3245,33 @@ msgstr "메시지 삭제됨" msgid "Message from server: {0}" msgstr "서버에서 보낸 메시지: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" msgstr "메시지 입력 필드" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" -msgstr "" +msgstr "메시지가 너무 깁니다" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "메시지 설정" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "메시지" -#: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "메시지 설정" - -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "오해의 소지가 있는 계정" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "검토" @@ -2696,56 +3279,57 @@ msgstr "검토" msgid "Moderation details" msgstr "검토 세부 정보" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" msgstr "{0} 님의 검토 리스트" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "<0/> 님의 검토 리스트" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "내 검토 리스트" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "검토 리스트 생성됨" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "검토 리스트 업데이트됨" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "검토 리스트" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "검토 리스트" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "검토 설정" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "검토 상태" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "검토 도구" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "검토자가 콘텐츠에 일반 경고를 설정했습니다." -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "더 보기" @@ -2753,14 +3337,22 @@ msgstr "더 보기" msgid "More feeds" msgstr "피드 더 보기" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "옵션 더 보기" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "좋아요 많은 순" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "영화" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "음악" + #: src/components/TagMenu/index.tsx:249 msgid "Mute" msgstr "뮤트" @@ -2769,12 +3361,12 @@ msgstr "뮤트" msgid "Mute {truncatedTag}" msgstr "{truncatedTag} 뮤트" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "계정 뮤트" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "계정 뮤트" @@ -2782,6 +3374,11 @@ msgstr "계정 뮤트" msgid "Mute all {displayTag} posts" msgstr "모든 {displayTag} 게시물 뮤트" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "대화 뮤트" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" msgstr "태그에서만 뮤트" @@ -2790,16 +3387,11 @@ msgstr "태그에서만 뮤트" msgid "Mute in text & tags" msgstr "글 및 태그에서 뮤트" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "리스트 뮤트" -#: src/components/dms/ConvoMenu.tsx:136 -#: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "알림 뮤트" - -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "이 계정들을 뮤트하시겠습니까?" @@ -2811,25 +3403,25 @@ msgstr "게시물 글 및 태그에서 이 단어 뮤트하기" msgid "Mute this word in tags only" msgstr "태그에서만 이 단어 뮤트하기" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" msgstr "스레드 뮤트" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "단어 및 태그 뮤트" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "뮤트됨" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "뮤트한 계정" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "뮤트한 계정" @@ -2838,15 +3430,15 @@ msgstr "뮤트한 계정" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "계정을 뮤트하면 피드와 알림에서 해당 계정의 게시물이 사라집니다. 뮤트 목록은 완전히 비공개로 유지됩니다." -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "\"{0}\" 님이 뮤트함" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "뮤트한 단어 및 태그" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "뮤트 목록은 비공개입니다. 뮤트한 계정은 나와 상호작용할 수 있지만 해당 계정의 게시물을 보거나 해당 계정으로부터 알림을 받을 수 없습니다." @@ -2855,64 +3447,74 @@ msgstr "뮤트 목록은 비공개입니다. 뮤트한 계정은 나와 상호 msgid "My Birthday" msgstr "내 생년월일" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" msgstr "내 피드" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "내 프로필" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" msgstr "내 저장한 피드" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" msgstr "내 저장한 피드" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "이름" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "이름을 입력하세요" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "이름 또는 설명이 커뮤니티 기준을 위반함" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "자연" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "{0}(으)로 이동" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "스타터 팩으로 이동합니다" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "다음 화면으로 이동합니다" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "내 프로필로 이동합니다" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "저작권 위반을 신고해야 하나요?" -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." -msgstr "팔로워 또는 데이터에 대한 접근 권한을 잃지 마세요." +msgstr "팔로워 또는 데이터에 대한 접근 권한을 잃지 않습니다." #: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "취소하고 내 핸들 만들기" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "새로 만들기" @@ -2921,65 +3523,79 @@ msgstr "새로 만들기" msgid "New" msgstr "새로 만들기" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "새 대화" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "새 메시지" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "새 검토 리스트" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "새 비밀번호" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "새 비밀번호" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "새 게시물" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "새 게시물" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "새 게시물" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "새 사용자 정보 대화 상자" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "새 사용자 리스트" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "새로운 순" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "뉴스" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "다음" @@ -2987,17 +3603,17 @@ msgstr "다음" msgid "Next image" msgstr "다음 이미지" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "아니요" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "설명 없음" @@ -3005,74 +3621,104 @@ msgstr "설명 없음" msgid "No DNS Panel" msgstr "DNS 패널 없음" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "인기 GIF를 찾을 수 없습니다. Tenor에 문제가 있을 수 있습니다." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "피드를 찾을 수 없습니다. 다른 피드를 검색해 보세요." + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "더 이상 {0} 님을 팔로우하지 않음" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "253자를 초과하지 않음" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" msgstr "아직 메시지가 없습니다" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "더 이상 표시할 대화가 없습니다" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "아직 알림이 없습니다." +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "없음" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "아직 게시물이 없습니다." + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "결과 없음" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "결과 없음" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "결과를 찾을 수 없음" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "\"{query}\"에 대한 결과를 찾을 수 없습니다" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "{query}에 대한 결과를 찾을 수 없습니다" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." msgstr "\"{search}\"에 대한 검색 결과를 찾을 수 없습니다." -#: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "\"{searchText}\"에 대한 검색 결과를 찾을 수 없습니다." - #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "사용하지 않음" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "없음" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "아무도 답글을 달 수 없음" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "아직 아무도 좋아요를 누르지 않았습니다. 첫 번째가 되어 보세요!" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "아무도 찾을 수 없습니다. 다른 사용자를 검색해 보세요." + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "선정적이지 않은 노출" -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "찾을 수 없음" @@ -3081,27 +3727,57 @@ msgstr "찾을 수 없음" msgid "Not right now" msgstr "나중에 하기" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "공유 관련 참고 사항" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "참고: Bluesky는 개방형 공개 네트워크입니다. 이 설정은 Bluesky 앱과 웹사이트에서만 내 콘텐츠가 표시되는 것을 제한하며, 다른 앱에서는 이 설정을 준수하지 않을 수 있습니다. 다른 앱과 웹사이트에서는 로그아웃한 사용자에게 내 콘텐츠가 계속 표시될 수 있습니다." -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "빈 페이지" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "알림음" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "알림음" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "알림" -#: src/components/dms/MessageItem.tsx:145 +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" +msgstr "지금" + +#: src/components/dms/MessageItem.tsx:169 msgid "Now" msgstr "지금" @@ -3109,7 +3785,7 @@ msgstr "지금" msgid "Nudity" msgstr "노출" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "누드 또는 성인 콘텐츠로 설정되지 않은 콘텐츠" @@ -3117,17 +3793,17 @@ msgstr "누드 또는 성인 콘텐츠로 설정되지 않은 콘텐츠" msgid "Off" msgstr "끄기" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "이런!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "이런! 뭔가 잘못되었습니다." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "확인" @@ -3135,107 +3811,143 @@ msgstr "확인" msgid "Okay" msgstr "확인" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "오래된 순" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "온보딩 재설정" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "온보딩 투어 단계 {0}: {1}" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "하나 이상의 이미지에 대체 텍스트가 누락되었습니다." -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" msgstr ".jpg 및 .png 파일만 지원합니다" -#: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." -msgstr "{0}만 답글을 달 수 있습니다." +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" +msgstr "{0}만 답글을 달 수 있음" -#: src/screens/Signup/StepHandle.tsx:98 +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "문자, 숫자, 하이픈만 포함" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "이런, 뭔가 잘못되었습니다!" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "이런!" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "공개성" -#: src/screens/Onboarding/StepProfile/index.tsx:280 +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "{name} 님의 프로필 단축 메뉴 열기" + +#: src/screens/Onboarding/StepProfile/index.tsx:277 msgid "Open avatar creator" msgstr "아바타 생성기 열기" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "대화 옵션 열기" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "이모티콘 선택기 열기" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "피드 옵션 메뉴 열기" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "링크를 인앱 브라우저로 열기" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "메시지 옵션 열기" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "뮤트한 단어 및 태그 설정 열기" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "내비게이션 열기" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "게시물 옵션 메뉴 열기" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "스타터 팩 메뉴 열기" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "스토리북 페이지 열기" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "시스템 로그 열기" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "{numItems}번째 옵션을 엽니다" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "이 스레드에 답글을 달 수 있는 사람을 선택하는 대화 상자를 엽니다" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "접근성 설정을 엽니다" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "디버그 항목에 대한 추가 세부 정보를 엽니다" -#: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "이 알림에서 확장된 사용자 목록을 엽니다" - #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "기기에서 카메라를 엽니다" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "대화 설정을 엽니다" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "답글 작성 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "구성 가능한 언어 설정을 엽니다" @@ -3243,7 +3955,7 @@ msgstr "구성 가능한 언어 설정을 엽니다" msgid "Opens device photo gallery" msgstr "기기의 사진 갤러리를 엽니다" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "외부 임베드 설정을 엽니다" @@ -3257,7 +3969,7 @@ msgstr "새 Bluesky 계정을 만드는 플로를 엽니다" msgid "Opens flow to sign into your existing Bluesky account" msgstr "존재하는 Bluesky 계정에 로그인하는 플로를 엽니다" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" msgstr "GIF 선택 대화 상자를 엽니다" @@ -3265,23 +3977,27 @@ msgstr "GIF 선택 대화 상자를 엽니다" msgid "Opens list of invite codes" msgstr "초대 코드 목록을 엽니다" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "계정 비활성화 확인을 위한 대화 상자를 엽니다" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "계정 삭제 확인을 위한 대화 상자를 엽니다. 이메일 코드가 필요합니다" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "Bluesky 비밀번호 변경을 위한 대화 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "새로운 Bluesky 핸들을 선택하기 위한 대화 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Bluesky 계정 데이터(저장소)를 다운로드하기 위한 대화 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "이메일 인증을 위한 대화 상자를 엽니다" @@ -3289,28 +4005,23 @@ msgstr "이메일 인증을 위한 대화 상자를 엽니다" msgid "Opens modal for using custom domain" msgstr "사용자 지정 도메인을 사용하기 위한 대화 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" msgstr "검토 설정을 엽니다" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "비밀번호 재설정 양식을 엽니다" -#: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "저장한 피드를 편집할 수 있는 화면을 엽니다" - -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" msgstr "모든 저장한 피드 화면을 엽니다" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "비밀번호 설정을 엽니다" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" msgstr "팔로우 중 피드 설정을 엽니다" @@ -3318,37 +4029,50 @@ msgstr "팔로우 중 피드 설정을 엽니다" msgid "Opens the linked website" msgstr "연결된 웹사이트를 엽니다" -#: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "메시지 설정 페이지를 엽니다" - -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "스토리북 페이지를 엽니다" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "시스템 로그 페이지를 엽니다" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "스레드 설정을 엽니다" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "이 프로필을 엽니다" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "{numItems}개 중 {0}번째 옵션" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" -msgstr "선택 사항으로 아래에 추가 정보를 입력하세요:" +msgstr "선택 사항으로 아래에 추가 정보를 입력하세요." -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" -msgstr "또는 다음 옵션을 결합하세요:" +msgstr "또는 다음 옵션을 결합하세요." -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "또는 다른 계정으로 계속 진행하세요." + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "또는 다른 계정 중 하나로 로그인하세요." + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "기타" @@ -3356,11 +4080,15 @@ msgstr "기타" msgid "Other account" msgstr "다른 계정" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "기타…" -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "Bluesky 운영진이 신고를 검토한 결과, 귀하의 Bluesky 대화 접속을 비활성화하기로 결정했습니다." + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "페이지를 찾을 수 없음" @@ -3369,14 +4097,14 @@ msgstr "페이지를 찾을 수 없음" msgid "Page Not Found" msgstr "페이지를 찾을 수 없음" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "비밀번호" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "비밀번호 변경됨" @@ -3388,52 +4116,66 @@ msgstr "비밀번호 변경됨" msgid "Password updated!" msgstr "비밀번호 변경됨" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "일시 정지" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "사람들" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "@{0} 님이 팔로우한 사람들" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "@{0} 님을 팔로우하는 사람들" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." -msgstr "앨범에 접근할 수 있는 권한이 필요합니다." +msgstr "사진 보관함에 접근할 수 있는 권한이 필요합니다." -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." -msgstr "앨범에 접근할 수 있는 권한이 거부되었습니다. 시스템 설정에서 활성화하세요." +msgstr "사진 보관함에 접근할 수 있는 권한이 거부되었습니다. 시스템 설정에서 활성화하세요." -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "사람 켜거나 끄기" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "반려동물" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "사진" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "성인용 사진." -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "홈에 고정" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "홈에 고정" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "고정한 피드" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "내 피드에 고정됨" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" msgstr "재생" @@ -3441,7 +4183,7 @@ msgstr "재생" msgid "Play {0}" msgstr "{0} 재생" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" msgstr "GIP를 재생하거나 일시 정지합니다" @@ -3454,15 +4196,16 @@ msgstr "동영상 재생" msgid "Plays the GIF" msgstr "GIF를 재생합니다" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "핸들을 입력하세요." -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "비밀번호를 입력하세요." -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "인증 캡차를 완료해 주세요." @@ -3470,11 +4213,11 @@ msgstr "인증 캡차를 완료해 주세요." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "이메일을 변경하기 전에 이메일을 확인해 주세요. 이는 이메일 변경 도구가 추가되는 동안 일시적으로 요구되는 사항이며 곧 제거될 예정입니다." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "앱 비밀번호의 이름을 입력하세요. 모든 공백 문자는 허용되지 않습니다." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "이 앱 비밀번호에 대해 고유한 이름을 입력하거나 무작위로 생성된 이름을 사용합니다." @@ -3482,19 +4225,29 @@ msgstr "이 앱 비밀번호에 대해 고유한 이름을 입력하거나 무 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "뮤트할 단어나 태그 또는 문구를 입력하세요" -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "이메일을 입력하세요." -#: src/view/com/modals/DeleteAccount.tsx:190 -msgid "Please enter your password as well:" -msgstr "비밀번호도 입력해 주세요:" +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "초대 코드를 입력하세요." -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/view/com/modals/DeleteAccount.tsx:253 +msgid "Please enter your password as well:" +msgstr "비밀번호를 입력하세요." + +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "{0} 님이 이 라벨을 잘못 적용했다고 생각하는 이유를 설명해 주세요" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "대화가 잘못 비활성화되었다고 생각하는 이유를 설명해 주세요" + #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" msgstr "@{0}(으)로 로그인하세요" @@ -3502,11 +4255,12 @@ msgstr "@{0}(으)로 로그인하세요" msgid "Please Verify Your Email" msgstr "이메일 인증하기" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "링크 카드를 완전히 불러올 때까지 기다려주세요" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "정치" @@ -3514,46 +4268,46 @@ msgstr "정치" msgid "Porn" msgstr "음란물" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "게시하기" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" msgstr "게시물" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "{0} 님의 게시물" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "@{0} 님의 게시물" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "게시물 삭제됨" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "게시물 숨김" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" msgstr "뮤트한 단어로 숨겨진 게시물" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" msgstr "내가 숨긴 게시물" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "게시물 언어" @@ -3561,8 +4315,8 @@ msgstr "게시물 언어" msgid "Post Languages" msgstr "게시물 언어" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "게시물을 찾을 수 없음" @@ -3570,7 +4324,8 @@ msgstr "게시물을 찾을 수 없음" msgid "posts" msgstr "게시물" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "게시물" @@ -3578,7 +4333,7 @@ msgstr "게시물" msgid "Posts can be muted based on their text, their tags, or both." msgstr "게시물의 글 및 태그에 따라 게시물을 뮤트할 수 있습니다." -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "게시물 숨겨짐" @@ -3586,61 +4341,76 @@ msgstr "게시물 숨겨짐" msgid "Potentially Misleading Link" msgstr "오해의 소지가 있는 링크" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "다시 연결을 시도하려면 누르기" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "호스팅 제공자를 변경하려면 누릅니다" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "다시 시도하려면 누르기" -#: src/screens/Messages/Conversation/MessagesList.tsx:50 -#: src/screens/Messages/Conversation/MessagesList.tsx:56 -#~ msgid "Press to Retry" -#~ msgstr "다시 시도하려면 누르기" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "내가 팔로우하는 이 계정의 팔로워를 보려면 누르세요" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "이전 이미지" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "주 언어" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "내 팔로우 먼저 표시" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "개인정보" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "개인정보 처리방침" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "다른 사용자와 비공개로 대화하세요." + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "처리 중…" -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "프로필" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "프로필" @@ -3648,11 +4418,11 @@ msgstr "프로필" msgid "Profile updated" msgstr "프로필 업데이트됨" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "이메일을 인증하여 계정을 보호하세요." -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "공공성" @@ -3660,33 +4430,42 @@ msgstr "공공성" msgid "Public, shareable lists of users to mute or block in bulk." msgstr "일괄 뮤트하거나 차단할 수 있는 공개적이고 공유 가능한 사용자 목록입니다." -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." msgstr "피드를 탐색할 수 있는 공개적이고 공유 가능한 목록입니다." -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "게시물 게시하기" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "답글 게시하기" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "QR 코드를 클립보드에 복사했습니다." + +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "QR 코드를 다운로드했습니다." + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "QR 코드를 사진 보관함에 저장했습니다." + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "빠른 팁" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "게시물 인용" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 -msgid "Quote post" -msgstr "게시물 인용" - -#: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "게시물 인용" - -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "무작위" @@ -3694,28 +4473,51 @@ msgstr "무작위" msgid "Ratios" msgstr "비율" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" -msgstr "이유: {0}" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" +msgstr "계정 재활성화" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "이유:" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "최근 검색" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "다시 연결" + +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "대화 다시 불러오기" + #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "제거" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "스타터 팩에서 {displayName} 제거" + #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "계정 제거" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "아바타 제거" @@ -3723,9 +4525,13 @@ msgstr "아바타 제거" msgid "Remove Banner" msgstr "배너 제거" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "임베드 제거" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "피드 제거" @@ -3733,15 +4539,16 @@ msgstr "피드 제거" msgid "Remove feed?" msgstr "피드를 제거하시겠습니까?" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "내 피드에서 제거" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "내 피드에서 제거하시겠습니까?" @@ -3749,7 +4556,7 @@ msgstr "내 피드에서 제거하시겠습니까?" msgid "Remove image" msgstr "이미지 제거" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "이미지 미리보기 제거" @@ -3757,11 +4564,20 @@ msgstr "이미지 미리보기 제거" msgid "Remove mute word from your list" msgstr "목록에서 뮤트한 단어 제거" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "프로필 제거" + +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "검색 기록에서 프로필을 제거합니다" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 msgid "Remove quote" msgstr "인용 제거" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "재게시를 취소합니다" @@ -3769,74 +4585,90 @@ msgstr "재게시를 취소합니다" msgid "Remove this feed from your saved feeds" msgstr "저장한 피드에서 이 피드를 제거합니다" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "리스트에서 제거됨" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" msgstr "내 피드에서 제거됨" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" msgstr "내 피드에서 제거됨" #: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "{0}에서 기본 미리보기 이미지를 제거합니다" +#~ msgid "Removes default thumbnail from {0}" +#~ msgstr "{0}에서 기본 미리보기 이미지를 제거합니다" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" msgstr "인용된 게시물을 제거합니다" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 msgid "Replace with Discover" msgstr "Discover로 교체" -#: src/view/screens/Profile.tsx:194 +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "답글" -#: src/view/com/threadgate/WhoCanReply.tsx:98 -msgid "Replies to this thread are disabled" -msgstr "이 스레드에 대한 답글이 비활성화됩니다." +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "답글 비활성화됨" -#: src/view/com/composer/Composer.tsx:435 +#: src/components/WhoCanReply.tsx:243 +msgid "Replies to this thread are disabled" +msgstr "이 스레드에 대한 답글이 비활성화됨" + +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "답글" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "답글 필터" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "<0><1/> 님에게 보내는 답글" -#: src/components/dms/MessageMenu.tsx:109 +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" +msgstr "차단된 게시물에 보내는 답글" + +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 msgid "Report" msgstr "신고" -#: src/components/dms/ConvoMenu.tsx:169 -#: src/components/dms/ConvoMenu.tsx:173 -#~ msgid "Report account" -#~ msgstr "계정 신고" - -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "계정 신고" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" msgstr "대화 신고" @@ -3844,64 +4676,75 @@ msgstr "대화 신고" msgid "Report dialog" msgstr "신고 대화 상자" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "피드 신고" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "리스트 신고" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" msgstr "메시지 신고" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "게시물 신고" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "스타터 팩 신고" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "이 콘텐츠 신고하기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "이 피드 신고하기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "이 리스트 신고하기" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" -msgstr "이 메시지 신고" +msgstr "이 메시지 신고하기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "이 게시물 신고하기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "이 스타터 팩 신고하기" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "이 사용자 신고하기" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "재게시" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "재게시" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "재게시 또는 게시물 인용" @@ -3909,19 +4752,24 @@ msgstr "재게시 또는 게시물 인용" msgid "Reposted By" msgstr "재게시한 사용자" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "{0} 님이 재게시함" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "<0><1/> 님이 재게시함" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "이(가) 내 게시물을 재게시했습니다" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "이 게시물의 재게시" @@ -3930,12 +4778,12 @@ msgstr "이 게시물의 재게시" msgid "Request Change" msgstr "변경 요청" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "코드 요청" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "게시하기 전 대체 텍스트 필수" @@ -3943,7 +4791,7 @@ msgstr "게시하기 전 대체 텍스트 필수" msgid "Require email code to log into your account" msgstr "계정에 로그인할 때 이메일 코드 필수" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "이 제공자에서 필수" @@ -3952,16 +4800,16 @@ msgstr "이 제공자에서 필수" msgid "Resend email" msgstr "이메일 다시 보내기" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "재설정 코드" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "재설정 코드" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "온보딩 상태 초기화" @@ -3969,20 +4817,20 @@ msgstr "온보딩 상태 초기화" msgid "Reset password" msgstr "비밀번호 재설정" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "설정 상태 초기화" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "온보딩 상태 초기화" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "설정 상태 초기화" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "로그인을 다시 시도합니다" @@ -3991,26 +4839,24 @@ msgstr "로그인을 다시 시도합니다" msgid "Retries the last action, which errored out" msgstr "오류가 발생한 마지막 작업을 다시 시도합니다" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" msgstr "다시 시도" -#: src/screens/Messages/Conversation/MessageListError.tsx:54 -#~ msgid "Retry." -#~ msgstr "다시 시도" - #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "이전 페이지로 돌아갑니다" @@ -4019,26 +4865,28 @@ msgid "Returns to home page" msgstr "홈 페이지로 돌아갑니다" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "이전 페이지로 돌아갑니다" #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "저장" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "저장" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "대체 텍스트 저장" @@ -4054,25 +4902,34 @@ msgstr "변경 사항 저장" msgid "Save handle change" msgstr "핸들 변경 저장" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "이미지 저장" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "이미지 자르기 저장" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "QR 코드 저장" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" msgstr "내 피드에 저장" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" msgstr "저장한 피드" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" -msgstr "내 앨범에 저장됨" +msgstr "내 사진 보관함에 저장됨" -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "내 피드에 저장됨" @@ -4088,37 +4945,45 @@ msgstr "핸들을 {handle}(으)로 변경합니다" msgid "Saves image crop settings" msgstr "이미지 자르기 설정을 저장합니다" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "인사해 보세요!" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "과학" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "맨 위로 스크롤" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "검색" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "\"{query}\"에 대한 검색 결과" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" msgstr "\"{searchText}\"에 대한 검색 결과" @@ -4130,25 +4995,28 @@ msgstr "{displayTag} 태그를 사용한 @{authorHandle} 님의 모든 게시물 msgid "Search for all posts with tag {displayTag}" msgstr "{displayTag} 태그를 사용한 모든 게시물 검색" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." -msgstr "대화를 시작할 사람을 검색하세요." +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." +msgstr "다른 사람에게 추천할 피드를 검색하세요." -#: src/view/com/auth/LoggedOut.tsx:105 #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "사용자 검색하기" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "GIF 검색하기" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" msgstr "프로필 검색" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "Tenor 검색" @@ -4172,12 +5040,7 @@ msgstr "<0>{displayTag} 게시물 보기" msgid "See <0>{displayTag} posts by this user" msgstr "이 사용자의 <0>{displayTag} 게시물 보기" -#: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "프로필 보기" - -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "이 가이드" @@ -4205,15 +5068,15 @@ msgstr "이모티콘 선택" msgid "Select from an existing account" msgstr "기존 계정에서 선택" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" msgstr "GIF 선택" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" msgstr "GIF \"{0}\" 선택" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "언어 선택" @@ -4225,15 +5088,11 @@ msgstr "검토자 선택" msgid "Select option {i} of {numItems}" msgstr "{numItems}개 중 {i}번째 옵션을 선택합니다" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "아래에서 팔로우할 계정을 선택하세요" - #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" msgstr "{emojiName} 이모티콘을 아바타로 선택하기" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "신고할 검토 서비스를 선택하세요." @@ -4241,70 +5100,65 @@ msgstr "신고할 검토 서비스를 선택하세요." msgid "Select the service that hosts your data." msgstr "데이터를 호스팅할 서비스를 선택하세요." -#: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" -msgstr "아래 목록에서 팔로우할 화제 피드를 선택하세요" +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" +msgstr "" -#: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "보고 싶거나 보고 싶지 않은 항목을 선택하면 나머지는 알아서 처리해 드립니다." - -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." msgstr "구독하는 피드에 포함할 언어를 선택합니다. 선택하지 않으면 모든 언어가 표시됩니다." -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "앱에 표시되는 기본 텍스트 언어를 선택합니다." -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "생년월일을 선택하세요" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "아래 옵션에서 관심사를 선택하세요" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." msgstr "피드에서 번역을 위해 선호하는 언어를 선택합니다." -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "기본 알고리즘 피드를 선택하세요" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" -msgstr "보조 알고리즘 피드를 선택하세요" +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" +msgstr "멋진 웹사이트 링크를 보내 보세요!" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "인증 이메일 보내기" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "이메일 보내기" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "이메일 보내기" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "피드백 보내기" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" msgstr "메시지 보내기" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." +msgstr "게시물을 다음으로 보내기" + +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "신고 보내기" @@ -4315,9 +5169,14 @@ msgstr "{0} 님에게 신고 보내기" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" -msgstr "인증 메일 보내기" +msgstr "인증 이메일 보내기" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "다이렉트 메시지로 보내기" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "계정 삭제를 위한 확인 코드가 포함된 이메일을 전송합니다" @@ -4325,7 +5184,7 @@ msgstr "계정 삭제를 위한 확인 코드가 포함된 이메일을 전송 msgid "Server address" msgstr "서버 주소" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "생년월일 설정" @@ -4333,23 +5192,23 @@ msgstr "생년월일 설정" msgid "Set new password" msgstr "새 비밀번호 설정" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "피드에서 모든 인용 게시물을 숨기려면 이 설정을 \"아니요\"로 설정합니다. 재게시는 계속 표시됩니다." -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "피드에서 모든 답글을 숨기려면 이 설정을 \"아니요\"로 설정합니다." -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "피드에서 모든 재게시를 숨기려면 이 설정을 \"아니요\"로 설정합니다." -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "스레드 보기에 답글을 표시하려면 이 설정을 \"예\"로 설정합니다. 이는 실험적인 기능입니다." -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "팔로우 중 피드에 저장한 피드 샘플을 표시하려면 이 설정을 \"예\"로 설정합니다. 이는 실험적인 기능입니다." @@ -4361,23 +5220,23 @@ msgstr "계정 설정하기" msgid "Sets Bluesky username" msgstr "Bluesky 사용자 이름을 설정합니다" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "색상 테마를 어두움으로 설정합니다" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "색상 테마를 밝음으로 설정합니다" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "색상 테마를 시스템 설정에 맞춥니다" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "어두운 테마를 완전히 어둡게 설정합니다" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "어두운 테마를 살짝 밝게 설정합니다" @@ -4397,12 +5256,11 @@ msgstr "이미지 비율을 세로로 길게 설정합니다" msgid "Sets image aspect ratio to wide" msgstr "이미지 비율을 가로로 길게 설정합니다" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "설정" @@ -4414,49 +5272,90 @@ msgstr "성행위 또는 선정적인 노출." msgid "Sexually Suggestive" msgstr "외설적" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "공유" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "공유" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "공유" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "멋진 이야기를 전하세요!" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "재미있는 사실을 전하세요!" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "무시하고 공유" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "피드 공유" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "링크 공유" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "링크 공유" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "링크 공유 대화 상자" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "QR 코드 공유" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "이 스타터 팩 공유하기" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "이 스타터 팩을 공유하여 사람들이 Bluesky에서 커뮤니티에 참여할 수 있도록 도와주세요." + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "좋아하는 피드를 공유해 보세요!" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "연결된 웹사이트를 공유합니다" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "표시" -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" msgstr "대체 텍스트 표시" @@ -4474,79 +5373,59 @@ msgstr "배지 표시" msgid "Show badge and filter from feeds" msgstr "배지 표시 및 피드에서 필터링" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "{0} 님과 비슷한 팔로우 표시" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "숨겨진 답글 표시" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 msgid "Show less like this" msgstr "이런 항목 덜 보기" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "더 보기" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" msgstr "이런 항목 더 보기" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "뮤트된 답글 표시" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" msgstr "내 피드에서 게시물 표시" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "인용 게시물 표시" -#: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "팔로우 중 피드에 인용 게시물 표시" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "팔로우 중 피드에 인용 표시" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "팔로우 중 피드에 재게시 표시" - -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "답글 표시" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "내가 팔로우하는 사람들의 답글을 다른 모든 답글보다 먼저 표시합니다." -#: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "팔로우 중 피드에 답글 표시" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "팔로우 중 피드에 답글 표시" - -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "재게시 표시" -#: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "팔로우 중 피드에 재게시 표시" - -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "콘텐츠 표시" -#: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "사용자 표시" - #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" msgstr "경고 표시" @@ -4563,17 +5442,17 @@ msgstr "피드에 {0} 님의 게시물을 표시합니다" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4596,17 +5475,17 @@ msgstr "대화에 참여하려면 로그인하거나 계정을 만드세요!" msgid "Sign into Bluesky or create a new account" msgstr "Bluesky에 로그인하거나 새 계정 만들기" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "로그아웃" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4622,7 +5501,7 @@ msgstr "가입 또는 로그인하여 대화에 참여하세요" msgid "Sign-in Required" msgstr "로그인 필요" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "로그인한 계정" @@ -4631,56 +5510,86 @@ msgstr "로그인한 계정" msgid "Signed in as @{0}" msgstr "@{0}(으)로 로그인했습니다" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "(이)가 내 스타터 팩으로 가입했습니다" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "스타터 팩 없이 가입하기" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "건너뛰기" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "이 단계 건너뛰기" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "소프트웨어 개발" -#: src/screens/Messages/Conversation/index.tsx:89 +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" +msgstr "좋아할 만한 다른 피드" + +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "일부 사람들이 답글을 달 수 있음" + +#: src/screens/Messages/Conversation/index.tsx:106 msgid "Something went wrong" msgstr "알 수 없는 오류가 발생했습니다" +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요" + #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "" + +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "죄송합니다. 세션이 만료되었습니다. 다시 로그인해 주세요." -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "답글 정렬" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "동일한 게시물에 대한 답글을 정렬하는 기준입니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" -msgstr "출처:" +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" +msgstr "출처: <0>{0}" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "스팸" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "스팸, 과도한 멘션 또는 답글" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "스포츠" @@ -4688,61 +5597,94 @@ msgstr "스포츠" msgid "Square" msgstr "정사각형" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" msgstr "새 대화 시작하기" -#: src/view/screens/Settings/index.tsx:896 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "{displayName} 님과 대화 시작하기" + +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "대화 시작하기" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "온보딩 투어 창을 시작합니다. 뒤로 이동하지 마세요. 대신 앞으로 이동하여 더 많은 옵션을 보거나 건너뛰려면 누르세요." + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "스타터 팩" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "{0} 님의 스타터 팩" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "스타터 팩이 유효하지 않음" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "스타터 팩" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." +msgstr "스타터 팩을 사용하면 좋아하는 피드와 사람들을 친구들과 쉽게 공유할 수 있습니다." + +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" msgstr "상태 페이지" -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" msgstr "{1}단계 중 {0}단계" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "스토리북" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "확인" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "구독" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "이 라벨을 사용하려면 @{0}을(를) 구독하세요." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "라벨러 구독" -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "{0} 피드 구독하기" - -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "이 라벨러 구독하기" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "이 리스트 구독하기" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "팔로우 추천" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "추천 계정" +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "나를 위한 추천" @@ -4751,7 +5693,7 @@ msgstr "나를 위한 추천" msgid "Suggestive" msgstr "외설적" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -4762,19 +5704,23 @@ msgstr "지원" msgid "Switch Account" msgstr "계정 전환" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "피드 사이를 전환하여 내 환경을 제어할 수 있습니다." + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "{0}(으)로 전환" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "로그인한 계정을 전환합니다" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "시스템" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "시스템 로그" @@ -4790,29 +5736,51 @@ msgstr "태그 메뉴: {displayTag}" msgid "Tall" msgstr "세로" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "눌러서 닫기" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "탭하여 전체 크기로 봅니다" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "작업 완료 - 10개 좋아요!" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "무엇을 좋아하는지 알고리즘에게 알려주세요" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "기술" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "농담해 보세요!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "좀 더 자세히 알려주세요" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "이용약관" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "서비스 이용약관" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "커뮤니티 기준을 위반하는 용어 사용" @@ -4820,12 +5788,13 @@ msgstr "커뮤니티 기준을 위반하는 용어 사용" msgid "text" msgstr "글" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "텍스트 입력 필드" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "감사합니다. 신고를 전송했습니다." @@ -4833,12 +5802,21 @@ msgstr "감사합니다. 신고를 전송했습니다." msgid "That contains the following:" msgstr "텍스트 파일 내용:" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "이 핸들은 이미 사용 중입니다." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "스타터 팩을 찾을 수 없습니다." + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "차단을 해제하면 이 계정이 나와 상호작용할 수 있게 됩니다." @@ -4850,15 +5828,24 @@ msgstr "커뮤니티 가이드라인을 <0/>(으)로 이동했습니다" msgid "The Copyright Policy has been moved to <0/>" msgstr "저작권 정책을 <0/>(으)로 이동했습니다" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" +msgstr "이제 Discover 피드는 사용자가 무엇을 좋아하는지 알게 됩니다" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "앱에서 더 나은 환경을 경험하세요. 지금 Bluesky를 다운로드하면 중단한 부분부터 다시 시작합니다." + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 msgid "The feed has been replaced with Discover." msgstr "피드를 Discover로 교체했습니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "내 계정에 다음 라벨이 적용되었습니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "내 콘텐츠에 다음 라벨이 적용되었습니다." @@ -4866,8 +5853,8 @@ msgstr "내 콘텐츠에 다음 라벨이 적용되었습니다." msgid "The following steps will help customize your Bluesky experience." msgstr "다음 단계는 Bluesky 환경을 맞춤 설정하는 데 도움이 됩니다." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "게시물이 삭제되었을 수 있습니다." @@ -4875,6 +5862,10 @@ msgstr "게시물이 삭제되었을 수 있습니다." msgid "The Privacy Policy has been moved to <0/>" msgstr "개인정보 처리방침을 <0/>(으)로 이동했습니다" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "이 스타터 팩은 유효하지 않습니다. 대신 이 스타터 팩을 삭제할 수 있습니다." + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "지원 양식을 이동했습니다. 도움이 필요하다면 <0/>하거나 {HELP_DESK_URL}에 방문하여 문의해 주세요." @@ -4883,52 +5874,49 @@ msgstr "지원 양식을 이동했습니다. 도움이 필요하다면 <0/>하 msgid "The Terms of Service have been moved to" msgstr "서비스 이용약관을 다음으로 이동했습니다:" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" -msgstr "시도해 볼 만한 피드:" +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." +msgstr "계정 비활성화에는 시간 제한이 없으므로 언제든지 다시 돌아올 수 있습니다." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "서버에 연결하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "이 피드를 삭제하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "피드를 업데이트하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." msgstr "Tenor에 연결하는 동안 문제가 발생했습니다." -#: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "채팅에 연결하는 동안 문제가 발생했습니다." - -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "서버에 연결하는 동안 문제가 발생했습니다" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "서버에 연결하는 동안 문제가 발생했습니다" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "알림을 가져오는 동안 문제가 발생했습니다. 이곳을 탭하여 다시 시도하세요." -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "게시물을 가져오는 동안 문제가 발생했습니다. 이곳을 탭하여 다시 시도하세요." @@ -4936,57 +5924,51 @@ msgstr "게시물을 가져오는 동안 문제가 발생했습니다. 이곳을 msgid "There was an issue fetching the list. Tap here to try again." msgstr "리스트를 가져오는 동안 문제가 발생했습니다. 이곳을 탭하여 다시 시도하세요." -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "리스트를 가져오는 동안 문제가 발생했습니다. 이곳을 탭하여 다시 시도하세요." -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "신고를 전송하는 동안 문제가 발생했습니다. 인터넷 연결을 확인해 주세요." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "설정을 서버와 동기화하는 동안 문제가 발생했습니다" - -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "앱 비밀번호를 가져오는 동안 문제가 발생했습니다" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "문제가 발생했습니다! {0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "애플리케이션에 예기치 않은 문제가 발생했습니다. 이런 일이 발생하면 저희에게 알려주세요!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." -msgstr "Bluesky에 신규 사용자가 몰리고 있습니다! 최대한 빨리 계정을 활성화해 드리겠습니다." - -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "내가 좋아할 만한 인기 계정입니다:" +msgstr "Bluesky에 신규 사용자가 몰리고 있습니다! 최대한 빨리 계정을 활성화하겠습니다." #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" @@ -4996,13 +5978,21 @@ msgstr "이 {screenDescription}에 다음 플래그가 지정되었습니다:" msgid "This account has requested that users sign in to view their profile." msgstr "이 계정의 프로필을 보려면 로그인해야 합니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "이 계정은 하나 이상의 검토 리스트에 의해 차단되었습니다. 차단을 해제하려면 해당 리스트로 직접 이동하여 이 사용자를 제거하세요." + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "이 이의신청은 <0>{0}에게 보내집니다." -#: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." -msgstr "네트워크 오류로 인해 채팅 연결이 끊어졌습니다." +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." +msgstr "이 이의신청은 Bluesky Moderation Service로 보내집니다." + +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "이 대화는 연결이 끊어졌습니다" #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." @@ -5017,33 +6007,37 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "이 콘텐츠는 {0}에서 호스팅됩니다. 외부 미디어를 사용하시겠습니까?" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." msgstr "관련 사용자 중 한 명이 다른 사용자를 차단했기 때문에 이 콘텐츠를 사용할 수 없습니다." -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "이 콘텐츠는 Bluesky 계정이 없으면 볼 수 없습니다." -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "이 대화는 삭제되었거나 비활성화된 계정과의 대화입니다. 옵션을 보려면 누르세요." + +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "이 기능은 베타 버전입니다. 저장소 내보내기에 대한 자세한 내용은 <0>이 블로그 글에서 확인할 수 있습니다." -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "이 피드는 현재 트래픽이 많아 일시적으로 사용할 수 없습니다. 나중에 다시 시도해 주세요." -#: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "이 피드는 비어 있습니다." - #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "이 피드는 비어 있습니다. 더 많은 사용자를 팔로우하거나 언어 설정을 조정해 보세요." -#: src/view/com/posts/FeedShutdownMsg.tsx:97 +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." +msgstr "이 피드는 비어 있습니다." + +#: src/view/com/posts/FeedShutdownMsg.tsx:99 msgid "This feed is no longer online. We are showing <0>Discover instead." msgstr "이 피드는 더 이상 온라인 상태가 아닙니다. 대신 <0>Discover를 표시합니다." @@ -5063,11 +6057,11 @@ msgstr "이 라벨은 {0}이(가) 적용했습니다." msgid "This label was applied by the author." msgstr "이 라벨은 작성자가 적용했습니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." msgstr "이 라벨은 내가 적용했습니다." -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "이 라벨러는 라벨을 게시하지 않았으며 활성화되어 있지 않을 수 있습니다." @@ -5075,7 +6069,7 @@ msgstr "이 라벨러는 라벨을 게시하지 않았으며 활성화되어 있 msgid "This link is taking you to the following website:" msgstr "이 링크를 클릭하면 다음 웹사이트로 이동합니다:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "이 리스트는 비어 있습니다." @@ -5083,24 +6077,24 @@ msgstr "이 리스트는 비어 있습니다." msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "이 검토 서비스는 사용할 수 없습니다. 자세한 내용은 아래를 참조하세요. 이 문제가 지속되면 문의해 주세요." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "이 이름은 이미 사용 중입니다" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "이 게시물은 삭제되었습니다." -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "이 게시물은 로그인한 사용자에게만 표시됩니다. 로그인하지 않은 사용자에게는 표시되지 않습니다." -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "이 게시물을 피드에서 숨깁니다." -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "이 프로필은 로그인한 사용자에게만 표시됩니다. 로그인하지 않은 사용자에게는 표시되지 않습니다." @@ -5116,8 +6110,12 @@ msgstr "이 도메인에 레코드가 추가됩니다:" msgid "This user doesn't have any followers." msgstr "이 사용자는 팔로워가 없습니다." +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "이 사용자는 나를 차단했습니다" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "이 사용자는 나를 차단했습니다. 이 사용자의 콘텐츠를 볼 수 없습니다." @@ -5133,6 +6131,10 @@ msgstr "이 사용자는 내가 차단한 <0>{0} 리스트에 포함되어 msgid "This user is included in the <0>{0} list which you have muted." msgstr "이 사용자는 내가 뮤트한 <0>{0} 리스트에 포함되어 있습니다." +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "이 사용자는 새로 가입했습니다. 언제 가입했는지 자세한 정보를 보려면 누르세요." + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "이 사용자는 아무도 팔로우하지 않았습니다." @@ -5141,20 +6143,24 @@ msgstr "이 사용자는 아무도 팔로우하지 않았습니다." msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "뮤트한 단어에서 {0}이(가) 삭제됩니다. 나중에 언제든지 다시 추가할 수 있습니다." -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" msgstr "스레드 설정" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "스레드 설정" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "스레드 설정 업데이트됨" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "스레드 모드" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "스레드 설정" @@ -5162,7 +6168,7 @@ msgstr "스레드 설정" msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "이메일 2단계 인증을 비활성화하려면 이메일 주소에 대한 접근 권한을 인증하세요." -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." msgstr "대화를 신고하려면 대화 화면에서 해당 메시지 중 하나를 신고하세요. 이렇게 하면 운영진이 문제의 맥락을 파악할 수 있습니다." @@ -5174,16 +6180,16 @@ msgstr "이 신고를 누구에게 보내시겠습니까?" msgid "Toggle between muted word options." msgstr "뮤트한 단어 옵션 사이를 전환합니다." -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "드롭다운 열기 및 닫기" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "성인 콘텐츠 활성화 또는 비활성화 전환" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "인기" @@ -5191,10 +6197,12 @@ msgstr "인기" msgid "Transformations" msgstr "변형" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "번역" @@ -5203,11 +6211,15 @@ msgctxt "action" msgid "Try again" msgstr "다시 시도" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "TV" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "2단계 인증" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" msgstr "메시지를 입력하세요" @@ -5215,53 +6227,65 @@ msgstr "메시지를 입력하세요" msgid "Type:" msgstr "유형:" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "리스트 차단 해제" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "리스트 언뮤트" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "서비스에 연결할 수 없습니다. 인터넷 연결을 확인하세요." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "삭제할 수 없음" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "차단 해제" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "차단 해제" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "계정 차단 해제" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "계정 차단 해제" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" msgstr "계정을 차단 해제하시겠습니까?" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "재게시 취소" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "언팔로우" @@ -5270,21 +6294,21 @@ msgstr "언팔로우" msgid "Unfollow" msgstr "언팔로우" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "{0} 님을 언팔로우" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "계정 언팔로우" -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "이 피드 좋아요 취소" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "언뮤트" @@ -5292,8 +6316,8 @@ msgstr "언뮤트" msgid "Unmute {truncatedTag}" msgstr "{truncatedTag} 언뮤트" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "계정 언뮤트" @@ -5301,46 +6325,46 @@ msgstr "계정 언뮤트" msgid "Unmute all {displayTag} posts" msgstr "모든 {tag} 게시물 언뮤트" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" msgstr "알림 언뮤트" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" msgstr "스레드 언뮤트" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "고정 해제" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "홈에서 고정 해제" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "검토 리스트 고정 해제" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "내 피드에서 고정 해제됨" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "구독 취소" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "이 라벨러 구독 취소하기" +#: src/lib/moderation/useReportOptions.ts:72 #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "원치 않는 성적 콘텐츠" - -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "원치 않는 성적 콘텐츠" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "리스트에서 {displayName} 업데이트" @@ -5352,7 +6376,7 @@ msgstr "{handle}로 변경" msgid "Updating..." msgstr "업데이트 중…" -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" msgstr "대신 사진 업로드하기" @@ -5360,20 +6384,20 @@ msgstr "대신 사진 업로드하기" msgid "Upload a text file to:" msgstr "텍스트 파일 업로드 경로:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "카메라에서 업로드" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "파일에서 업로드" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -5383,7 +6407,7 @@ msgstr "라이브러리에서 업로드" msgid "Use a file on your server" msgstr "서버에 있는 파일을 사용합니다" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "앱 비밀번호를 사용하면 계정이나 비밀번호에 대한 전체 접근 권한을 제공하지 않고도 다른 Bluesky 클라이언트에 로그인할 수 있습니다." @@ -5413,7 +6437,7 @@ msgstr "추천 사용" msgid "Use the DNS panel" msgstr "DNS 패널을 사용합니다" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "이 비밀번호와 핸들을 사용하여 다른 앱에 로그인하세요." @@ -5422,19 +6446,23 @@ msgid "Used by:" msgstr "사용 계정:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "사용자 차단됨" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr " \"{0}\"에서 차단된 사용자" +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "리스트로 사용자 차단됨" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "리스트로 사용자 차단됨" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "나를 차단한 사용자" @@ -5442,46 +6470,53 @@ msgstr "나를 차단한 사용자" msgid "User Blocks You" msgstr "나를 차단한 사용자" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "{0} 님의 사용자 리스트" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "<0/> 님의 사용자 리스트" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "내 사용자 리스트" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "사용자 리스트 생성됨" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "사용자 리스트 업데이트됨" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "사용자 리스트" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "사용자 이름 또는 이메일 주소" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "사용자" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "<0/> 님이 팔로우한 사용자" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "내가 팔로우하는 사용자" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "\"{0}\"에 있는 사용자" @@ -5497,15 +6532,15 @@ msgstr "값:" msgid "Verify DNS Record" msgstr "DNS 레코드 인증" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "이메일 인증" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "내 이메일 인증하기" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "내 이메일 인증하기" @@ -5522,31 +6557,44 @@ msgstr "텍스트 파일 인증" msgid "Verify Your Email" msgstr "이메일 인증하기" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" msgstr "버전 {appVersion} {bundleInfo}" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "비디오 게임" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "{0} 님의 아바타를 봅니다" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "{0} 님의 프로필 보기" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "차단한 사용자의 프로필 보기" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "디버그 항목 보기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "세부 정보 보기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "저작권 위반 신고에 대한 세부 정보 보기" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "전체 스레드 보기" @@ -5554,13 +6602,15 @@ msgstr "전체 스레드 보기" msgid "View information about these labels" msgstr "이 라벨에 대한 정보 보기" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "프로필 보기" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "아바타 보기" @@ -5568,10 +6618,15 @@ msgstr "아바타 보기" msgid "View the labeling service provided by @{0}" msgstr "{0} 님이 제공하는 라벨링 서비스 보기" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "이 피드를 좋아하는 사용자 보기" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "내 피드를 보거나 새 피드를 탐색합니다" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -5580,7 +6635,6 @@ msgstr "사이트 방문" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "경고" @@ -5596,17 +6650,17 @@ msgstr "콘텐츠 경고 및 피드에서 필터링" msgid "We couldn't find any results for that hashtag." msgstr "해당 해시태그에 대한 결과를 찾을 수 없습니다." -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" msgstr "이 대화를 불러올 수 없습니다" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "계정이 준비될 때까지 {estimatedTime}이(가) 걸릴 것으로 예상됩니다." -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" -msgstr "즐거운 시간 되시기 바랍니다. Bluesky의 다음 특징을 기억하세요:" +msgstr "즐거운 시간 되시기 바랍니다. Bluesky의 다음 특징을 기억하세요." #: src/view/com/posts/DiscoverFallbackHeader.tsx:29 msgid "We ran out of posts from your follows. Here's the latest from <0/>." @@ -5616,35 +6670,35 @@ msgstr "팔로우한 사용자의 게시물이 부족합니다. 대신 <0/>의 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "게시물이 표시되지 않을 수 있으므로 많은 게시물에 자주 등장하는 단어는 피하는 것이 좋습니다." -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "\"Discover\" 피드를 권장합니다:" - #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "생년월일 설정을 불러올 수 없습니다. 다시 시도해 주세요." -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "현재 구성된 라벨러를 불러올 수 없습니다." -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "연결하지 못했습니다. 계정 설정을 계속하려면 다시 시도해 주세요. 계속 실패하면 이 과정을 건너뛸 수 있습니다." -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "계정이 준비되면 알려드리겠습니다." -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "이를 통해 사용자 환경을 맞춤 설정할 수 있습니다." -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "네트워크 문제가 발생했습니다. 다시 시도하세요" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "함께하게 되어 정말 기뻐요!" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "죄송하지만 이 리스트를 불러올 수 없습니다. 이 문제가 계속되면 리스트 작성자인 @{handleOrDid}에게 문의하세요." @@ -5652,26 +6706,42 @@ msgstr "죄송하지만 이 리스트를 불러올 수 없습니다. 이 문제 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "죄송하지만 현재 뮤트한 단어를 불러올 수 없습니다. 다시 시도해 주세요." -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "죄송하지만 검색을 완료할 수 없습니다. 몇 분 후에 다시 시도해 주세요." -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "죄송하지만 답글을 달려는 게시물이 삭제되었습니다." + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "죄송합니다. 페이지를 찾을 수 없습니다." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." -msgstr "죄송합니다. 라벨러는 10개까지만 구독할 수 있으며 10개에 도달했습니다." +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "죄송합니다. 라벨러는 20개까지만 구독할 수 있으며 20개에 도달했습니다." -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" +msgstr "다시 돌아오셨군요!" + +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "잘 오셨습니다!" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" msgstr "어떤 관심사가 있으신가요?" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "스타터 팩의 이름을 무엇으로 할까요?" + #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "무슨 일이 일어나고 있나요?" @@ -5683,36 +6753,53 @@ msgstr "이 게시물에 어떤 언어가 사용되나요?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "알고리즘 피드에 어떤 언어를 표시하시겠습니까?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "누구의 메시지를 허용하시겠습니까?" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "답글을 달 수 있는 사람" -#: src/screens/Home/NoFeedsPinned.tsx:92 +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "답글을 달 수 있는 사람 대화 상자" + +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "누가 답글을 달 수 있나요?" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "이런!" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "이 콘텐츠를 검토해야 하는 이유는 무엇인가요?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "이 피드를 검토해야 하는 이유는 무엇인가요?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "이 리스트를 검토해야 하는 이유는 무엇인가요?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" msgstr "이 메시지를 검토해야 하는 이유는 무엇인가요?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "이 게시물을 검토해야 하는 이유는 무엇인가요?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "이 스타터 팩을 검토해야 하는 이유는 무엇인가요?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "이 사용자를 검토해야 하는 이유는 무엇인가요?" @@ -5720,39 +6807,61 @@ msgstr "이 사용자를 검토해야 하는 이유는 무엇인가요?" msgid "Wide" msgstr "가로" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" msgstr "메시지를 입력하세요" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "게시물 작성" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "답글 작성하기" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "작가" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "예" -#: src/components/dms/MessageItem.tsx:158 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "비활성화" + +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "예, 이 스타터 팩을 삭제합니다" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "내 계정 재활성화" + +#: src/components/dms/MessageItem.tsx:182 msgid "Yesterday, {time}" msgstr "어제 {time}" -#: src/screens/Deactivated.tsx:136 +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "나" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "나" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "대기 중입니다." @@ -5760,58 +6869,74 @@ msgstr "대기 중입니다." msgid "You are not following anyone." msgstr "아무도 팔로우하지 않았습니다." -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "팔로우할 새로운 맞춤 피드를 찾을 수도 있습니다." -#: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." -msgstr "이 설정은 나중에 변경할 수 있습니다." +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "대신 계정을 일시적으로 비활성화한 후 언제든지 재활성화할 수도 있습니다." + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "언제든지 변경할 수 있습니다." + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "어떤 설정을 선택하든 진행 중인 대화를 계속할 수 있습니다." #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." msgstr "이제 새 비밀번호로 로그인할 수 있습니다." +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "계정을 재활성화하여 로그인을 계속할 수 있습니다. 내 프로필과 글이 다른 사용자에게 표시됩니다." + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "팔로워가 없습니다." +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "@{name} 님을 팔로우하는 사용자를 팔로우하고 있지 않습니다." + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "아직 초대 코드가 없습니다! Bluesky를 좀 더 오래 사용하신 후에 보내드리겠습니다." -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." msgstr "고정한 피드가 없습니다." -#: src/view/screens/Feeds.tsx:477 -#~ msgid "You don't have any saved feeds!" -#~ msgstr "저장한 피드가 없습니다!" - -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." msgstr "저장한 피드가 없습니다." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "작성자를 차단했거나 작성자가 나를 차단했습니다." +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "이 사용자를 차단했습니다" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "이 사용자를 차단했습니다. 해당 사용자의 콘텐츠를 볼 수 없습니다." #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "잘못된 코드를 입력했습니다. XXXXX-XXXXX와 같은 형식이어야 합니다." -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "내가 이 게시물을 숨겼습니다" @@ -5820,32 +6945,32 @@ msgid "You have hidden this post." msgstr "내가 이 게시물을 숨겼습니다." #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "내가 이 계정을 뮤트했습니다." -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "내가 이 사용자를 뮤트했습니다" -#: src/view/com/feeds/ProfileFeedgens.tsx:144 +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "아직 대화가 없습니다. 시작해 보세요!" + +#: src/view/com/feeds/ProfileFeedgens.tsx:137 msgid "You have no feeds." msgstr "피드가 없습니다." -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." msgstr "리스트가 없습니다." -#: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "아직 메시지가 없습니다. 사람들과 대화를 시작해 보세요!" - #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "아직 어떤 계정도 차단하지 않았습니다. 계정을 차단하려면 해당 계정의 프로필로 이동하여 계정 메뉴에서 \"계정 차단\"을 선택하세요." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "아직 앱 비밀번호를 생성하지 않았습니다. 아래 버튼을 눌러 생성할 수 있습니다." @@ -5853,96 +6978,154 @@ msgstr "아직 앱 비밀번호를 생성하지 않았습니다. 아래 버튼 msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "아직 어떤 계정도 뮤트하지 않았습니다. 계정을 뮤트하려면 해당 계정의 프로필로 이동하여 계정 메뉴에서 \"계정 뮤트\"를 선택하세요." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "끝에 도달했습니다" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "아직 스타터 팩을 만들지 않았습니다." + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "아직 어떤 단어나 태그도 뮤트하지 않았습니다" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "비셀프 라벨이 잘못 지정되었다고 생각되면 이의신청할 수 있습니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "이 라벨이 잘못 지정되었다고 생각되면 이의신청할 수 있습니다." +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "피드는 최대 50개까지 추가할 수 있습니다" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "프로필은 최대 50개까지 추가할 수 있습니다" + #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "가입하려면 만 13세 이상이어야 합니다." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" -msgstr "성인 콘텐츠를 사용하려면 만 18세 이상이어야 합니다." +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." +msgstr "스타터 팩을 만들려면 최소 7명 이상의 다른 사람을 팔로우해야 합니다." -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "QR 코드를 저장하려면 사진 보관함에 대한 접근 권한을 부여해야 합니다" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "이미지를 저장하려면 사진 보관함에 대한 접근 권한을 부여해야 합니다" + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "신고하려면 하나 이상의 라벨을 선택해야 합니다." -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "이전에 @{0}을(를) 비활성화했습니다." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "이 스레드에 대한 알림을 더 이상 받지 않습니다" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "이제 이 스레드에 대한 알림을 받습니다" #: src/screens/Login/SetNewPasswordForm.tsx:104 msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." -msgstr "\"재설정 코드\"가 포함된 이메일을 받게 되면 여기에 해당 코드를 입력한 다음 새 비밀번호를 입력합니다." +msgstr "\"재설정 코드\"가 포함된 이메일을 받게 되면 여기에 해당 코드를 입력한 다음 새 비밀번호를 입력하세요." -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" msgstr "나: {0}" -#: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "직접 제어하세요" +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "나: {defaultEmbeddedContentMessage}" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "나: {short}" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "계정 생성을 완료하면 추천 사용자 및 피드를 팔로우하게 됩니다." + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "계정 생성을 완료하면 추천 사용자를 팔로우하게 됩니다." + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "다음 사람들 외 {0}명을 팔로우하게 됩니다" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "다음 사람들을 바로 팔로우하게 됩니다" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" +msgstr "다음 피드를 구독하게 됩니다" + +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "대기 중입니다" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "앱 비밀번호로 로그인했습니다. 계정 비활성화를 계속하려면 원래 비밀번호로 로그인하세요." + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "준비가 끝났습니다!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "이 글에서 단어 또는 태그를 숨기도록 설정했습니다." -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "피드 끝에 도달했습니다! 팔로우할 계정을 더 찾아보세요." -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "내 계정" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "계정을 삭제했습니다" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "모든 공개 데이터 레코드가 포함된 계정 저장소를 \"CAR\" 파일로 다운로드할 수 있습니다. 이 파일에는 이미지와 같은 미디어 임베드나 별도로 가져와야 하는 비공개 데이터는 포함되지 않습니다." -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "생년월일" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "대화가 사용 중지되었습니다" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "선택 사항은 저장되며 나중에 설정에서 변경할 수 있습니다." -#: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "기본 피드는 \"팔로우 중\"입니다" - #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "이메일이 잘못된 것 같습니다." @@ -5954,11 +7137,15 @@ msgstr "이메일이 변경되었지만 인증되지 않았습니다. 다음 단 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "이메일이 아직 인증되지 않았습니다. 이는 중요한 보안 단계이므로 권장하는 사항입니다." -#: src/view/com/posts/FollowingEmptyState.tsx:47 -msgid "Your following feed is empty! Follow more users to see what's happening." -msgstr "팔로우 중 피드가 비어 있습니다! 더 많은 사용자를 팔로우하여 무슨 일이 일어나고 있는지 확인하세요." +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "첫 좋아요!" -#: src/screens/Signup/StepHandle.tsx:73 +#: src/view/com/posts/FollowingEmptyState.tsx:43 +msgid "Your following feed is empty! Follow more users to see what's happening." +msgstr "팔로우 중 피드가 비어 있습니다. 더 많은 사용자를 팔로우하여 무슨 일이 일어나고 있는지 확인하세요." + +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "내 전체 핸들:" @@ -5970,30 +7157,34 @@ msgstr "내 전체 핸들: <0>@{0}" msgid "Your muted words" msgstr "뮤트한 단어" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "비밀번호를 성공적으로 변경했습니다." -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "게시물을 게시했습니다" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "게시물, 좋아요, 차단 목록은 공개됩니다. 뮤트 목록은 공개되지 않습니다." -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "내 프로필" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "내 프로필, 글, 피드 및 리스트가 더 이상 다른 Bluesky 사용자에게 표시되지 않습니다. 언제든지 로그인하여 계정을 재활성화할 수 있습니다." + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "내 답글을 게시했습니다" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" -msgstr "신고가 Bluesky Moderation Service로 전송됩니다." +msgstr "신고가 Bluesky Moderation Service로 보내집니다." -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "내 사용자 핸들" diff --git a/src/locale/locales/pt-BR/messages.po b/src/locale/locales/pt-BR/messages.po index 2b8c51b779..046d7f9b9c 100644 --- a/src/locale/locales/pt-BR/messages.po +++ b/src/locale/locales/pt-BR/messages.po @@ -8,120 +8,219 @@ msgstr "" "Language: pt-BR\n" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-04-18 15:23\n" +"PO-Revision-Date: 2024-05-13 11:41\n" "Last-Translator: gildaswise\n" "Language-Team: maisondasilva, MightyLoggor, gildaswise, gleydson, faeriarum\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(sem email)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" -msgstr "" +msgstr "{0, plural, one {{formattedCount} outro} other {{formattedCount} outros}}" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgstr "{0, plural, one {# rótulo aplicado nesta conta} other {# rótulos aplicados nesta conta}}" + +#: src/components/moderation/LabelsOnMe.tsx:55 +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" msgstr "" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgstr "{0, plural, one {# rótulo aplicado neste conteúdo} other {# rótulos aplicados neste conteúdo}}" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" -msgstr "" +msgstr "{0, plural, one {# repost} other {# reposts}}" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/KnownFollowers.tsx:179 +#~ msgid "{0, plural, one {and # other} other {and # others}}" +#~ msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" -msgstr "" +msgstr "{0, plural, one {seguidor} other {seguidores}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" -msgstr "" +msgstr "{0, plural, one {seguindo} other {seguindo}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" -msgstr "" +msgstr "{0, plural, one {Curtir (# curtida)} other {Curtir (# curtidas)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" -msgstr "" +msgstr "{0, plural, one {curtida} other {curtidas}}" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{0, plural, one {Curtido por # usuário} other {Curtido por # usuários}}" #: src/screens/Profile/Header/Metrics.tsx:59 msgid "{0, plural, one {post} other {posts}}" -msgstr "" +msgstr "{0, plural, one {post} other {posts}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" -msgstr "" +msgstr "{0, plural, one {Responder (# resposta)} other {Responder (# respostas)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" +msgstr "{0, plural, one {repost} other {reposts}}" + +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 +msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" +msgstr "{0, plural, one {Descurtir (# curtida)} other {Descurtir (# curtidas)}}" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 -msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" msgstr "" #: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" +#~ msgid "{0} your feeds" +#~ msgstr "{0} seus feeds" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" msgstr "" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" +msgstr "{count, plural, one {Curtido por # usuário} other {Curtido por # usuários}}" + +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" msgstr "" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" -msgstr "" +msgstr "{estimatedTimeHrs, plural, one {hora} other {horas}}" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" -msgstr "" +msgstr "{estimatedTimeMins, plural, one {minuto} other {minutos}}" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} seguindo" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 -msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" msgstr "" -#: src/view/shell/Drawer.tsx:461 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 +msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" +msgstr "{likeCount, plural, one {Curtido por # usuário} other {Curtido por # usuários}}" + +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} não lidas" -#: src/view/screens/PreferencesFollowingFeed.tsx:67 -msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:67 +msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" +msgstr "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" + +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "<0/> membros" -#: src/view/shell/Drawer.tsx:101 -msgid "<0>{0} {1, plural, one {follower} other {followers}}" +#: src/screens/StarterPack/Wizard/index.tsx:485 +#~ msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" msgstr "" -#: src/view/shell/Drawer.tsx:112 +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:497 +#~ msgid "<0>{0}, <1>{1}, and {2} {3, plural, one {other} other {others}} are included in your starter pack" +#~ msgstr "" + +#: src/view/shell/Drawer.tsx:100 +msgid "<0>{0} {1, plural, one {follower} other {followers}}" +msgstr "<0>{0} {1, plural, one {seguidor} other {seguidores}}" + +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" +msgstr "<0>{0} {1, plural, one {seguindo} other {seguindo}}" + +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" msgstr "" #: src/view/shell/Drawer.tsx:96 #~ msgid "<0>{0} following" #~ msgstr "<0>{0} seguindo" +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "" + #: src/components/ProfileHoverCard/index.web.tsx:437 #~ msgid "<0>{followers} <1>{pluralizedFollowers}" #~ msgstr "<0>{followers} <1>{pluralizedFollowers}" @@ -141,67 +240,75 @@ msgstr "" #: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." -msgstr "" +msgstr "<0>Não se aplica. Este aviso só funciona para posts com mídia." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:21 #~ msgid "<0>Welcome to<1>Bluesky" #~ msgstr "<0>Bem-vindo ao<1>Bluesky" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "⚠Usuário Inválido" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" +msgstr "Confirmação do 2FA" + +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" msgstr "" -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "Acessar links de navegação e configurações" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "Acessar perfil e outros links de navegação" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "Acessibilidade" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" -msgstr "" +msgstr "Configurações de acessibilidade" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" -msgstr "" +msgstr "Configurações de acessibilidade" #: src/components/moderation/LabelsOnMe.tsx:42 #~ msgid "account" #~ msgstr "conta" -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "Conta" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "Conta bloqueada" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "Você está seguindo esta conta" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "Conta silenciada" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "Conta Silenciada" @@ -217,37 +324,46 @@ msgstr "Configurações da conta" msgid "Account removed from quick access" msgstr "Conta removida do acesso rápido" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "Conta desbloqueada" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "Você não segue mais esta conta" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "Conta dessilenciada" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "Adicionar" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Adicionar um aviso de conteúdo" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "Adicionar um usuário a esta lista" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "Adicionar conta" @@ -256,17 +372,17 @@ msgstr "Adicionar conta" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Adicionar texto alternativo" #: src/view/com/composer/GifAltText.tsx:175 #~ msgid "Add ALT text" -#~ msgstr "" +#~ msgstr "Adicionar texto alternativo" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Adicionar Senha de Aplicativo" @@ -286,24 +402,36 @@ msgstr "Adicionar palavra silenciada para as configurações selecionadas" msgid "Add muted words and tags" msgstr "Adicionar palavras/tags silenciadas" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/StarterPack/Wizard/index.tsx:197 +#~ msgid "Add people to your starter pack that you think others will enjoy following" +#~ msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" +msgstr "Utilizar feeds recomendados" + +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" msgstr "" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" -msgstr "" +msgstr "Adicionar o feed padrão com as pessoas que você segue" #: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Adicione o seguinte registro DNS ao seu domínio:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "Adicionar às Listas" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" msgstr "Adicionar aos meus feeds" @@ -311,40 +439,66 @@ msgstr "Adicionar aos meus feeds" #~ msgid "Added" #~ msgstr "Adicionado" -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "Adicionado à lista" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" msgstr "Adicionado aos meus feeds" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Ajuste o número de curtidas para que uma resposta apareça no seu feed." #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Conteúdo Adulto" +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "" + #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." msgstr "O conteúdo adulto está desabilitado." -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "Avançado" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." msgstr "Todos os feeds que você salvou, em um único lugar." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "Já tem um código?" @@ -354,19 +508,19 @@ msgstr "Já autenticado como @{0}" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" msgstr "Texto alternativo" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" -msgstr "" +msgstr "Texto alternativo" #: src/view/com/composer/photos/Gallery.tsx:224 msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." @@ -381,117 +535,173 @@ msgstr "Um email foi enviado para {0}. Ele inclui um código de confirmação qu msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Um email foi enviado para seu email anterior, {0}. Ele inclui um código de confirmação que você pode inserir abaixo." -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" +msgstr "Tivemos um problema" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:79 +#~ msgid "An error occurred while saving the image." +#~ msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" msgstr "" #: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." +#~ msgid "An error occurred while trying to delete the message. Please try again." +#~ msgstr "Ocorreu um erro ao tentar deletar esta mensagem. Por favor, tente novamente." + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" msgstr "" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "Outro problema" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Ocorreu um problema, por favor tente novamente." -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" -msgstr "" +msgstr "ocorreu um erro desconhecido" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "e" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "Animais" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" -msgstr "" +msgstr "GIF animado" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "Comportamento anti-social" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "Idioma do aplicativo" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Senha de Aplicativo excluída" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "O nome da Senha de Aplicativo só pode conter letras, números, traços e sublinhados." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "O nome da Senha de Aplicativo precisa ter no mínimo 4 caracteres." -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "Configurações de Senha de Aplicativo" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "Senhas de Aplicativos" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "Contestar" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "Contestar rótulo \"{0}\"" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" -msgstr "" +msgstr "Contestação enviada." #: src/components/moderation/LabelsOnMeDialog.tsx:193 #~ msgid "Appeal submitted." #~ msgstr "Contestação enviada." -#: src/view/screens/Settings/index.tsx:430 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "" + +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "Aparência" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" -msgstr "" +msgstr "Utilizar feeds recomendados" -#: src/view/screens/AppPasswords.tsx:265 +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +#~ msgid "Are you sure you want delete this starter pack?" +#~ msgstr "" + +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Tem certeza de que deseja excluir a senha do aplicativo \"{name}\"?" #: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgstr "Tem certeza de que deseja excluir esta mensagem? A mensagem será excluída para você, mas não para os outros participantes." + +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" msgstr "" #: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgstr "Tem certeza de que deseja sair desta conversa? Suas mensagens serão excluídas para você, mas não para os outros participantes." + +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Tem certeza que deseja remover {0} dos seus feeds?" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "Tem certeza que deseja descartar este rascunho?" @@ -503,7 +713,8 @@ msgstr "Tem certeza?" msgid "Are you writing in <0>{0}?" msgstr "Você está escrevendo em <0>{0}?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "Arte" @@ -511,32 +722,35 @@ msgstr "Arte" msgid "Artistic or non-erotic nudity." msgstr "Nudez artística ou não erótica." -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "No mínimo 3 caracteres" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "Voltar" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "Com base no seu interesse em {interestsText}" +#~ msgid "Based on your interest in {interestsText}" +#~ msgstr "Com base no seu interesse em {interestsText}" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "Básicos" @@ -544,56 +758,56 @@ msgstr "Básicos" msgid "Birthday" msgstr "Aniversário" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "Aniversário:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "Bloquear" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" -msgstr "" +msgstr "Bloquear conta" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "Bloquear Conta" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "Bloquear Conta?" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "Bloquear contas" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "Lista de bloqueio" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "Bloquear estas contas?" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "Bloqueado" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "Contas bloqueadas" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "Contas Bloqueadas" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Contas bloqueadas não podem te responder, mencionar ou interagir com você." @@ -601,19 +815,19 @@ msgstr "Contas bloqueadas não podem te responder, mencionar ou interagir com vo msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Contas bloqueadas não podem te responder, mencionar ou interagir com você. Você não verá o conteúdo deles e eles serão impedidos de ver o seu." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "Post bloqueado." -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Bloquear não previne este rotulador de rotular a sua conta." -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Bloqueios são públicos. Contas bloqueadas não podem te responder, mencionar ou interagir com você." -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." msgstr "Bloquear não previne rótulos de serem aplicados na sua conta, mas vai impedir esta conta de interagir com você." @@ -630,6 +844,10 @@ msgstr "Bluesky" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "Bluesky é uma rede aberta que permite a escolha do seu provedor de hospedagem. Desenvolvedores já conseguem utilizar a versão beta de hospedagem própria." +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "" + #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 #~ msgid "Bluesky is flexible." @@ -645,7 +863,11 @@ msgstr "Bluesky é uma rede aberta que permite a escolha do seu provedor de hosp #~ msgid "Bluesky is public." #~ msgstr "Bluesky é público." -#: src/screens/Moderation/index.tsx:533 +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "" + +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "O Bluesky não mostrará seu perfil e publicações para usuários desconectados. Outros aplicativos podem não honrar esta solicitação. Isso não torna a sua conta privada." @@ -657,20 +879,39 @@ msgstr "Desfocar imagens" msgid "Blur images and filter from feeds" msgstr "Desfocar imagens e filtrar dos feeds" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "Livros" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 -msgid "Browse other feeds" +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" msgstr "" +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 +msgid "Browse other feeds" +msgstr "Navegar por outros feeds" + #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "Empresarial" -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "por -" @@ -683,10 +924,10 @@ msgid "By {0}" msgstr "Por {0}" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" +#~ msgid "by @{0}" +#~ msgstr "por @{0}" -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "por <0/>" @@ -694,7 +935,7 @@ msgstr "por <0/>" msgid "By creating an account you agree to the {els}." msgstr "Ao criar uma conta, você concorda com os {els}." -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "por você" @@ -702,7 +943,7 @@ msgstr "por você" msgid "Camera" msgstr "Câmera" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Só pode conter letras, números, espaços, traços e sublinhados. Deve ter pelo menos 4 caracteres, mas não mais de 32 caracteres." @@ -710,14 +951,15 @@ msgstr "Só pode conter letras, números, espaços, traços e sublinhados. Deve #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -725,23 +967,23 @@ msgstr "Só pode conter letras, números, espaços, traços e sublinhados. Deve #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "Cancelar" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "Cancelar" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "Cancelar exclusão da conta" @@ -757,12 +999,16 @@ msgstr "Cancelar corte da imagem" msgid "Cancel profile editing" msgstr "Cancelar edição do perfil" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "Cancelar citação" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "Cancelar busca" @@ -774,17 +1020,17 @@ msgstr "Cancela a abertura do link" msgid "Change" msgstr "Trocar" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "Alterar" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "Alterar usuário" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "Alterar Usuário" @@ -792,12 +1038,12 @@ msgstr "Alterar Usuário" msgid "Change my email" msgstr "Alterar meu email" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "Alterar senha" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "Alterar Senha" @@ -809,29 +1055,39 @@ msgstr "Trocar idioma do post para {0}" msgid "Change Your Email" msgstr "Altere o Seu Email" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" -msgstr "" +msgstr "Chat" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" -msgstr "" +msgstr "Chat silenciado" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" +msgstr "Configurações do Chat" + +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" msgstr "" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" -msgstr "" +msgstr "Chat dessilenciado" #: src/screens/Messages/Conversation/index.tsx:26 #~ msgid "Chat with {chatId}" -#~ msgstr "" +#~ msgstr "Chat com {chatId}" -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "Verificar minha situação" @@ -843,23 +1099,43 @@ msgstr "Verificar minha situação" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Confira alguns usuários recomendados. Siga-os para ver usuários semelhantes." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." -msgstr "" +msgstr "Um código de login foi enviado para o seu e-mail. Insira-o aqui." -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Verifique em sua caixa de entrada um e-mail com o código de confirmação abaixo:" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "Escolha \"Todos\" ou \"Ninguém\"" +#: src/view/com/modals/Threadgate.tsx:75 +#~ msgid "Choose \"Everybody\" or \"Nobody\"" +#~ msgstr "Escolha \"Todos\" ou \"Ninguém\"" + +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "Escolher Serviço" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." msgstr "Escolha os algoritmos que geram seus feeds customizados." @@ -870,42 +1146,47 @@ msgstr "Escolha os algoritmos que geram seus feeds customizados." #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 msgid "Choose this color as your avatar" +msgstr "Selecionar esta cor como seu avatar" + +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "Escolha seus feeds principais" +#~ msgid "Choose your main feeds" +#~ msgstr "Escolha seus feeds principais" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "Escolha sua senha" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "Limpar todos os dados de armazenamento legados" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "Limpar todos os dados de armazenamento legados (reinicie em seguida)" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "Limpar todos os dados de armazenamento" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "Limpar todos os dados de armazenamento (reinicie em seguida)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "Limpar busca" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "Limpa todos os dados antigos" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "Limpa todos os dados antigos" @@ -913,10 +1194,18 @@ msgstr "Limpa todos os dados antigos" msgid "click here" msgstr "clique aqui" -#: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +#~ msgid "Click here to add one." +#~ msgstr "Clique aqui para resolver isso." + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Clique aqui para abrir o menu da tag {tag}" @@ -925,19 +1214,33 @@ msgstr "Clique aqui para abrir o menu da tag {tag}" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "Clique aqui para abrir o menu da tag #{tag}" -#: src/screens/Onboarding/index.tsx:47 +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "" + +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "Clima e tempo" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "Fechar" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "Fechar janela ativa" @@ -949,13 +1252,14 @@ msgstr "Fechar alerta" msgid "Close bottom drawer" msgstr "Fechar parte inferior" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" -msgstr "" +msgstr "Fechar janela" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" -msgstr "" +msgstr "Fechar janela de GIFs" #: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:36 msgid "Close image" @@ -965,6 +1269,10 @@ msgstr "Fechar imagem" msgid "Close image viewer" msgstr "Fechar visualizador de imagens" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "Fechar o painel de navegação" @@ -982,7 +1290,7 @@ msgstr "Fecha barra de navegação inferior" msgid "Closes password update alert" msgstr "Fecha alerta de troca de senha" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "Fecha o editor de post e descarta o rascunho" @@ -990,42 +1298,48 @@ msgstr "Fecha o editor de post e descarta o rascunho" msgid "Closes viewer for header image" msgstr "Fechar o visualizador de banner" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "Fecha lista de usuários da notificação" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "Comédia" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "Quadrinhos" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Diretrizes da Comunidade" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "Completar e começar a usar sua conta" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "Complete o captcha" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Escreva posts de até {MAX_GRAPHEME_LENGTH} caracteres" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "Escrever resposta" #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "Configure o filtro de conteúdo por categoria: {0}" +#~ msgid "Configure content filtering setting for category: {0}" +#~ msgstr "Configure o filtro de conteúdo por categoria: {0}" #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" @@ -1035,13 +1349,11 @@ msgstr "Configure o filtro de conteúdo por categoria: {name}" msgid "Configured in <0>moderation settings." msgstr "Configure no <0>painel de moderação." -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -1056,33 +1368,33 @@ msgstr "Confirmar Alterações" msgid "Confirm content language settings" msgstr "Confirmar configurações de idioma de conteúdo" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "Confirmar a exclusão da conta" -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "Confirme sua idade:" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "Confirme sua data de nascimento" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Código de confirmação" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "Conectando..." -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "Contatar suporte" @@ -1094,28 +1406,28 @@ msgstr "Contatar suporte" msgid "Content Blocked" msgstr "Conteúdo bloqueado" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "Filtros de conteúdo" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "Idiomas do Conteúdo" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "Conteúdo Indisponível" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "Aviso de Conteúdo" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "Avisos de conteúdo" @@ -1123,12 +1435,8 @@ msgstr "Avisos de conteúdo" msgid "Context menu backdrop, click to close the menu." msgstr "Fundo do menu, clique para fechá-lo." -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "Continuar" @@ -1136,41 +1444,47 @@ msgstr "Continuar" msgid "Continue as {0} (currently signed in)" msgstr "Continuar como {0} (já conectado)" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "Continuar para o próximo passo" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "Continuar para o próximo passo" +#~ msgid "Continue to the next step" +#~ msgstr "Continuar para o próximo passo" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" -msgstr "Continuar para o próximo passo sem seguir contas" +#~ msgid "Continue to the next step without following any accounts" +#~ msgstr "Continuar para o próximo passo sem seguir contas" -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" +msgstr "" + +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "Culinária" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Copiado" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "Versão do aplicativo copiada" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "Copiado" @@ -1178,11 +1492,12 @@ msgstr "Copiado" msgid "Copied!" msgstr "Copiado!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Copia senha de aplicativo" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Copiar" @@ -1195,64 +1510,98 @@ msgstr "Copiar {0}" msgid "Copy code" msgstr "Copiar código" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "Copiar link da lista" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "Copiar link do post" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" -msgstr "" +msgstr "Copiar texto da mensagem" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "Copiar texto do post" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Política de Direitos Autorais" -#: src/components/dms/ConvoMenu.tsx:80 -msgid "Could not leave chat" +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" msgstr "" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/components/dms/LeaveConvoPrompt.tsx:39 +msgid "Could not leave chat" +msgstr "Não foi possível sair deste chat" + +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" msgstr "Não foi possível carregar o feed" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "Não foi possível carregar a lista" #: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "" +#~ msgid "Could not load profiles. Please try again later." +#~ msgstr "Não foi possível carregar estes perfis. Por favor, tente novamente." -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" -msgstr "" +msgstr "Não foi possível silenciar este chat" #: src/components/dms/ConvoMenu.tsx:68 #~ msgid "Could not unmute chat" -#~ msgstr "" +#~ msgstr "Não foi possível dessilenciar este chat" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "Criar uma nova conta" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "Criar uma nova conta do Bluesky" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "Criar Conta" @@ -1261,11 +1610,15 @@ msgstr "Criar Conta" msgid "Create an account" msgstr "Criar conta" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" +msgstr "Criar um avatar" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Criar Senha de Aplicativo" @@ -1274,11 +1627,15 @@ msgstr "Criar Senha de Aplicativo" msgid "Create new account" msgstr "Criar uma nova conta" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/StarterPack/ShareDialog.tsx:158 +#~ msgid "Create QR code" +#~ msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "Criar denúncia para {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0} criada" @@ -1286,7 +1643,8 @@ msgstr "{0} criada" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "Cria uma prévia com miniatura. A prévia faz um link para {url}" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "Cultura" @@ -1299,8 +1657,8 @@ msgstr "Customizado" msgid "Custom domain" msgstr "Domínio personalizado" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Feeds customizados feitos pela comunidade te proporcionam novas experiências e te ajudam a encontrar o conteúdo que você mais ama." @@ -1308,8 +1666,8 @@ msgstr "Feeds customizados feitos pela comunidade te proporcionam novas experiê msgid "Customize media from external sites." msgstr "Configurar mídia de sites externos." -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "Escuro" @@ -1317,15 +1675,24 @@ msgstr "Escuro" msgid "Dark mode" msgstr "Modo escuro" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "Modo Escuro" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "Data de nascimento" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" msgstr "Testar Moderação" @@ -1333,14 +1700,17 @@ msgstr "Testar Moderação" msgid "Debug panel" msgstr "Painel de depuração" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "Excluir" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "Excluir a conta" @@ -1348,65 +1718,83 @@ msgstr "Excluir a conta" #~ msgid "Delete Account" #~ msgstr "Excluir a Conta" -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" -msgstr "" +msgstr "Excluir Conta <0>\"<1>{0}<2>\"" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Excluir senha de aplicativo" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Excluir senha de aplicativo?" -#: src/components/dms/MessageMenu.tsx:101 -msgid "Delete for me" +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" msgstr "" -#: src/view/screens/ProfileList.tsx:466 +#: src/components/dms/MessageMenu.tsx:124 +msgid "Delete for me" +msgstr "Excluir para mim" + +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "Excluir Lista" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" -msgstr "" +msgstr "Excluir mensagem" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" -msgstr "" +msgstr "Excluir mensagem para mim" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "Excluir minha conta" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "Excluir minha conta…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "Excluir post" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "Excluir esta lista?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "Excluir este post?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "Excluído" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." msgstr "Post excluído." -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1414,27 +1802,31 @@ msgstr "Descrição" #: src/view/com/composer/GifAltText.tsx:140 msgid "Descriptive alt text" -msgstr "" +msgstr "Texto alternativo" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "Você gostaria de dizer alguma coisa?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "Menos escuro" -#: src/view/screens/AccessibilitySettings.tsx:94 -msgid "Disable autoplay for GIFs" +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" msgstr "" +#: src/view/screens/AccessibilitySettings.tsx:107 +msgid "Disable autoplay for GIFs" +msgstr "Desabilitar autoplay em GIFs" + #: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" -msgstr "" +msgstr "Desabilitar 2FA via e-mail" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" -msgstr "" +msgstr "Desabilitar feedback tátil" #: src/view/screens/Settings/index.tsx:697 #~ msgid "Disable haptics" @@ -1447,32 +1839,50 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "Desabilitado" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "Descartar" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "Descartar rascunho?" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "Desencorajar aplicativos a mostrar minha conta para usuários desautenticados" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" msgstr "Descubra novos feeds" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "" + +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "Descubra Novos Feeds" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "Nome de exibição" @@ -1489,7 +1899,7 @@ msgstr "Painel DNS" msgid "Does not include nudity." msgstr "Não inclui nudez." -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "Não começa ou termina com um hífen" @@ -1503,30 +1913,27 @@ msgstr "Domínio verificado!" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "Feito" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "Feito" @@ -1535,18 +1942,22 @@ msgstr "Feito" msgid "Done{extraText}" msgstr "Feito{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "Baixar arquivo CAR" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "Solte para adicionar imagens" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "Devido a políticas da Apple, o conteúdo adulto só pode ser habilitado no site após terminar o cadastro." +#~ msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." +#~ msgstr "Devido a políticas da Apple, o conteúdo adulto só pode ser habilitado no site após terminar o cadastro." #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" @@ -1568,19 +1979,19 @@ msgstr "ex. Artista, amo cachorros, leitora ávida." msgid "E.g. artistic nudes." msgstr "Ex. nudez artística." -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "ex. Perfis Legais" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "ex. Chatos" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "ex. Os perfis que eu mais gosto." -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "ex. Perfis que enchem o saco." @@ -1588,32 +1999,45 @@ msgstr "ex. Perfis que enchem o saco." msgid "Each code works once. You'll receive more invite codes periodically." msgstr "Cada convite só funciona uma vez. Você receberá mais convites periodicamente." +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "Editar" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "Editar avatar" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "Editar imagem" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "Editar detalhes da lista" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "Editar lista de moderação" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" msgstr "Editar Meus Feeds" @@ -1621,25 +2045,37 @@ msgstr "Editar Meus Feeds" msgid "Edit my profile" msgstr "Editar meu perfil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "Editar perfil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "Editar Perfil" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "Editar Feeds Salvos" +#: src/view/screens/Feeds.tsx:416 +#~ msgid "Edit Saved Feeds" +#~ msgstr "Editar Feeds Salvos" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "Editar lista de usuários" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "Editar seu nome" @@ -1648,18 +2084,27 @@ msgstr "Editar seu nome" msgid "Edit your profile description" msgstr "Editar sua descrição" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "Educação" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "E-mail" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" -msgstr "" +msgstr "2FA via e-mail desabilitado" #: src/screens/Login/ForgotPasswordForm.tsx:99 msgid "Email address" @@ -1678,7 +2123,7 @@ msgstr "E-mail Atualizado" msgid "Email verified" msgstr "E-mail verificado" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "E-mail:" @@ -1687,8 +2132,8 @@ msgid "Embed HTML code" msgstr "Código HTML para incorporação" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" msgstr "Incorporar post" @@ -1700,29 +2145,34 @@ msgstr "Incorpore este post no seu site. Basta copiar o trecho abaixo e colar no msgid "Enable {0} only" msgstr "Habilitar somente {0}" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "Habilitar conteúdo adulto" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "Habilitar Conteúdo Adulto" +#~ msgid "Enable Adult Content" +#~ msgstr "Habilitar Conteúdo Adulto" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "Habilitar conteúdo adulto nos feeds" +#~ msgid "Enable adult content in your feeds" +#~ msgstr "Habilitar conteúdo adulto nos feeds" #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 msgid "Enable external media" msgstr "Habilitar mídia externa" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "Habilitar mídia para" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "Ative esta configuração para ver respostas apenas entre as pessoas que você segue." @@ -1730,7 +2180,9 @@ msgstr "Ative esta configuração para ver respostas apenas entre as pessoas que msgid "Enable this source only" msgstr "Habilitar mídia somente para este site" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "Habilitado" @@ -1738,7 +2190,15 @@ msgstr "Habilitado" msgid "End of feed" msgstr "Fim do feed" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/components/Lists.tsx:52 +#~ msgid "End of list" +#~ msgstr "" + +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Insira um nome para esta Senha de Aplicativo" @@ -1755,7 +2215,7 @@ msgstr "Digite uma palavra ou tag" msgid "Enter Confirmation Code" msgstr "Insira o código de confirmação" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "Digite o código recebido para alterar sua senha." @@ -1772,7 +2232,7 @@ msgid "Enter your birth date" msgstr "Insira seu aniversário" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "Digite seu endereço de e-mail" @@ -1788,32 +2248,45 @@ msgstr "Digite seu novo endereço de e-mail abaixo." msgid "Enter your username and password" msgstr "Digite seu nome de usuário e senha" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" -msgstr "" +msgstr "Não foi possível salvar o arquivo" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "Não foi possível processar o captcha." -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "Erro:" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "Todos" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "Menções ou respostas excessivas" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" -msgstr "" +msgstr "Mensagens excessivas ou indesejadas" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "Sair do processo de deleção da conta" @@ -1829,8 +2302,8 @@ msgstr "Sair do processo de cortar imagem" msgid "Exits image view" msgstr "Sair do visualizador de imagem" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "Sair da busca" @@ -1838,11 +2311,19 @@ msgstr "Sair da busca" msgid "Expand alt text" msgstr "Expandir texto alternativo" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "Mostrar ou esconder o post a que você está respondendo" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "Imagens explícitas ou potencialmente perturbadoras." @@ -1851,12 +2332,12 @@ msgstr "Imagens explícitas ou potencialmente perturbadoras." msgid "Explicit sexual images." msgstr "Imagens sexualmente explícitas." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "Exportar meus dados" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "Exportar Meus Dados" @@ -1866,83 +2347,143 @@ msgid "External Media" msgstr "Mídia Externa" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "Mídias externas podem permitir que sites coletem informações sobre você e seu dispositivo. Nenhuma informação é enviada ou solicitada até que você pressione o botão de \"play\"." -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "Preferências de Mídia Externa" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "Preferências de mídia externa" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "Não foi possível criar senha de aplicativo." -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "Não foi possível criar a lista. Por favor tente novamente." -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" -msgstr "" +msgstr "Não foi possível excluir esta mensagem" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "Não foi possível excluir o post, por favor tente novamente." -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" +msgstr "Não foi possível carregar os GIFs" + +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" msgstr "" #: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." -msgstr "" +#~ msgid "Failed to load past messages." +#~ msgstr "Não foi possível carregar mensagens antigas." #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:110 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:143 #~ msgid "Failed to load recommended feeds" #~ msgstr "Falha ao carregar feeds recomendados" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "Não foi possível salvar a imagem: {0}" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +#~ msgid "Failed to send message(s)." +#~ msgstr "Não foi possível enviar sua mensagem." + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "Feed" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "Feed por {0}" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "Feed offline" +#: src/view/screens/Feeds.tsx:709 +#~ msgid "Feed offline" +#~ msgstr "Feed offline" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "Comentários" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" msgstr "Feeds" @@ -1950,40 +2491,48 @@ msgstr "Feeds" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Os feeds são criados por usuários para curadoria de conteúdo. Escolha alguns feeds que você acha interessantes." -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Os feeds são algoritmos personalizados que os usuários com um pouco de experiência em programação podem criar. <0/> para mais informações." #: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" -msgstr "Feeds podem ser de assuntos específicos também!" +#~ msgid "Feeds can be topical as well!" +#~ msgstr "Feeds podem ser de assuntos específicos também!" + +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Conteúdo do arquivo" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" -msgstr "" +msgstr "Arquivo salvo com sucesso!" #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Filtrar dos feeds" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "Finalizando" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "Encontre contas para seguir" -#: src/view/screens/Search/Search.tsx:462 -msgid "Find posts and users on Bluesky" +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." msgstr "" +#: src/view/screens/Search/Search.tsx:439 +msgid "Find posts and users on Bluesky" +msgstr "Encontre posts e usuários no Bluesky" + #: src/view/screens/Search/Search.tsx:589 #~ msgid "Find users on Bluesky" #~ msgstr "Encontrar usuários no Bluesky" @@ -1996,19 +2545,27 @@ msgstr "" #~ msgid "Finding similar accounts..." #~ msgstr "Procurando contas semelhantes..." -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." msgstr "Ajuste o conteúdo que você vê na sua tela inicial." -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "Ajuste as threads." -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "Fitness" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "Flexível" @@ -2021,112 +2578,172 @@ msgstr "Virar horizontalmente" msgid "Flip vertically" msgstr "Virar verticalmente" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "Seguir" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "Seguir" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Seguir {0}" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "Seguir Conta" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" -msgstr "Seguir Todas" +#~ msgid "Follow All" +#~ msgstr "Seguir Todas" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "Seguir De Volta" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" -msgstr "Siga algumas contas e continue para o próximo passo" +#~ msgid "Follow selected accounts and continue to the next step" +#~ msgstr "Siga algumas contas e continue para o próximo passo" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:65 #~ msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." #~ msgstr "Comece seguindo alguns usuários. Mais usuários podem ser recomendados com base em quem você acha interessante." -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" -msgstr "Seguido por {0}" +#: src/components/KnownFollowers.tsx:169 +#~ msgid "Followed by" +#~ msgstr "" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/view/com/profile/ProfileCard.tsx:190 +#~ msgid "Followed by {0}" +#~ msgstr "Seguido por {0}" + +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" +msgstr "" + +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "Usuários seguidos" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "Somente usuários seguidos" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "seguiu você" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Seguidores" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "Seguindo" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" msgstr "Seguindo {0}" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" msgstr "Configurações do feed principal" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" msgstr "Configurações do feed principal" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "Segue você" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "Segue Você" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "Comida" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Por motivos de segurança, precisamos enviar um código de confirmação para seu endereço de e-mail." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Por motivos de segurança, você não poderá ver esta senha novamente. Se você perder esta senha, terá que gerar uma nova." @@ -2135,15 +2752,15 @@ msgstr "Por motivos de segurança, você não poderá ver esta senha novamente. msgid "Forgot Password" msgstr "Esqueci a Senha" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "Esqueceu a senha?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "Esqueceu?" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "Frequentemente Posta Conteúdo Indesejado" @@ -2151,7 +2768,7 @@ msgstr "Frequentemente Posta Conteúdo Indesejado" msgid "From @{sanitizedAuthor}" msgstr "De @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "Por <0/>" @@ -2160,48 +2777,77 @@ msgstr "Por <0/>" msgid "Gallery" msgstr "Galeria" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Vamos começar" -#: src/screens/Onboarding/StepProfile/index.tsx:228 -msgid "Give your profile a face" +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" msgstr "" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 +msgid "Give your profile a face" +msgstr "Dê uma cara nova pro seu perfil" + +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "Violações flagrantes da lei ou dos termos de serviço" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "Voltar" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "Voltar" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:189 +#~ msgid "Go back to previous screen" +#~ msgstr "" + +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "Voltar para o passo anterior" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "Voltar para a tela inicial" @@ -2215,129 +2861,139 @@ msgstr "Voltar para a tela inicial" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "Ir para @{queryMaybleHandle}" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "Próximo" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" +msgstr "Ir para este perfil" + +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" msgstr "" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" -msgstr "" +msgstr "Ir para o perfil deste usuário" #: src/lib/moderation/useGlobalLabelStrings.ts:46 msgid "Graphic Media" msgstr "Conteúdo Gráfico" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Usuário" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" -msgstr "" +msgstr "Feedback tátil" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "Assédio, intolerância ou \"trollagem\"" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "Hashtag" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "Hashtag: #{tag}" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "Precisa de ajuda?" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "Ajuda" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." -msgstr "" +msgstr "As pessoas não vão achar que você é um bot se você criar um avatar ou fazer upload de uma imagem." #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "Aqui estão algumas contas para você seguir" +#~ msgid "Here are some accounts for you to follow" +#~ msgstr "Aqui estão algumas contas para você seguir" #: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "Aqui estão alguns feeds de assuntos. Você pode seguir quantos quiser." +#~ msgid "Here are some popular topical feeds. You can choose to follow as many as you like." +#~ msgstr "Aqui estão alguns feeds de assuntos. Você pode seguir quantos quiser." #: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "Aqui estão alguns feeds de assuntos baseados nos seus interesses: {interestsText}. Você pode seguir quantos quiser." +#~ msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." +#~ msgstr "Aqui estão alguns feeds de assuntos baseados nos seus interesses: {interestsText}. Você pode seguir quantos quiser." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Aqui está a sua senha de aplicativo." -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "Ocultar" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "Esconder" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "Ocultar post" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "Esconder o conteúdo" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "Ocultar este post?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "Ocultar lista de usuários" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Hmm, ocorreu algum problema ao entrar em contato com o servidor deste feed. Por favor, avise o criador do feed sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Hmm, o servidor do feed parece estar mal configurado. Por favor, avise o criador do feed sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Hmm, o servidor do feed parece estar offline. Por favor, avise o criador do feed sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Hmm, o servidor do feed teve algum problema. Por favor, avise o criador do feed sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, estamos com problemas para encontrar este feed. Ele pode ter sido excluído." -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." msgstr "Hmmmm, parece que estamos com problemas pra carregar isso. Veja mais detalhes abaixo. Se o problema continuar, por favor, entre em contato." @@ -2345,11 +3001,12 @@ msgstr "Hmmmm, parece que estamos com problemas pra carregar isso. Veja mais det msgid "Hmmmm, we couldn't load that moderation service." msgstr "Hmmmm, não foi possível carregar este serviço de moderação." -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "Página Inicial" @@ -2358,8 +3015,8 @@ msgid "Host:" msgstr "Host:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Provedor de hospedagem" @@ -2382,9 +3039,10 @@ msgstr "Eu tenho um código" msgid "I have my own domain" msgstr "Eu tenho meu próprio domínio" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" -msgstr "" +msgstr "Entendi" #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" @@ -2398,43 +3056,55 @@ msgstr "Se nenhum for selecionado, adequado para todas as idades." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Se você ainda não é um adulto de acordo com as leis do seu país, seu responsável ou guardião legal deve ler estes Termos por você." -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "Se você deletar esta lista, você não poderá recuperá-la." -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "Se você remover este post, você não poderá recuperá-la." -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Se você quiser alterar sua senha, enviaremos um código que para verificar sua identidade." -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "Ilegal e Urgente" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "Imagem" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Texto alternativo da imagem" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "Falsificação de identidade ou alegações falsas sobre identidade ou filiação" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "Insira o código enviado para o seu e-mail para redefinir sua senha" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "Insira o código de confirmação para excluir sua conta" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Insira um nome para a senha de aplicativo" @@ -2442,23 +3112,23 @@ msgstr "Insira um nome para a senha de aplicativo" msgid "Input new password" msgstr "Insira a nova senha" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "Insira a senha para excluir a conta" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" -msgstr "" +msgstr "Insira o código que você recebeu por e-mail" + +#: src/screens/Login/LoginForm.tsx:221 +#~ msgid "Input the password tied to {identifier}" +#~ msgstr "Insira a senha da conta {identifier}" #: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "Insira a senha da conta {identifier}" - -#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "Insira o usuário ou e-mail que você cadastrou" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "Insira sua senha" @@ -2466,20 +3136,24 @@ msgstr "Insira sua senha" msgid "Input your preferred hosting provider" msgstr "Insira seu provedor de hospedagem" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "Insira o usuário" -#: src/screens/Login/LoginForm.tsx:129 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 -msgid "Invalid 2FA confirmation code." +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/screens/Login/LoginForm.tsx:140 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 +msgid "Invalid 2FA confirmation code." +msgstr "Código de confirmação inválido." + +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "Post inválido" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "Credenciais inválidas" @@ -2487,11 +3161,11 @@ msgstr "Credenciais inválidas" msgid "Invite a Friend" msgstr "Convide um Amigo" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "Convite" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Convite inválido. Verifique se você o inseriu corretamente e tente novamente." @@ -2503,15 +3177,43 @@ msgstr "Convites: {0} disponíveis" msgid "Invite codes: 1 available" msgstr "Convites: 1 disponível" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." -msgstr "Mostra os posts de quem você segue conforme acontecem." +#~ msgid "It shows posts from the people you follow as they happen." +#~ msgstr "Mostra os posts de quem você segue conforme acontecem." + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." +msgstr "" #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "Carreiras" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "" + +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "Jornalismo" @@ -2519,19 +3221,19 @@ msgstr "Jornalismo" #~ msgid "label has been placed on this {labelTarget}" #~ msgstr "rótulo aplicado neste {labelTarget}" -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "Rotulado por {0}." -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "Rotulado pelo autor." -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "Rótulos" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "Rótulos são identificações aplicadas sobre perfis e conteúdos. Eles são utilizados para esconder, avisar e categorizar o conteúdo da rede." @@ -2539,33 +3241,33 @@ msgstr "Rótulos são identificações aplicadas sobre perfis e conteúdos. Eles #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "rótulos foram aplicados neste {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "Rótulos sobre sua conta" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "Rótulos sobre seu conteúdo" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "Seleção de idioma" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "Configuração de Idioma" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "Configurações de Idiomas" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "Idiomas" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "Mais recentes" @@ -2573,33 +3275,40 @@ msgstr "Mais recentes" msgid "Learn More" msgstr "Saiba Mais" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "Saiba mais sobre a decisão de moderação aplicada neste conteúdo." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Saiba mais sobre este aviso" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "Saiba mais sobre o que é público no Bluesky." -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "Saiba mais." -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" +msgstr "Sair" + +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" -msgstr "" +msgstr "Sair desta conversa" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." @@ -2609,24 +3318,29 @@ msgstr "Deixe todos desmarcados para ver qualquer idioma." msgid "Leaving Bluesky" msgstr "Saindo do Bluesky" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "na sua frente." -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Armazenamento limpo, você precisa reiniciar o app agora." +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "Vamos redefinir sua senha!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "Vamos lá!" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "Claro" @@ -2634,14 +3348,23 @@ msgstr "Claro" #~ msgid "Like" #~ msgstr "Curtir" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "" + +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "Curtir este feed" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "Curtido por" @@ -2665,75 +3388,92 @@ msgstr "Curtido Por" #~ msgid "Liked by {likeCount} {0}" #~ msgstr "Curtido por {likeCount} {0}" -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" msgstr "curtiram seu feed" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" msgstr "curtiu seu post" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "Curtidas" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "Curtidas neste post" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "Lista" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "Avatar da lista" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "Lista bloqueada" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "Lista por {0}" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "Lista excluída" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "Lista silenciada" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "Nome da lista" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "Lista desbloqueada" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "Lista dessilenciada" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "Listas" -#: src/view/screens/Notifications.tsx:159 +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "Carregar novas notificações" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "Carregar novos posts" @@ -2741,18 +3481,23 @@ msgstr "Carregar novos posts" msgid "Loading..." msgstr "Carregando..." -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "Registros" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "Sair" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "Visibilidade do seu perfil" @@ -2760,9 +3505,9 @@ msgstr "Visibilidade do seu perfil" msgid "Login to account that is not listed" msgstr "Fazer login em uma conta que não está listada" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" -msgstr "" +msgstr "Segure para abrir o menu da tag #{tag}" #: src/screens/Login/SetNewPasswordForm.tsx:116 msgid "Looks like XXXXX-XXXXX" @@ -2770,14 +3515,22 @@ msgstr "Tem esse formato: XXXXX-XXXXX" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." -msgstr "" +msgstr "Parece que você não salvou um feed ainda! Dá uma olhada nas nossas recomendações ou veja mais abaixo." -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" -msgstr "" +msgstr "Parece que você desafixou todos os seus feeds, mas não esquenta, dá uma olhada nesses aqui! 😄" #: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." +#~ msgid "Looks like you're missing a following feed." +#~ msgstr "Parece que você está sem seu feed principal." + +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" msgstr "" #: src/view/com/modals/LinkWarning.tsx:79 @@ -2788,72 +3541,73 @@ msgstr "Certifique-se de onde está indo!" msgid "Manage your muted words and tags" msgstr "Gerencie suas palavras/tags silenciadas" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" -msgstr "" +msgstr "Marcar como lida" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "Mídia" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "usuários mencionados" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "Usuários mencionados" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "Menu" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 -msgid "Message deleted" +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" msgstr "" +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 +msgid "Message deleted" +msgstr "Mensagem excluída" + #: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Mensagem do servidor: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" -msgstr "" +msgstr "Caixa de texto da mensagem" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" -msgstr "" +msgstr "Mensagem longa demais" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" -msgstr "" +msgstr "Configurações das mensagens" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" -msgstr "" +msgstr "Mensagens" #: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "" +#~ msgid "Messaging settings" +#~ msgstr "Configurações das mensagens" -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "Conta Enganosa" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "Moderação" @@ -2861,56 +3615,57 @@ msgstr "Moderação" msgid "Moderation details" msgstr "Detalhes da moderação" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" msgstr "Lista de moderação por {0}" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "Lista de moderação por <0/>" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "Lista de moderação por você" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "Lista de moderação criada" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "Lista de moderação criada" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "Listas de moderação" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Listas de Moderação" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "Moderação" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "Moderação" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "Ferramentas de moderação" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "O moderador escolheu um aviso geral neste conteúdo." -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "Mais" @@ -2918,14 +3673,22 @@ msgstr "Mais" msgid "More feeds" msgstr "Mais feeds" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "Mais opções" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "Respostas mais curtidas primeiro" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "" + #: src/components/TagMenu/index.tsx:249 msgid "Mute" msgstr "Silenciar" @@ -2934,12 +3697,12 @@ msgstr "Silenciar" msgid "Mute {truncatedTag}" msgstr "Silenciar {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "Silenciar Conta" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "Silenciar contas" @@ -2947,6 +3710,11 @@ msgstr "Silenciar contas" msgid "Mute all {displayTag} posts" msgstr "Silenciar posts com {displayTag}" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" msgstr "Silenciar apenas tags" @@ -2955,16 +3723,16 @@ msgstr "Silenciar apenas tags" msgid "Mute in text & tags" msgstr "Silenciar texto e tags" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "Silenciar lista" #: src/components/dms/ConvoMenu.tsx:136 #: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "" +#~ msgid "Mute notifications" +#~ msgstr "Silenciar notificações" -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "Silenciar estas contas?" @@ -2976,25 +3744,25 @@ msgstr "Silenciar esta palavra no conteúdo de um post e tags" msgid "Mute this word in tags only" msgstr "Silenciar esta palavra apenas nas tags de um post" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" msgstr "Silenciar thread" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "Silenciar palavras/tags" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "Silenciada" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "Contas silenciadas" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "Contas Silenciadas" @@ -3003,15 +3771,15 @@ msgstr "Contas Silenciadas" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Contas silenciadas não aparecem no seu feed ou nas suas notificações. Suas contas silenciadas são completamente privadas." -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "Silenciado por \"{0}\"" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "Palavras/tags silenciadas" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Silenciar é privado. Contas silenciadas podem interagir com você, mas você não verá postagens ou receber notificações delas." @@ -3020,52 +3788,62 @@ msgstr "Silenciar é privado. Contas silenciadas podem interagir com você, mas msgid "My Birthday" msgstr "Meu Aniversário" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" msgstr "Meus Feeds" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "Meu Perfil" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" msgstr "Meus feeds salvos" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" msgstr "Meus Feeds Salvos" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "Nome" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "Nome é obrigatório" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "Nome ou Descrição Viola os Padrões da Comunidade" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "Natureza" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "Navega para próxima tela" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "Navega para seu perfil" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "Precisa denunciar uma violação de copyright?" @@ -3074,7 +3852,7 @@ msgstr "Precisa denunciar uma violação de copyright?" #~ msgid "Never lose access to your followers and data." #~ msgstr "Nunca perca o acesso aos seus seguidores e dados." -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "Nunca perca o acesso aos seus seguidores ou dados." @@ -3082,7 +3860,7 @@ msgstr "Nunca perca o acesso aos seus seguidores ou dados." msgid "Nevermind, create a handle for me" msgstr "Deixa pra lá, crie um usuário pra mim" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "Novo" @@ -3091,65 +3869,79 @@ msgstr "Novo" msgid "New" msgstr "Novo" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" +msgstr "Novo chat" + +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "Nova lista de moderação" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "Nova senha" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "Nova Senha" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "Novo post" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "Novo post" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "Novo Post" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "Nova lista de usuários" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "Respostas mais recentes primeiro" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "Notícias" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "Próximo" @@ -3162,17 +3954,17 @@ msgstr "Próximo" msgid "Next image" msgstr "Próxima imagem" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "Não" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "Sem descrição" @@ -3180,68 +3972,102 @@ msgstr "Sem descrição" msgid "No DNS Panel" msgstr "Não tenho painel de DNS" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." +msgstr "Nenhum GIF em destaque encontrado." + +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "Você não está mais seguindo {0}" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "No máximo 253 caracteres" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" +msgstr "Nenhuma mensagem ainda" + +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" msgstr "" -#: src/view/com/notifications/Feed.tsx:110 +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "Nenhuma notificação!" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "" + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Nenhum resultado" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Nenhum resultado encontrado" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "Nenhum resultado encontrado para \"{query}\"" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "Nenhum resultado encontrado para {query}" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." -msgstr "" +msgstr "Nenhum resultado encontrado para \"{search}\"." #: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "" +#~ msgid "No search results found for \"{searchText}\"." +#~ msgstr "Nenhum resultado encontrado para \"{searchText}\"." #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "Não, obrigado" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "Ninguém" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "Ninguém curtiu isso ainda. Você pode ser o primeiro!" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "Nudez não-erótica" @@ -3250,8 +4076,8 @@ msgstr "Nudez não-erótica" #~ msgid "Not Applicable." #~ msgstr "Não Aplicável." -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "Não encontrado" @@ -3260,35 +4086,65 @@ msgstr "Não encontrado" msgid "Not right now" msgstr "Agora não" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "Nota sobre compartilhamento" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: o Bluesky é uma rede aberta e pública. Esta configuração limita somente a visibilidade do seu conteúdo no site e aplicativo do Bluesky, e outros aplicativos podem não respeitar esta configuração. Seu conteúdo ainda poderá ser exibido para usuários não autenticados por outros aplicativos e sites." -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "Notificações" -#: src/components/dms/MessageItem.tsx:145 -msgid "Now" +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" msgstr "" +#: src/components/dms/MessageItem.tsx:169 +msgid "Now" +msgstr "Agora" + #: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Nudez" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "Nudez ou pornografia sem aviso aplicado" @@ -3300,17 +4156,17 @@ msgstr "Nudez ou pornografia sem aviso aplicado" msgid "Off" msgstr "Desligado" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "Opa!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "Opa! Algo deu errado." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "OK" @@ -3318,107 +4174,151 @@ msgstr "OK" msgid "Okay" msgstr "Ok" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "Respostas mais antigas primeiro" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "Resetar tutoriais" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "Uma ou mais imagens estão sem texto alternativo." -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" +msgstr "Apenas imagens .jpg ou .png são permitidas" + +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" msgstr "" #: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." -msgstr "Apenas {0} pode responder." +#~ msgid "Only {0} can reply." +#~ msgstr "Apenas {0} pode responder." -#: src/screens/Signup/StepHandle.tsx:98 +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "Contém apenas letras, números e hífens" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Opa, algo deu errado!" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "Opa!" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "Abrir" -#: src/screens/Onboarding/StepProfile/index.tsx:280 -msgid "Open avatar creator" +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" msgstr "" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Onboarding/StepProfile/index.tsx:277 +msgid "Open avatar creator" +msgstr "Abrir criador de avatar" + +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "Abrir seletor de emojis" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "Abrir opções do feed" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "Abrir links no navegador interno" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "Abrir opções de palavras/tags silenciadas" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "Abrir navegação" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "Abrir opções do post" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "Abre o storybook" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "Abrir registros do sistema" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "Abre {numItems} opções" -#: src/view/screens/Settings/index.tsx:501 -msgid "Opens accessibility settings" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" msgstr "" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Settings/index.tsx:512 +msgid "Opens accessibility settings" +msgstr "Abre as configurações de acessibilidade" + +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "Abre detalhes adicionais para um registro de depuração" #: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "Abre a lista de usuários nesta notificação" +#~ msgid "Opens an expanded list of users in this notification" +#~ msgstr "Abre a lista de usuários nesta notificação" #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "Abre a câmera do dispositivo" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "Abre o editor de post" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "Abre definições de idioma configuráveis" @@ -3426,7 +4326,7 @@ msgstr "Abre definições de idioma configuráveis" msgid "Opens device photo gallery" msgstr "Abre a galeria de fotos do dispositivo" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "Abre as configurações de anexos externos" @@ -3440,31 +4340,35 @@ msgstr "Abre o fluxo de criação de conta do Bluesky" msgid "Opens flow to sign into your existing Bluesky account" msgstr "Abre o fluxo de entrar na sua conta do Bluesky" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" -msgstr "" +msgstr "Abre a janela de seleção de GIFs" #: src/view/com/modals/InviteCodes.tsx:173 msgid "Opens list of invite codes" msgstr "Abre a lista de códigos de convite" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Abre modal de confirmar a exclusão da conta. Requer código enviado por email" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "Abre modal para troca da sua senha do Bluesky" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Abre modal para troca do seu usuário do Bluesky" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Abre modal para baixar os dados da sua conta do Bluesky" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "Abre modal para verificação de email" @@ -3472,28 +4376,28 @@ msgstr "Abre modal para verificação de email" msgid "Opens modal for using custom domain" msgstr "Abre modal para usar o domínio personalizado" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" msgstr "Abre configurações de moderação" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "Abre o formulário de redefinição de senha" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "Abre a tela para editar feeds salvos" +#: src/view/screens/Feeds.tsx:417 +#~ msgid "Opens screen to edit Saved Feeds" +#~ msgstr "Abre a tela para editar feeds salvos" -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" msgstr "Abre a tela com todos os feeds salvos" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "Abre as configurações de senha do aplicativo" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" msgstr "Abre as preferências do feed inicial" @@ -3502,36 +4406,53 @@ msgid "Opens the linked website" msgstr "Abre o link" #: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "" +#~ msgid "Opens the message settings page" +#~ msgstr "Abre a tela de configurações do chat" -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "Abre a página do storybook" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "Abre a página de log do sistema" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "Abre as preferências de threads" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "Opção {0} de {numItems}" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "Se quiser adicionar mais informações, digite abaixo:" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "Ou combine estas opções:" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "" + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "Outro" @@ -3539,11 +4460,15 @@ msgstr "Outro" msgid "Other account" msgstr "Outra conta" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "Outro..." -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "" + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Página não encontrada" @@ -3552,14 +4477,14 @@ msgstr "Página não encontrada" msgid "Page Not Found" msgstr "Página Não Encontrada" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "Senha" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "Senha Atualizada" @@ -3571,62 +4496,81 @@ msgstr "Senha atualizada" msgid "Password updated!" msgstr "Senha atualizada!" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" -msgstr "" +msgstr "Pausar" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "Pessoas" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "Pessoas seguidas por @{0}" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "Pessoas seguindo @{0}" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." msgstr "A permissão de galeria é obrigatória." -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "A permissão de galeria foi recusada. Por favor, habilite-a nas configurações do dispositivo." -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "Pets" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Imagens destinadas a adultos." -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "Fixar na tela inicial" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "Fixar na Tela Inicial" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "Feeds Fixados" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 -msgid "Play" +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" msgstr "" +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 +msgid "Play" +msgstr "Tocar" + #: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:123 msgid "Play {0}" msgstr "Reproduzir {0}" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/screens/Messages/Settings.tsx:97 +#: src/screens/Messages/Settings.tsx:104 +#~ msgid "Play notification sounds" +#~ msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" -msgstr "" +msgstr "Tocar ou pausar o GIF" #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:57 #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:58 @@ -3637,15 +4581,16 @@ msgstr "Reproduzir Vídeo" msgid "Plays the GIF" msgstr "Reproduz o GIF" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "Por favor, escolha seu usuário." -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "Por favor, escolha sua senha." -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "Por favor, complete o captcha de verificação." @@ -3653,11 +4598,11 @@ msgstr "Por favor, complete o captcha de verificação." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Por favor, confirme seu e-mail antes de alterá-lo. Este é um requisito temporário enquanto ferramentas de atualização de e-mail são adicionadas, e em breve será removido." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Por favor, insira um nome para a sua Senha de Aplicativo." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Por favor, insira um nome único para esta Senha de Aplicativo ou use nosso nome gerado automaticamente." @@ -3665,31 +4610,42 @@ msgstr "Por favor, insira um nome único para esta Senha de Aplicativo ou use no msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Por favor, insira uma palavra, tag ou frase para silenciar" -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "Por favor, digite o seu e-mail." -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "Por favor, digite sua senha também:" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Por favor, explique por que você acha que este rótulo foi aplicado incorrentamente por {0}" -#: src/lib/hooks/useAccountSwitcher.ts:48 -msgid "Please sign in as @{0}" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" msgstr "" +#: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 +msgid "Please sign in as @{0}" +msgstr "Por favor entre como @{0}" + #: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "Por favor, verifique seu e-mail" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "Aguarde até que a prévia de link termine de carregar" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "Política" @@ -3697,46 +4653,46 @@ msgstr "Política" msgid "Porn" msgstr "Pornografia" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "Postar" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" msgstr "Post" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "Post por {0}" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "Post por @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "Post excluído" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Post oculto" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" msgstr "Post Escondido por Palavra Silenciada" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" msgstr "Post Escondido por Você" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "Idioma do post" @@ -3744,8 +4700,8 @@ msgstr "Idioma do post" msgid "Post Languages" msgstr "Idiomas do Post" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Post não encontrado" @@ -3753,7 +4709,8 @@ msgstr "Post não encontrado" msgid "posts" msgstr "posts" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "Posts" @@ -3761,7 +4718,7 @@ msgstr "Posts" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Posts podem ser silenciados baseados no seu conteúdo, tags ou ambos." -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "Posts ocultados" @@ -3769,61 +4726,81 @@ msgstr "Posts ocultados" msgid "Potentially Misleading Link" msgstr "Link Potencialmente Enganoso" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "Trocar de provedor de hospedagem" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "Tentar novamente" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 #~ msgid "Press to Retry" -#~ msgstr "" +#~ msgstr "Tentar novamente" + +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Imagem anterior" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "Idioma Principal" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "Priorizar seus Seguidores" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "Privacidade" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Política de Privacidade" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "Processando..." -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "perfil" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "Perfil" @@ -3831,11 +4808,11 @@ msgstr "Perfil" msgid "Profile updated" msgstr "Perfil atualizado" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "Proteja a sua conta verificando o seu e-mail." -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "Público" @@ -3843,33 +4820,52 @@ msgstr "Público" msgid "Public, shareable lists of users to mute or block in bulk." msgstr "Listas públicas e compartilháveis para silenciar ou bloquear usuários em massa." -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." msgstr "Listas públicas e compartilháveis que geram feeds." -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "Publicar post" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "Publicar resposta" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "Citar post" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 -msgid "Quote post" -msgstr "Citar post" +#: src/view/com/modals/Repost.tsx:66 +#~ msgctxt "action" +#~ msgid "Quote post" +#~ msgstr "Citar post" #: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "Citar Post" +#~ msgctxt "action" +#~ msgid "Quote Post" +#~ msgstr "Citar Post" -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "Aleatório" @@ -3877,11 +4873,19 @@ msgstr "Aleatório" msgid "Ratios" msgstr "Índices" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" msgstr "" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "" + +#: src/components/dms/MessageReportDialog.tsx:149 +#~ msgid "Reason: {0}" +#~ msgstr "Motivo: {0}" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "Buscas Recentes" @@ -3893,20 +4897,39 @@ msgstr "Buscas Recentes" #~ msgid "Recommended Users" #~ msgstr "Usuários Recomendados" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "" + +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Remover" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "" + #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Remover conta" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "Remover avatar" @@ -3914,9 +4937,13 @@ msgstr "Remover avatar" msgid "Remove Banner" msgstr "Remover banner" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "Remover feed" @@ -3924,15 +4951,16 @@ msgstr "Remover feed" msgid "Remove feed?" msgstr "Remover feed?" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "Remover dos meus feeds" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "Remover dos meus feeds?" @@ -3940,7 +4968,7 @@ msgstr "Remover dos meus feeds?" msgid "Remove image" msgstr "Remover imagem" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "Remover visualização da imagem" @@ -3948,11 +4976,20 @@ msgstr "Remover visualização da imagem" msgid "Remove mute word from your list" msgstr "Remover palavra silenciada da lista" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 -msgid "Remove quote" +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" msgstr "" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 +msgid "Remove quote" +msgstr "Remover citação" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "Desfazer repost" @@ -3960,48 +4997,60 @@ msgstr "Desfazer repost" msgid "Remove this feed from your saved feeds" msgstr "Remover este feed dos feeds salvos" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "Removido da lista" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" msgstr "Removido dos meus feeds" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" msgstr "Removido dos feeds salvos" #: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "Remover miniatura de {0}" +#~ msgid "Removes default thumbnail from {0}" +#~ msgstr "Remover miniatura de {0}" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" +msgstr "Remove o post citado" + +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" msgstr "" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 msgid "Replace with Discover" -msgstr "" +msgstr "Trocar pelo Discover" -#: src/view/screens/Profile.tsx:194 +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "Respostas" -#: src/view/com/threadgate/WhoCanReply.tsx:98 +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "" + +#: src/view/com/threadgate/WhoCanReply.tsx:123 +#~ msgid "Replies on this thread are disabled" +#~ msgstr "" + +#: src/components/WhoCanReply.tsx:243 msgid "Replies to this thread are disabled" msgstr "Respostas para esta thread estão desativadas" -#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "Responder" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "Filtros de Resposta" @@ -4011,94 +5060,118 @@ msgstr "Filtros de Resposta" #~ msgid "Reply to <0/>" #~ msgstr "Responder <0/>" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" +msgstr "Responder <0><1/>" + +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" msgstr "" -#: src/components/dms/MessageMenu.tsx:109 -msgid "Report" +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" msgstr "" +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 +msgid "Report" +msgstr "Denunciar" + #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 #~ msgid "Report account" -#~ msgstr "" +#~ msgstr "Denunciar conta" -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "Denunciar Conta" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" -msgstr "" +msgstr "Denunciar conversa" #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "Janela de denúncia" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "Denunciar feed" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "Denunciar Lista" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" -msgstr "" +msgstr "Denunciar mensagem" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "Denunciar post" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "Denunciar conteúdo" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "Denunciar este feed" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "Denunciar esta lista" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" -msgstr "" +msgstr "Denunciar esta mensagem" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "Denunciar este post" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "Denunciar este usuário" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "Repostar" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "Repostar" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "Repostar ou citar um post" @@ -4106,7 +5179,7 @@ msgstr "Repostar ou citar um post" msgid "Reposted By" msgstr "Repostado Por" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "Repostado por {0}" @@ -4114,15 +5187,20 @@ msgstr "Repostado por {0}" #~ msgid "Reposted by <0/>" #~ msgstr "Repostado por <0/>" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "Repostado por <0><1/>" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "repostou seu post" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "Reposts" @@ -4131,38 +5209,38 @@ msgstr "Reposts" msgid "Request Change" msgstr "Solicitar Alteração" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "Solicitar Código" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "Exigir texto alternativo antes de postar" #: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" -msgstr "" +msgstr "Torna obrigatório um código de verificação por e-mail ao entrar nesta conta" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "Obrigatório para este provedor" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" -msgstr "" +msgstr "Reenviar e-mail" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "Código de redefinição" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "Código de Redefinição" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "Redefinir tutoriais" @@ -4170,20 +5248,20 @@ msgstr "Redefinir tutoriais" msgid "Reset password" msgstr "Redefinir senha" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "Redefinir configurações" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "Redefine tutoriais" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "Redefine as configurações" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "Tenta entrar novamente" @@ -4192,15 +5270,16 @@ msgstr "Tenta entrar novamente" msgid "Retries the last action, which errored out" msgstr "Tenta a última ação, que deu erro" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -4208,10 +5287,11 @@ msgstr "Tente novamente" #: src/screens/Messages/Conversation/MessageListError.tsx:54 #~ msgid "Retry." -#~ msgstr "" +#~ msgstr "Tentar novamente." #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "Voltar para página anterior" @@ -4220,26 +5300,28 @@ msgid "Returns to home page" msgstr "Voltar para a tela inicial" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "Voltar para página anterior" #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Salvar" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "Salvar" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Salvar texto alternativo" @@ -4255,29 +5337,38 @@ msgstr "Salvar Alterações" msgid "Save handle change" msgstr "Salvar usuário" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "Salvar corte de imagem" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" msgstr "Salvar nos meus feeds" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" msgstr "Feeds Salvos" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" -msgstr "" +msgstr "Imagem salva na galeria." #: src/view/com/lightbox/Lightbox.tsx:81 #~ msgid "Saved to your camera roll." #~ msgstr "Imagem salva na galeria." -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "Adicionado aos seus feeds" @@ -4293,39 +5384,47 @@ msgstr "Salva mudança de usuário para {handle}" msgid "Saves image crop settings" msgstr "Salva o corte da imagem" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "Ciência" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "Ir para o topo" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "Buscar" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "Pesquisar por \"{query}\"" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" -msgstr "" +msgstr "Pesquisar por \"{searchText}\"" #: src/components/TagMenu/index.tsx:145 msgid "Search for all posts by @{authorHandle} with tag {displayTag}" @@ -4335,27 +5434,34 @@ msgstr "Pesquisar por posts de @{authorHandle} com a tag {displayTag}" msgid "Search for all posts with tag {displayTag}" msgstr "Pesquisar por posts com a tag {displayTag}" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." msgstr "" -#: src/view/com/auth/LoggedOut.tsx:105 +#: src/components/dms/NewChat.tsx:226 +#~ msgid "Search for someone to start a conversation with." +#~ msgstr "Pesquise por alguém para começar um novo chat." + #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "Buscar usuários" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" -msgstr "" +msgstr "Pesquisar por GIFs" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" -msgstr "" +msgstr "Pesquisar por usuários" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" -msgstr "" +msgstr "Pesquisar via Tenor" #: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" @@ -4378,11 +5484,11 @@ msgid "See <0>{displayTag} posts by this user" msgstr "Ver posts com <0>{displayTag} deste usuário" #: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "Ver perfil" +#: src/view/com/util/UserAvatar.tsx:402 +#~ msgid "See profile" +#~ msgstr "Ver perfil" -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "Veja o guia" @@ -4396,7 +5502,7 @@ msgstr "Selecionar {item}" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 msgid "Select a color" -msgstr "" +msgstr "Selecione uma cor" #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" @@ -4404,25 +5510,25 @@ msgstr "Selecione uma conta" #: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 msgid "Select an avatar" -msgstr "" +msgstr "Selecione um avatar" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 msgid "Select an emoji" -msgstr "" +msgstr "Selecione um emoji" #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "Selecionar de uma conta existente" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" -msgstr "" +msgstr "Selecionar GIF" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" -msgstr "" +msgstr "Selecionar GIF \"{0}\"" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "Selecionar idiomas" @@ -4435,14 +5541,14 @@ msgid "Select option {i} of {numItems}" msgstr "Seleciona opção {i} de {numItems}" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "Selecione algumas contas para seguir" +#~ msgid "Select some accounts below to follow" +#~ msgstr "Selecione algumas contas para seguir" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" -msgstr "" +msgstr "Selecione o {emojiName} emoji como avatar" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "Selecione o(s) serviço(s) de moderação para reportar" @@ -4451,69 +5557,80 @@ msgid "Select the service that hosts your data." msgstr "Selecione o serviço que hospeda seus dados." #: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" -msgstr "Selecione feeds de assuntos para seguir" +#~ msgid "Select topical feeds to follow from the list below" +#~ msgstr "Selecione feeds de assuntos para seguir" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" +msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "Selecione o que você quer (ou não) ver, e cuidaremos do resto." +#~ msgid "Select what you want to see (or not see), and we’ll handle the rest." +#~ msgstr "Selecione o que você quer (ou não) ver, e cuidaremos do resto." -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." msgstr "Selecione quais idiomas você deseja ver nos seus feeds. Se nenhum for selecionado, todos os idiomas serão exibidos." -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "Selecione o idioma do seu aplicativo" -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "Selecione sua data de nascimento" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "Selecione seus interesses" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." msgstr "Selecione seu idioma preferido para as traduções no seu feed." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "Selecione seus feeds primários" +#~ msgid "Select your primary algorithmic feeds" +#~ msgstr "Selecione seus feeds primários" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" -msgstr "Selecione seus feeds secundários" +#~ msgid "Select your secondary algorithmic feeds" +#~ msgstr "Selecione seus feeds secundários" + +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" +msgstr "" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Enviar E-mail de Confirmação" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "Enviar e-mail" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "Enviar E-mail" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "Enviar comentários" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" +msgstr "Enviar mensagem" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." msgstr "" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "Denunciar" @@ -4524,9 +5641,14 @@ msgstr "Denunciar via {0}" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" +msgstr "Enviar e-mail de verificação" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "Envia o e-mail com o código de confirmação para excluir a conta" @@ -4534,7 +5656,7 @@ msgstr "Envia o e-mail com o código de confirmação para excluir a conta" msgid "Server address" msgstr "URL do servidor" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "Definir data de nascimento" @@ -4542,23 +5664,23 @@ msgstr "Definir data de nascimento" msgid "Set new password" msgstr "Definir uma nova senha" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Defina esta configuração como \"Não\" para ocultar todas as citações do seu feed. Reposts ainda serão visíveis." -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Defina esta configuração como \"Não\" para ocultar todas as respostas do seu feed." -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Defina esta configuração como \"Não\" para ocultar todos os reposts do seu feed." -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Defina esta configuração como \"Sim\" para mostrar respostas em uma visualização de thread. Este é um recurso experimental." -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Defina esta configuração como \"Sim\" para exibir amostras de seus feeds salvos no seu feed inicial. Este é um recurso experimental." @@ -4570,23 +5692,23 @@ msgstr "Configure sua conta" msgid "Sets Bluesky username" msgstr "Configura o usuário no Bluesky" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "Define o tema para escuro" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "Define o tema para claro" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "Define o tema para seguir o sistema" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "Define o tema escuro para o padrão" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "Define o tema escuro para o menos escuro" @@ -4606,12 +5728,11 @@ msgstr "Define a proporção da imagem para alta" msgid "Sets image aspect ratio to wide" msgstr "Define a proporção da imagem para comprida" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "Configurações" @@ -4623,45 +5744,86 @@ msgstr "Atividade sexual ou nudez erótica." msgid "Sexually Suggestive" msgstr "Sexualmente Sugestivo" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "Compartilhar" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "Compartilhar" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "Compartilhar" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "Compartilhar assim" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "Compartilhar feed" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "Compartilhar Link" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "Compartilha o link" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "Mostrar" @@ -4669,9 +5831,9 @@ msgstr "Mostrar" #~ msgid "Show all replies" #~ msgstr "Mostrar todas as respostas" -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" -msgstr "" +msgstr "Mostrar texto alternativo" #: src/components/moderation/ScreenHider.tsx:169 #: src/components/moderation/ScreenHider.tsx:172 @@ -4687,82 +5849,90 @@ msgstr "Mostrar rótulo" msgid "Show badge and filter from feeds" msgstr "Mostrar rótulo e filtrar dos feeds" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "Mostrar usuários parecidos com {0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 -msgid "Show less like this" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 +msgid "Show less like this" +msgstr "Mostrar menos disso" + +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "Mostrar Mais" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" +msgstr "Mostrar mais disso" + +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" msgstr "Mostrar Posts dos Meus Feeds" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "Mostrar Citações" #: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "Mostrar citações no feed Seguindo" +#~ msgid "Show quote-posts in Following feed" +#~ msgstr "Mostrar citações no feed Seguindo" #: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "Mostrar citações no Seguindo" +#~ msgid "Show quotes in Following" +#~ msgstr "Mostrar citações no Seguindo" #: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "Mostrar reposts no feed Seguindo" +#~ msgid "Show re-posts in Following feed" +#~ msgstr "Mostrar reposts no feed Seguindo" -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "Mostrar Respostas" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "Mostrar as respostas de pessoas que você segue antes de todas as outras respostas." #: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "Mostrar respostas no Seguindo" +#~ msgid "Show replies in Following" +#~ msgstr "Mostrar respostas no Seguindo" #: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "Mostrar respostas no feed Seguindo" +#~ msgid "Show replies in Following feed" +#~ msgstr "Mostrar respostas no feed Seguindo" #: src/view/screens/PreferencesFollowingFeed.tsx:70 #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Mostrar respostas com ao menos {0} {value}" -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "Mostrar Reposts" #: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "Mostrar reposts no Seguindo" +#~ msgid "Show reposts in Following" +#~ msgstr "Mostrar reposts no Seguindo" -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "Mostrar conteúdo" #: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "Mostrar usuários" +#~ msgid "Show users" +#~ msgstr "Mostrar usuários" #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" @@ -4780,17 +5950,17 @@ msgstr "Mostra posts de {0} no seu feed" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4813,17 +5983,17 @@ msgstr "Faça login ou crie sua conta para entrar na conversa!" msgid "Sign into Bluesky or create a new account" msgstr "Faça login no Bluesky ou crie uma nova conta" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "Sair" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4839,7 +6009,7 @@ msgstr "Inscreva-se ou faça login para se juntar à conversa" msgid "Sign-in Required" msgstr "É Necessário Fazer Login" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "Entrou como" @@ -4848,56 +6018,94 @@ msgstr "Entrou como" msgid "Signed in as @{0}" msgstr "autenticado como @{0}" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "Pular" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "Pular" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "Desenvolvimento de software" -#: src/screens/Messages/Conversation/index.tsx:89 +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" +msgstr "" + +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:203 +#~ msgid "Some subtitle" +#~ msgstr "" + +#: src/screens/Messages/Conversation/index.tsx:106 msgid "Something went wrong" +msgstr "Algo deu errado" + +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" msgstr "" #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "Algo deu errado. Por favor, tente novamente." -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "" + +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "Opa! Sua sessão expirou. Por favor, entre novamente." -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "Classificar Respostas" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "Classificar respostas de um post por:" #: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" -msgstr "Fonte:" +#~ msgid "Source:" +#~ msgstr "Fonte:" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "Spam" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "Spam; menções ou respostas excessivas" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "Esportes" @@ -4905,69 +6113,111 @@ msgstr "Esportes" msgid "Square" msgstr "Quadrado" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" +msgstr "Começar um novo chat" + +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "" + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." msgstr "" #: src/view/screens/Settings/index.tsx:862 #~ msgid "Status page" #~ msgstr "Página de status" -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" -msgstr "" +msgstr "Página de status" #: src/screens/Signup/index.tsx:145 #~ msgid "Step" #~ msgstr "Passo" -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" -msgstr "" +msgstr "Passo {0} de {1}" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "Armazenamento limpo, você precisa reiniciar o app agora." -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "Enviar" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "Inscrever-se" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "Inscreva-se em @{0} para utilizar estes rótulos:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "Inscrever-se no rotulador" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "Increver-se no feed {0}" +#~ msgid "Subscribe to the {0} feed" +#~ msgstr "Increver-se no feed {0}" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "Inscrever-se neste rotulador" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "Inscreva-se nesta lista" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "Sugestões de Seguidores" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "" +#: src/view/screens/Search/Search.tsx:425 +#~ msgid "Suggested Follows" +#~ msgstr "Sugestões de Seguidores" + +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Sugeridos para você" @@ -4976,7 +6226,7 @@ msgstr "Sugeridos para você" msgid "Suggestive" msgstr "Sugestivo" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -4987,19 +6237,23 @@ msgstr "Suporte" msgid "Switch Account" msgstr "Alterar Conta" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "Trocar para {0}" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "Troca a conta que você está autenticado" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "Log do sistema" @@ -5015,29 +6269,51 @@ msgstr "Menu da tag: {displayTag}" msgid "Tall" msgstr "Alto" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "Toque para ver tudo" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "Tecnologia" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "Termos" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Termos de Serviço" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "Termos utilizados violam as diretrizes da comunidade" @@ -5045,12 +6321,13 @@ msgstr "Termos utilizados violam as diretrizes da comunidade" msgid "text" msgstr "texto" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Campo de entrada de texto" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "Obrigado. Sua denúncia foi enviada." @@ -5058,12 +6335,21 @@ msgstr "Obrigado. Sua denúncia foi enviada." msgid "That contains the following:" msgstr "Contém o seguinte:" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "Este identificador de usuário já está sendo usado." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "A conta poderá interagir com você após o desbloqueio." @@ -5079,15 +6365,24 @@ msgstr "As Diretrizes da Comunidade foram movidas para <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "A Política de Direitos Autorais foi movida para <0/>" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 -msgid "The feed has been replaced with Discover." +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 +msgid "The feed has been replaced with Discover." +msgstr "Este feed foi substituído pelo Discover." + +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "Os seguintes rótulos foram aplicados sobre sua conta." -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "Os seguintes rótulos foram aplicados sobre seu conteúdo." @@ -5095,8 +6390,8 @@ msgstr "Os seguintes rótulos foram aplicados sobre seu conteúdo." msgid "The following steps will help customize your Bluesky experience." msgstr "Os seguintes passos vão ajudar a customizar sua experiência no Bluesky." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "O post pode ter sido excluído." @@ -5104,6 +6399,10 @@ msgstr "O post pode ter sido excluído." msgid "The Privacy Policy has been moved to <0/>" msgstr "A Política de Privacidade foi movida para <0/>" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "" + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "O formulário de suporte foi movido. Se precisar de ajuda, <0/> ou visite {HELP_DESK_URL} para entrar em contato conosco." @@ -5113,51 +6412,56 @@ msgid "The Terms of Service have been moved to" msgstr "Os Termos de Serviço foram movidos para" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" -msgstr "Temos vários feeds para você experimentar:" +#~ msgid "There are many feeds to try:" +#~ msgstr "Temos vários feeds para você experimentar:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Tivemos um problema ao contatar o servidor, por favor verifique sua conexão com a internet e tente novamente." -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Tivemos um problema ao remover este feed, por favor verifique sua conexão com a internet e tente novamente." #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Tivemos um problema ao atualizar seus feeds, por favor verifique sua conexão com a internet e tente novamente." -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." -msgstr "" +msgstr "Tivemos um problema ao conectar com o Tenor." #: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" +#~ msgid "There was an issue connecting to the chat." +#~ msgstr "Tivemos um problema ao conectar neste chat." -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "Tivemos um problema ao contatar o servidor deste feed" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "Tivemos um problema ao contatar o servidor deste feed" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Tivemos um problema ao carregar notificações. Toque aqui para tentar de novo." -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Tivemos um problema ao carregar posts. Toque aqui para tentar de novo." @@ -5165,57 +6469,59 @@ msgstr "Tivemos um problema ao carregar posts. Toque aqui para tentar de novo." msgid "There was an issue fetching the list. Tap here to try again." msgstr "Tivemos um problema ao carregar esta lista. Toque aqui para tentar de novo." -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Tivemos um problema ao carregar suas listas. Toque aqui para tentar de novo." -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Tivemos um problema ao enviar sua denúncia. Por favor, verifique sua conexão com a internet." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "Tivemos um problema ao sincronizar suas configurações" +#~ msgid "There was an issue syncing your preferences with the server" +#~ msgstr "Tivemos um problema ao sincronizar suas configurações" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Tivemos um problema ao carregar suas senhas de app." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "Tivemos um problema! {0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "Tivemos algum problema. Por favor verifique sua conexão com a internet e tente novamente." -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "Houve um problema inesperado no aplicativo. Por favor, deixe-nos saber se isso aconteceu com você!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "Muitos usuários estão tentando acessar o Bluesky! Ativaremos sua conta assim que possível." #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "Estas são contas populares que talvez você goste:" +#~ msgid "These are popular accounts you might like:" +#~ msgstr "Estas são contas populares que talvez você goste:" #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" @@ -5225,14 +6531,26 @@ msgstr "Este {screenDescription} foi reportado:" msgid "This account has requested that users sign in to view their profile." msgstr "Esta conta solicitou que os usuários fizessem login para visualizar seu perfil." -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "Esta contestação será enviada para <0>{0}." -#: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:26 +#~ msgid "This chat was disconnected due to a network error." +#~ msgstr "Este chat foi desconectado devido a um problema de conexão." + #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." msgstr "Este conteúdo foi escondido pelos moderadores." @@ -5246,36 +6564,46 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Este conteúdo é hospedado por {0}. Deseja ativar a mídia externa?" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Este conteúdo não está disponível porque um dos usuários bloqueou o outro." -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "Este conteúdo não é visível sem uma conta do Bluesky." -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "Esta funcionalidade está em beta. Você pode ler mais sobre exportação de repositórios <0>neste post do nosso blog." -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Este feed está recebendo muito tráfego e está temporariamente indisponível. Por favor, tente novamente mais tarde." #: src/screens/Profile/Sections/Feed.tsx:59 #: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "Este feed está vazio!" +#: src/view/screens/ProfileList.tsx:729 +#~ msgid "This feed is empty!" +#~ msgstr "Este feed está vazio!" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Este feed está vazio! Talvez você precise seguir mais usuários ou configurar os idiomas filtrados." -#: src/view/com/posts/FeedShutdownMsg.tsx:97 -msgid "This feed is no longer online. We are showing <0>Discover instead." +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:99 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "Este feed não funciona mais. Estamos te mostrando o conteúdo do <0>Discover." + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Esta informação não é compartilhada com outros usuários." @@ -5290,17 +6618,21 @@ msgstr "Isso é importante caso você precise alterar seu e-mail ou redefinir su #: src/components/moderation/ModerationDetailsDialog.tsx:127 msgid "This label was applied by <0>{0}." -msgstr "" +msgstr "Este rótulo foi aplicado por <0>{0}." #: src/components/moderation/ModerationDetailsDialog.tsx:125 msgid "This label was applied by the author." -msgstr "" +msgstr "Este rótulo foi aplicado pelo autor." #: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" +#~ msgid "This label was applied by you" +#~ msgstr "Este rótulo foi aplicado por você" + +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "Este rotulador não declarou quais rótulos utiliza e pode não estar funcionando ainda." @@ -5308,7 +6640,7 @@ msgstr "Este rotulador não declarou quais rótulos utiliza e pode não estar fu msgid "This link is taking you to the following website:" msgstr "Este link está levando você ao seguinte site:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "Esta lista está vazia!" @@ -5316,24 +6648,24 @@ msgstr "Esta lista está vazia!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "Este serviço de moderação está indisponível. Veja mais detalhes abaixo. Se este problema persistir, entre em contato." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "Você já tem uma senha com esse nome" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "Este post foi excluído." -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Este post só pode ser visto por usuários autenticados e não aparecerá para pessoas que não estão autenticadas." -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "Este post será escondido de todos os feeds." -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Este post só pode ser visto por usuários autenticados e não aparecerá para pessoas que não estão autenticadas." @@ -5349,8 +6681,12 @@ msgstr "Isso deve criar um registro no domínio:" msgid "This user doesn't have any followers." msgstr "Este usuário não é seguido por ninguém ainda." +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "Este usuário te bloqueou. Você não pode ver este conteúdo." @@ -5366,6 +6702,10 @@ msgstr "Este usuário está incluído na lista <0>{0}, que você bloqueou." msgid "This user is included in the <0>{0} list which you have muted." msgstr "Este usuário está incluído na lista <0>{0}, que você silenciou." +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "" + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "Este usuário não segue ninguém ainda." @@ -5378,30 +6718,34 @@ msgstr "Este usuário não segue ninguém ainda." msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Isso removerá {0} das suas palavras silenciadas. Você pode adicioná-la novamente depois." -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" msgstr "Preferências das Threads" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "Preferências das Threads" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "Visualização de Threads" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "Preferências das Threads" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." -msgstr "" +msgstr "Para desabilitar o 2FA via e-mail, por favor verifique seu acesso a este endereço de e-mail." -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." -msgstr "" +msgstr "Para denunciar uma conversa, por favor, denuncie uma das mensagens individualmente. Isso vai permitir a análise da situação pelos nossos moderadores." #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" @@ -5411,16 +6755,16 @@ msgstr "Para quem você gostaria de enviar esta denúncia?" msgid "Toggle between muted word options." msgstr "Alternar entre opções de uma palavra silenciada" -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "Alternar menu suspenso" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "Ligar ou desligar conteúdo adulto" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "Principais" @@ -5428,10 +6772,12 @@ msgstr "Principais" msgid "Transformations" msgstr "Transformações" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "Traduzir" @@ -5440,65 +6786,81 @@ msgctxt "action" msgid "Try again" msgstr "Tentar novamente" -#: src/view/screens/Settings/index.tsx:711 -msgid "Two-factor authentication" +#: src/screens/Onboarding/state.ts:100 +msgid "TV" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/view/screens/Settings/index.tsx:747 +msgid "Two-factor authentication" +msgstr "Autenticação de dois fatores (2FA)" + +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" -msgstr "" +msgstr "Digite sua mensagem aqui" #: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "Tipo:" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "Desbloquear lista" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "Dessilenciar lista" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Não foi possível entrar em contato com seu serviço. Por favor, verifique sua conexão à internet." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "Desbloquear" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "Desbloquear" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "Desbloquear Conta" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" msgstr "Desbloquear Conta?" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "Desfazer repost" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "Deixar de seguir" @@ -5507,12 +6869,12 @@ msgstr "Deixar de seguir" msgid "Unfollow" msgstr "Deixar de seguir" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "Deixar de seguir {0}" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "Deixar de seguir" @@ -5520,12 +6882,12 @@ msgstr "Deixar de seguir" #~ msgid "Unlike" #~ msgstr "Descurtir" -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "Descurtir este feed" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "Dessilenciar" @@ -5533,8 +6895,8 @@ msgstr "Dessilenciar" msgid "Unmute {truncatedTag}" msgstr "Dessilenciar {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "Dessilenciar conta" @@ -5542,46 +6904,54 @@ msgstr "Dessilenciar conta" msgid "Unmute all {displayTag} posts" msgstr "Dessilenciar posts com {displayTag}" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/components/dms/ConvoMenu.tsx:140 +#~ msgid "Unmute notifications" +#~ msgstr "Dessilenciar notificações" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" msgstr "Dessilenciar thread" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "Desafixar" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "Desafixar da tela inicial" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "Desafixar lista de moderação" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Desinscrever-se" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "Desinscrever-se deste rotulador" #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" +#~ msgid "Unwanted sexual content" +#~ msgstr "Conteúdo sexual indesejado" -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 +#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:85 msgid "Unwanted Sexual Content" msgstr "Conteúdo Sexual Indesejado" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "Atualizar {displayName} nas Listas" @@ -5593,28 +6963,28 @@ msgstr "Alterar para {handle}" msgid "Updating..." msgstr "Atualizando..." -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" -msgstr "" +msgstr "Enviar uma foto" #: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Carregar um arquivo de texto para:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "Tirar uma foto" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "Carregar um arquivo" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -5624,7 +6994,7 @@ msgstr "Carregar da galeria" msgid "Use a file on your server" msgstr "Utilize um arquivo no seu servidor" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Use as senhas de aplicativos para fazer login em outros clientes do Bluesky sem dar acesso total à sua conta ou senha." @@ -5648,13 +7018,13 @@ msgstr "Usar o meu navegador padrão" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 msgid "Use recommended" -msgstr "" +msgstr "Usar recomendados" #: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "Usar o painel do meu DNS" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Use esta senha para entrar no outro aplicativo juntamente com seu identificador." @@ -5663,19 +7033,23 @@ msgid "Used by:" msgstr "Usado por:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "Usuário Bloqueado" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr "Usuário Bloqueado por \"{0}\"" +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "Usuário Bloqueado Por Lista" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "Usuário Bloqueia Você" @@ -5683,46 +7057,53 @@ msgstr "Usuário Bloqueia Você" msgid "User Blocks You" msgstr "Este Usuário Te Bloqueou" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "Lista de usuários por {0}" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "Lista de usuários por <0/>" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "Sua lista de usuários" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "Lista de usuários criada" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "Lista de usuários atualizada" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "Listas de Usuários" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "Nome de usuário ou endereço de e-mail" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "Usuários" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "usuários seguidos por <0/>" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "Usuários em \"{0}\"" @@ -5740,17 +7121,17 @@ msgstr "Conteúdo:" #: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" -msgstr "" +msgstr "Verificar registro DNS" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "Verificar e-mail" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "Verificar meu e-mail" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "Verificar Meu Email" @@ -5761,7 +7142,7 @@ msgstr "Verificar Novo E-mail" #: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" -msgstr "" +msgstr "Verificar Arquivo" #: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" @@ -5771,31 +7152,44 @@ msgstr "Verificar Seu E-mail" #~ msgid "Version {0}" #~ msgstr "Versão {0}" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" -msgstr "" +msgstr "Versão {appVersion} {bundleInfo}" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "Games" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "Ver o avatar de {0}" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "Ver depuração" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "Ver detalhes" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "Ver detalhes para denunciar uma violação de copyright" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "Ver thread completa" @@ -5803,13 +7197,15 @@ msgstr "Ver thread completa" msgid "View information about these labels" msgstr "Ver informações sobre estes rótulos" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Ver perfil" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "Ver o avatar" @@ -5817,10 +7213,15 @@ msgstr "Ver o avatar" msgid "View the labeling service provided by @{0}" msgstr "Ver este rotulador provido por @{0}" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "Ver usuários que curtiram este feed" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -5829,7 +7230,6 @@ msgstr "Visitar Site" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Avisar" @@ -5845,15 +7245,15 @@ msgstr "Avisar e filtrar dos feeds" msgid "We couldn't find any results for that hashtag." msgstr "Não encontramos nenhum post com esta hashtag." -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" -msgstr "" +msgstr "Não foi possível carregar esta conversa" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Estimamos que sua conta estará pronta em mais ou menos {estimatedTime}." -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Esperamos que você se divirta. Lembre-se, o Bluesky é:" @@ -5866,34 +7266,38 @@ msgid "We recommend avoiding common words that appear in many posts, since it ca msgstr "Não recomendamos utilizar palavras comuns que aparecem em muitos posts, já que isso pode resultar em filtrar todos eles." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "Recomendamos nosso feed \"Discover\":" +#~ msgid "We recommend our \"Discover\" feed:" +#~ msgstr "Recomendamos nosso feed \"Discover\":" #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "Não foi possível carregar sua data de nascimento. Por favor, tente novamente." -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "Não foi possível carregar seus rotuladores." -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Não conseguimos conectar. Por favor, tente novamente para continuar configurando a sua conta. Se continuar falhando, você pode pular este fluxo." -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "Avisaremos quando sua conta estiver pronta." -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "Usaremos isto para customizar a sua experiência." -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "Estamos muito felizes em recebê-lo!" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Tivemos um problema ao exibir esta lista. Se continuar acontecendo, contate o criador da lista: @{handleOrDid}." @@ -5901,30 +7305,50 @@ msgstr "Tivemos um problema ao exibir esta lista. Se continuar acontecendo, cont msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Não foi possível carregar sua lista de palavras silenciadas. Por favor, tente novamente." -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Lamentamos, mas sua busca não pôde ser concluída. Por favor, tente novamente em alguns minutos." -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "" + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Sentimos muito! Não conseguimos encontrar a página que você estava procurando." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." -msgstr "Sentimos muito! Você só pode se inscrever em até dez rotuladores e você já chegou ao máximo." +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 +#~ msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#~ msgstr "Sentimos muito! Você só pode se inscrever em até dez rotuladores e você já chegou ao máximo." + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "" + +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" +msgstr "" #: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Bem-vindo ao <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" msgstr "Do que você gosta?" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "" + #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "E aí?" @@ -5936,76 +7360,115 @@ msgstr "Quais idiomas são usados neste post?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Quais idiomas você gostaria de ver nos seus feeds?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "Quem pode responder" -#: src/screens/Home/NoFeedsPinned.tsx:92 +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "" + +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" -msgstr "" +msgstr "Opa!" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" -msgstr "Por que este conteúdo deve ser revisado?" +msgstr "Por que este conteúdo deve ser analisado?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" -msgstr "Por que este feed deve ser revisado?" +msgstr "Por que este feed deve ser analisado?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" -msgstr "Por que esta lista deve ser revisada?" +msgstr "Por que esta lista deve ser analisada?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" +msgstr "Por que esta mensagem deve ser analisada?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 +msgid "Why should this post be reviewed?" +msgstr "Por que este post deve ser analisado?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 -msgid "Why should this post be reviewed?" -msgstr "Por que este post deve ser revisado?" - -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" -msgstr "Por que este usuário deve ser revisado?" +msgstr "Por que este usuário deve ser analisado?" #: src/view/com/modals/crop-image/CropImage.web.tsx:125 msgid "Wide" msgstr "Largo" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" -msgstr "" +msgstr "Escreva uma mensagem" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "Escrever post" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "Escreva sua resposta" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "Escritores" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "Sim" -#: src/components/dms/MessageItem.tsx:158 -msgid "Yesterday, {time}" +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" msgstr "" -#: src/screens/Deactivated.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "" + +#: src/components/dms/MessageItem.tsx:182 +msgid "Yesterday, {time}" +msgstr "Ontem, {time}" + +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "Você está na fila." @@ -6013,29 +7476,49 @@ msgstr "Você está na fila." msgid "You are not following anyone." msgstr "Você não segue ninguém." -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "Você também pode descobrir novos feeds para seguir." +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." -msgstr "Você pode mudar estas configurações depois." +#~ msgid "You can change these settings later." +#~ msgstr "Você pode mudar estas configurações depois." + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "" + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." msgstr "Agora você pode entrar com a sua nova senha." +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "Ninguém segue você ainda." +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Você ainda não tem nenhum convite! Nós lhe enviaremos alguns quando você estiver há mais tempo no Bluesky." -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." msgstr "Você não tem feeds fixados." @@ -6043,28 +7526,32 @@ msgstr "Você não tem feeds fixados." #~ msgid "You don't have any saved feeds!" #~ msgstr "Você não tem feeds salvos!" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." msgstr "Você não tem feeds salvos." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Você bloqueou esta conta ou foi bloqueado por ela." +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "Você bloqueou este usuário. Você não pode ver este conteúdo." #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Você utilizou um código inválido. O código segue este padrão: XXXXX-XXXXX." -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "Você escondeu este post" @@ -6073,32 +7560,36 @@ msgid "You have hidden this post." msgstr "Você escondeu este post." #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "Você silenciou esta conta." -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "Você silenciou este usuário." -#: src/view/com/feeds/ProfileFeedgens.tsx:144 +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "" + +#: src/view/com/feeds/ProfileFeedgens.tsx:137 msgid "You have no feeds." msgstr "Você não tem feeds." -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." msgstr "Você não tem listas." #: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "" +#~ msgid "You have no messages yet. Start a conversation with someone!" +#~ msgstr "Você ainda não tem chats. Comece um novo com alguém!" #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "Você ainda não bloqueou nenhuma conta. Para bloquear uma conta, acesse um perfil e selecione \"Bloquear conta\" no menu." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Você ainda não criou nenhuma senha de aplicativo. Você pode criar uma pressionando o botão abaixo." @@ -6106,35 +7597,67 @@ msgstr "Você ainda não criou nenhuma senha de aplicativo. Você pode criar uma msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "Você ainda não silenciou nenhuma conta. Para silenciar uma conta, acesse um perfil e selecione \"Silenciar conta\" no menu." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Você não silenciou nenhuma palavra ou tag ainda" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." -msgstr "" +msgstr "Você pode contestar estes rótulos se você acha que estão errados." -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Você pode contestar estes rótulos se você acha que estão errados." +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "" + #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "Você precisa ter no mínimo 13 anos de idade para se cadastrar." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" -msgstr "Você precisa ser maior de idade para habilitar conteúdo adulto." +#~ msgid "You must be 18 years or older to enable adult content" +#~ msgstr "Você precisa ser maior de idade para habilitar conteúdo adulto." -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "" + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "Você deve selecionar no mínimo um rotulador" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "Você não vai mais receber notificações desta thread" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "Você vai receber notificações desta thread" @@ -6142,60 +7665,98 @@ msgstr "Você vai receber notificações desta thread" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Você receberá um e-mail com um \"código de redefinição\". Digite esse código aqui, e então digite sua nova senha." -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" +msgstr "Você: {0}" + +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "" + +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "Você está no controle" +#~ msgid "You're in control" +#~ msgstr "Você está no controle" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "Você está na fila" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "" + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "Tudo pronto!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "Você escolheu esconder uma palavra ou tag deste post." -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Você chegou ao fim do seu feed! Encontre novas contas para seguir." -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "Sua conta" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "Sua conta foi excluída" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "O repositório da sua conta, contendo todos os seus dados públicos, pode ser baixado como um arquivo \"CAR\". Este arquivo não inclui imagens ou dados privados, estes devem ser exportados separadamente." -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "Sua data de nascimento" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "Sua escolha será salva, mas você pode trocá-la nas configurações depois" #: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "Seu feed inicial é o \"Seguindo\"" +#~ msgid "Your default feed is \"Following\"" +#~ msgstr "Seu feed inicial é o \"Seguindo\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "Seu e-mail parece ser inválido." @@ -6207,11 +7768,15 @@ msgstr "Seu e-mail foi atualizado mas não foi verificado. Como próximo passo, msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Seu e-mail ainda não foi verificado. Esta é uma etapa importante de segurança que recomendamos." -#: src/view/com/posts/FollowingEmptyState.tsx:47 +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:43 msgid "Your following feed is empty! Follow more users to see what's happening." msgstr "Seu feed inicial está vazio! Siga mais usuários para acompanhar o que está acontecendo." -#: src/screens/Signup/StepHandle.tsx:73 +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "Seu identificador completo será" @@ -6223,30 +7788,34 @@ msgstr "Seu usuário completo será <0>@{0}" msgid "Your muted words" msgstr "Suas palavras silenciadas" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "Sua senha foi alterada com sucesso!" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "Seu post foi publicado" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Suas postagens, curtidas e bloqueios são públicos. Silenciamentos são privados." -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "Seu perfil" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "" + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "Sua resposta foi publicada" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" -msgstr "" +msgstr "Sua denúncia será enviada para o serviço de moderação do Bluesky" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "Seu identificador de usuário" diff --git a/src/locale/locales/tr/messages.po b/src/locale/locales/tr/messages.po index 0b227db43e..5baac65fbe 100644 --- a/src/locale/locales/tr/messages.po +++ b/src/locale/locales/tr/messages.po @@ -13,11 +13,15 @@ msgstr "" "Plural-Forms: \n" "X-Generator: Poedit 3.4.2\n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(e-posta yok)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" @@ -26,36 +30,49 @@ msgstr "" #~ msgstr "{0, plural, one {# davet kodu mevcut} other {# davet kodları mevcut}}" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:55 +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" msgstr "" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/KnownFollowers.tsx:179 +#~ msgid "{0, plural, one {and # other} other {and # others}}" +#~ msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -63,39 +80,87 @@ msgstr "" msgid "{0, plural, one {post} other {posts}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "" + #: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" +#~ msgid "{0} your feeds" +#~ msgstr "" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" msgstr "" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" msgstr "" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} takip ediliyor" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:151 #~ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" #~ msgstr "{invitesAvailable, plural, one {Davet kodları: # mevcut} other {Davet kodları: # mevcut}}" @@ -108,36 +173,70 @@ msgstr "{following} takip ediliyor" #~ msgid "{invitesAvailable} invite codes available" #~ msgstr "{invitesAvailable} davet kodları mevcut" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:461 +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} okunmamış" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "<0/> üyeleri" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:485 +#~ msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:497 +#~ msgid "<0>{0}, <1>{1}, and {2} {3, plural, one {other} other {others}} are included in your starter pack" +#~ msgstr "" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "" + #: src/view/shell/Drawer.tsx:96 #~ msgid "<0>{0} following" #~ msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "" + #: src/components/ProfileHoverCard/index.web.tsx:437 #~ msgid "<0>{followers} <1>{pluralizedFollowers}" #~ msgstr "" @@ -163,11 +262,15 @@ msgstr "" #~ msgid "<0>Welcome to<1>Bluesky" #~ msgstr "<0>Bluesky'e<1>Hoşgeldiniz" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "⚠Geçersiz Kullanıcı Adı" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" msgstr "" @@ -175,30 +278,34 @@ msgstr "" #~ msgid "A content warning has been applied to this {0}." #~ msgstr "Bu {0} için bir içerik uyarısı uygulandı." +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "" + #: src/lib/hooks/useOTAUpdate.ts:16 #~ msgid "A new version of the app is available. Please update to continue using the app." #~ msgstr "Uygulamanın yeni bir sürümü mevcut. Devam etmek için güncelleyin." -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "Gezinme bağlantılarına ve ayarlara erişin" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "Profil ve diğer gezinme bağlantılarına erişin" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "Erişilebilirlik" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" msgstr "" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" msgstr "" @@ -206,26 +313,26 @@ msgstr "" #~ msgid "account" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "Hesap" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "Hesap engellendi" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "Hesap susturuldu" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "Hesap Susturuldu" @@ -241,37 +348,46 @@ msgstr "Hesap seçenekleri" msgid "Account removed from quick access" msgstr "Hesap hızlı erişimden kaldırıldı" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "Hesap engeli kaldırıldı" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "Hesap susturulması kaldırıldı" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "Ekle" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Bir içerik uyarısı ekleyin" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "Bu listeye bir kullanıcı ekleyin" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "Hesap ekle" @@ -280,7 +396,7 @@ msgstr "Hesap ekle" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Alternatif metin ekle" @@ -288,9 +404,9 @@ msgstr "Alternatif metin ekle" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Uygulama Şifresi Ekle" @@ -319,11 +435,19 @@ msgstr "" msgid "Add muted words and tags" msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/StarterPack/Wizard/index.tsx:197 +#~ msgid "Add people to your starter pack that you think others will enjoy following" +#~ msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" msgstr "" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" msgstr "" @@ -331,12 +455,16 @@ msgstr "" msgid "Add the following DNS record to your domain:" msgstr "Alan adınıza aşağıdaki DNS kaydını ekleyin:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "Listelere Ekle" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" msgstr "Beslemelerime ekle" @@ -344,21 +472,20 @@ msgstr "Beslemelerime ekle" #~ msgid "Added" #~ msgstr "Eklendi" -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "Listeye eklendi" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" msgstr "Beslemelerime eklendi" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Bir yanıtın beslemenizde gösterilmesi için sahip olması gereken beğeni sayısını ayarlayın." #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Yetişkin İçerik" @@ -367,21 +494,48 @@ msgstr "Yetişkin İçerik" #~ msgid "Adult content can only be enabled via the Web at <0/>." #~ msgstr "Yetişkin içeriği yalnızca Web üzerinden <0/> etkinleştirilebilir." +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "" + #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." msgstr "" -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "Gelişmiş" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." msgstr "" +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "Zaten bir kodunuz mu var?" @@ -391,17 +545,17 @@ msgstr "Zaten @{0} olarak oturum açıldı" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" msgstr "Alternatif metin" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" msgstr "" @@ -418,80 +572,108 @@ msgstr "{0} adresine bir e-posta gönderildi. Aşağıda girebileceğiniz bir on msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Önceki adresinize, {0} bir e-posta gönderildi. Aşağıda girebileceğiniz bir onay kodu içerir." -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" msgstr "" -#: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/components/StarterPack/ShareDialog.tsx:79 +#~ msgid "An error occurred while saving the image." +#~ msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:134 +#~ msgid "An error occurred while trying to delete the message. Please try again." +#~ msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Bir sorun oluştu, lütfen tekrar deneyin." -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "ve" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "Hayvanlar" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" msgstr "" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "Uygulama Dili" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Uygulama şifresi silindi" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "Uygulama Şifre adları yalnızca harfler, sayılar, boşluklar, tireler ve alt çizgiler içerebilir." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "Uygulama Şifre adları en az 4 karakter uzunluğunda olmalıdır." -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "Uygulama şifresi ayarları" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "Uygulama Şifreleri" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "" @@ -503,7 +685,8 @@ msgstr "" #~ msgid "Appeal Content Warning" #~ msgstr "İçerik Uyarısını İtiraz Et" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "" @@ -511,40 +694,63 @@ msgstr "" #~ msgid "Appeal submitted." #~ msgstr "" -#: src/view/com/util/moderation/LabelInfo.tsx:52 -#~ msgid "Appeal this decision" -#~ msgstr "Bu karara itiraz et" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "Bu karara itiraz et" #: src/view/com/util/moderation/LabelInfo.tsx:56 #~ msgid "Appeal this decision." #~ msgstr "Bu karara itiraz et." -#: src/view/screens/Settings/index.tsx:430 +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "Görünüm" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +#~ msgid "Are you sure you want delete this starter pack?" +#~ msgstr "" + +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "\"{name}\" uygulama şifresini silmek istediğinizden emin misiniz?" #: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgstr "" + +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" msgstr "" #: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgstr "" + +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "Bu taslağı silmek istediğinizden emin misiniz?" @@ -560,7 +766,8 @@ msgstr "Emin misiniz?" msgid "Are you writing in <0>{0}?" msgstr "<0>{0} dilinde mi yazıyorsunuz?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "Sanat" @@ -568,24 +775,27 @@ msgstr "Sanat" msgid "Artistic or non-erotic nudity." msgstr "Sanatsal veya erotik olmayan çıplaklık." -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "Geri" @@ -595,10 +805,10 @@ msgstr "Geri" #~ msgstr "Geri" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "{interestsText} ilginize dayalı" +#~ msgid "Based on your interest in {interestsText}" +#~ msgstr "{interestsText} ilginize dayalı" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "Temel" @@ -606,38 +816,38 @@ msgstr "Temel" msgid "Birthday" msgstr "Doğum günü" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "Doğum günü:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "Hesabı Engelle" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "Hesapları engelle" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "Listeyi engelle" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "Bu hesapları engelle?" @@ -645,21 +855,21 @@ msgstr "Bu hesapları engelle?" #~ msgid "Block this List" #~ msgstr "Bu Listeyi Engelle" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "Engellendi" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "Engellenen hesaplar" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "Engellenen Hesaplar" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Engellenen hesaplar, konularınıza yanıt veremez, sizi bahsedemez veya başka şekilde sizinle etkileşime giremez." @@ -667,19 +877,19 @@ msgstr "Engellenen hesaplar, konularınıza yanıt veremez, sizi bahsedemez veya msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Engellenen hesaplar, konularınıza yanıt veremez, sizi bahsedemez veya başka şekilde sizinle etkileşime giremez. Onların içeriğini görmeyeceksiniz ve onlar da sizinkini görmekten alıkonulacaklar." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "Engellenen gönderi." -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "" -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Engelleme herkese açıktır. Engellenen hesaplar, konularınıza yanıt veremez, sizi bahsedemez veya başka şekilde sizinle etkileşime giremez." -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." msgstr "" @@ -696,6 +906,10 @@ msgstr "Bluesky" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "" +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "" + #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 #~ msgid "Bluesky is flexible." @@ -715,7 +929,11 @@ msgstr "" #~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." #~ msgstr "Bluesky, daha sağlıklı bir topluluk oluşturmak için davetleri kullanır. Bir daveti olan kimseyi tanımıyorsanız, bekleme listesine kaydolabilir ve yakında bir tane göndereceğiz." -#: src/screens/Moderation/index.tsx:533 +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "" + +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky, profilinizi ve gönderilerinizi oturum açmamış kullanıcılara göstermeyecektir. Diğer uygulamalar bu isteği yerine getirmeyebilir. Bu, hesabınızı özel yapmaz." @@ -731,12 +949,31 @@ msgstr "" msgid "Blur images and filter from feeds" msgstr "" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "Kitaplar" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 msgid "Browse other feeds" msgstr "" @@ -752,7 +989,7 @@ msgstr "İş" #~ msgid "Button disabled. Input custom domain to proceed." #~ msgstr "Button devre dışı. Devam etmek için özel alan adını girin." -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "tarafından —" @@ -765,10 +1002,10 @@ msgid "By {0}" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" +#~ msgid "by @{0}" +#~ msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "tarafından <0/>" @@ -776,7 +1013,7 @@ msgstr "tarafından <0/>" msgid "By creating an account you agree to the {els}." msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "siz tarafından" @@ -784,7 +1021,7 @@ msgstr "siz tarafından" msgid "Camera" msgstr "Kamera" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Yalnızca harfler, sayılar, boşluklar, tireler ve alt çizgiler içerebilir. En az 4 karakter uzunluğunda, ancak 32 karakterden fazla olmamalıdır." @@ -792,14 +1029,15 @@ msgstr "Yalnızca harfler, sayılar, boşluklar, tireler ve alt çizgiler içere #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -807,23 +1045,23 @@ msgstr "Yalnızca harfler, sayılar, boşluklar, tireler ve alt çizgiler içere #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "İptal" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "İptal" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "Hesap silmeyi iptal et" @@ -839,12 +1077,16 @@ msgstr "Resim kırpma işlemini iptal et" msgid "Cancel profile editing" msgstr "Profil düzenlemeyi iptal et" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "Alıntı gönderiyi iptal et" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "Aramayı iptal et" @@ -860,17 +1102,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "Değiştir" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "Kullanıcı adını değiştir" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "Kullanıcı Adını Değiştir" @@ -878,12 +1120,12 @@ msgstr "Kullanıcı Adını Değiştir" msgid "Change my email" msgstr "E-postamı değiştir" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "Şifre değiştir" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "Şifre Değiştir" @@ -899,20 +1141,30 @@ msgstr "Gönderi dilini {0} olarak değiştir" msgid "Change Your Email" msgstr "E-postanızı Değiştirin" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" msgstr "" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" msgstr "" @@ -920,8 +1172,8 @@ msgstr "" #~ msgid "Chat with {chatId}" #~ msgstr "" -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "Durumumu kontrol et" @@ -933,27 +1185,47 @@ msgstr "Durumumu kontrol et" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Bazı önerilen kullanıcılara göz atın. Benzer kullanıcıları görmek için onları takip edin." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Aşağıya gireceğiniz onay kodu içeren bir e-posta için gelen kutunuzu kontrol edin:" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "\"Herkes\" veya \"Hiç kimse\" seçin" +#: src/view/com/modals/Threadgate.tsx:75 +#~ msgid "Choose \"Everybody\" or \"Nobody\"" +#~ msgstr "\"Herkes\" veya \"Hiç kimse\" seçin" + +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "" #: src/view/screens/Settings.tsx:691 #~ msgid "Choose a new Bluesky username or create" #~ msgstr "Yeni bir Bluesky kullanıcı adı seçin veya oluşturun" +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "" + #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "Hizmet Seç" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." msgstr "Özel beslemelerinizi destekleyen algoritmaları seçin." @@ -966,40 +1238,45 @@ msgstr "Özel beslemelerinizi destekleyen algoritmaları seçin." msgid "Choose this color as your avatar" msgstr "" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "Ana beslemelerinizi seçin" +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" +msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 +#~ msgid "Choose your main feeds" +#~ msgstr "Ana beslemelerinizi seçin" + +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "Şifrenizi seçin" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "Tüm eski depolama verilerini temizle" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "Tüm eski depolama verilerini temizle (bundan sonra yeniden başlat)" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "Tüm depolama verilerini temizle" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "Tüm depolama verilerini temizle (bundan sonra yeniden başlat)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "Arama sorgusunu temizle" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "" @@ -1007,10 +1284,18 @@ msgstr "" msgid "click here" msgstr "buraya tıklayın" -#: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +#~ msgid "Click here to add one." +#~ msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "" @@ -1019,19 +1304,33 @@ msgstr "" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:47 +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "" + +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "İklim" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "Kapat" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "Etkin iletişim kutusunu kapat" @@ -1043,11 +1342,12 @@ msgstr "Uyarıyı kapat" msgid "Close bottom drawer" msgstr "Alt çekmeceyi kapat" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" msgstr "" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" msgstr "" @@ -1059,6 +1359,10 @@ msgstr "Resmi kapat" msgid "Close image viewer" msgstr "Resim görüntüleyiciyi kapat" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "Gezinme altbilgisini kapat" @@ -1076,7 +1380,7 @@ msgstr "Alt gezinme çubuğunu kapatır" msgid "Closes password update alert" msgstr "Şifre güncelleme uyarısını kapatır" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "Gönderi bestecisini kapatır ve gönderi taslağını siler" @@ -1084,42 +1388,48 @@ msgstr "Gönderi bestecisini kapatır ve gönderi taslağını siler" msgid "Closes viewer for header image" msgstr "Başlık resmi görüntüleyicisini kapatır" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "Belirli bir bildirim için kullanıcı listesini daraltır" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "Komedi" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "Çizgi romanlar" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Topluluk Kuralları" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "Onboarding'i tamamlayın ve hesabınızı kullanmaya başlayın" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "En fazla {MAX_GRAPHEME_LENGTH} karakter uzunluğunda gönderiler oluşturun" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "Yanıt oluştur" #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "Kategori için içerik filtreleme ayarlarını yapılandır: {0}" +#~ msgid "Configure content filtering setting for category: {0}" +#~ msgstr "Kategori için içerik filtreleme ayarlarını yapılandır: {0}" #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" @@ -1129,13 +1439,11 @@ msgstr "" msgid "Configured in <0>moderation settings." msgstr "" -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -1155,7 +1463,7 @@ msgstr "Değişikliği Onayla" msgid "Confirm content language settings" msgstr "İçerik dil ayarlarını onayla" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "Hesabı silmeyi onayla" @@ -1163,18 +1471,18 @@ msgstr "Hesabı silmeyi onayla" #~ msgid "Confirm your age to enable adult content." #~ msgstr "Yetişkin içeriği etkinleştirmek için yaşınızı onaylayın." -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 @@ -1185,11 +1493,11 @@ msgstr "Onay kodu" #~ msgid "Confirms signing up {email} to the waitlist" #~ msgstr "{email} adresinin bekleme listesine kaydını onaylar" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "Bağlanıyor..." -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "Destek ile iletişime geçin" @@ -1209,28 +1517,28 @@ msgstr "" #~ msgid "Content Filtering" #~ msgstr "İçerik Filtreleme" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "İçerik Dilleri" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "İçerik Mevcut Değil" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "İçerik Uyarısı" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "İçerik uyarıları" @@ -1238,12 +1546,8 @@ msgstr "İçerik uyarıları" msgid "Context menu backdrop, click to close the menu." msgstr "" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "Devam et" @@ -1251,41 +1555,47 @@ msgstr "Devam et" msgid "Continue as {0} (currently signed in)" msgstr "" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "Sonraki adıma devam et" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "Sonraki adıma devam et" +#~ msgid "Continue to the next step" +#~ msgstr "Sonraki adıma devam et" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" -msgstr "Herhangi bir hesabı takip etmeden sonraki adıma devam et" +#~ msgid "Continue to the next step without following any accounts" +#~ msgstr "Herhangi bir hesabı takip etmeden sonraki adıma devam et" -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" +msgstr "" + +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "Yemek pişirme" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Kopyalandı" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "Sürüm numarası panoya kopyalandı" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "Panoya kopyalandı" @@ -1293,11 +1603,12 @@ msgstr "Panoya kopyalandı" msgid "Copied!" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Uygulama şifresini kopyalar" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Kopyala" @@ -1310,12 +1621,20 @@ msgstr "" msgid "Copy code" msgstr "" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "Liste bağlantısını kopyala" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "Gönderi bağlantısını kopyala" @@ -1323,38 +1642,46 @@ msgstr "Gönderi bağlantısını kopyala" #~ msgid "Copy link to profile" #~ msgstr "Profili bağlantısını kopyala" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "Gönderi metnini kopyala" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Telif Hakkı Politikası" -#: src/components/dms/ConvoMenu.tsx:80 +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" +msgstr "" + +#: src/components/dms/LeaveConvoPrompt.tsx:39 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" msgstr "Besleme yüklenemedi" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "Liste yüklenemedi" #: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "" +#~ msgid "Could not load profiles. Please try again later." +#~ msgstr "" -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" msgstr "" @@ -1366,16 +1693,34 @@ msgstr "" #~ msgid "Country" #~ msgstr "Ülke" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "" + #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "Yeni bir hesap oluştur" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "Yeni bir Bluesky hesabı oluştur" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "Hesap Oluştur" @@ -1384,11 +1729,15 @@ msgstr "Hesap Oluştur" msgid "Create an account" msgstr "" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Uygulama Şifresi Oluştur" @@ -1397,11 +1746,15 @@ msgstr "Uygulama Şifresi Oluştur" msgid "Create new account" msgstr "Yeni hesap oluştur" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/StarterPack/ShareDialog.tsx:158 +#~ msgid "Create QR code" +#~ msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0} oluşturuldu" @@ -1417,7 +1770,8 @@ msgstr "{0} oluşturuldu" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "Küçük resimli bir kart oluşturur. Kart, {url} bağlantısına gider" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "Kültür" @@ -1430,8 +1784,8 @@ msgstr "" msgid "Custom domain" msgstr "Özel alan adı" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Topluluk tarafından oluşturulan özel beslemeler size yeni deneyimler sunar ve sevdiğiniz içeriği bulmanıza yardımcı olur." @@ -1439,8 +1793,8 @@ msgstr "Topluluk tarafından oluşturulan özel beslemeler size yeni deneyimler msgid "Customize media from external sites." msgstr "Harici sitelerden medyayı özelleştirin." -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "Karanlık" @@ -1448,15 +1802,24 @@ msgstr "Karanlık" msgid "Dark mode" msgstr "Karanlık mod" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "Karanlık Tema" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" msgstr "" @@ -1464,14 +1827,17 @@ msgstr "" msgid "Debug panel" msgstr "Hata ayıklama paneli" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "Hesabı sil" @@ -1479,65 +1845,83 @@ msgstr "Hesabı sil" #~ msgid "Delete Account" #~ msgstr "Hesabı Sil" -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Uygulama şifresini sil" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "" -#: src/components/dms/MessageMenu.tsx:101 +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:124 msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:466 +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "Listeyi Sil" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" msgstr "" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "Hesabımı sil" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "Hesabımı Sil…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "Gönderiyi sil" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "Bu gönderiyi sil?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "Silindi" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." msgstr "Silinen gönderi." -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1551,15 +1935,19 @@ msgstr "" #~ msgid "Developer Tools" #~ msgstr "Geliştirici Araçları" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "Bir şey söylemek istediniz mi?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "Karart" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" msgstr "" @@ -1567,7 +1955,7 @@ msgstr "" msgid "Disable Email 2FA" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" msgstr "" @@ -1582,11 +1970,13 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "Sil" @@ -1594,28 +1984,40 @@ msgstr "Sil" #~ msgid "Discard draft" #~ msgstr "Taslağı sil" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "Uygulamaların hesabımı oturum açmamış kullanıcılara göstermesini engelle" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" msgstr "Yeni özel beslemeler keşfet" -#: src/view/screens/Feeds.tsx:441 -#~ msgid "Discover new feeds" -#~ msgstr "Yeni beslemeler keşfet" +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "Yeni beslemeler keşfet" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "Görünen ad" @@ -1632,7 +2034,7 @@ msgstr "" msgid "Does not include nudity." msgstr "" -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "" @@ -1650,30 +2052,27 @@ msgstr "Alan adı doğrulandı!" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "Tamam" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "Tamam" @@ -1686,18 +2085,22 @@ msgstr "Tamam{extraText}" #~ msgid "Double tap to sign in" #~ msgstr "Oturum açmak için çift dokunun" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "Resim eklemek için bırakın" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "Apple politikaları gereği, yetişkin içeriği yalnızca kaydı tamamladıktan sonra web üzerinde etkinleştirilebilir." +#~ msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." +#~ msgstr "Apple politikaları gereği, yetişkin içeriği yalnızca kaydı tamamladıktan sonra web üzerinde etkinleştirilebilir." #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" @@ -1719,19 +2122,19 @@ msgstr "örn: Sanatçı, köpek sever ve okumayı seven." msgid "E.g. artistic nudes." msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "örn: Harika Göndericiler" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "örn: Spamcılar" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "örn: Asla kaçırmayan göndericiler." -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "örn: Reklamlarla tekrar tekrar yanıt veren kullanıcılar." @@ -1739,32 +2142,45 @@ msgstr "örn: Reklamlarla tekrar tekrar yanıt veren kullanıcılar." msgid "Each code works once. You'll receive more invite codes periodically." msgstr "Her kod bir kez çalışır. Düzenli aralıklarla daha fazla davet kodu alacaksınız." +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "Düzenle" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "Resmi düzenle" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "Liste ayrıntılarını düzenle" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "Düzenleme Listesini Düzenle" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" msgstr "Beslemelerimi Düzenle" @@ -1772,25 +2188,37 @@ msgstr "Beslemelerimi Düzenle" msgid "Edit my profile" msgstr "Profilimi düzenle" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "Profil düzenle" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "Profil Düzenle" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "Kayıtlı Beslemeleri Düzenle" +#: src/view/screens/Feeds.tsx:416 +#~ msgid "Edit Saved Feeds" +#~ msgstr "Kayıtlı Beslemeleri Düzenle" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "Kullanıcı Listesini Düzenle" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "Görünen adınızı düzenleyin" @@ -1799,11 +2227,20 @@ msgstr "Görünen adınızı düzenleyin" msgid "Edit your profile description" msgstr "Profil açıklamanızı düzenleyin" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "Eğitim" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "E-posta" @@ -1829,7 +2266,7 @@ msgstr "E-posta Güncellendi" msgid "Email verified" msgstr "E-posta doğrulandı" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "E-posta:" @@ -1838,8 +2275,8 @@ msgid "Embed HTML code" msgstr "" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" msgstr "" @@ -1851,18 +2288,18 @@ msgstr "" msgid "Enable {0} only" msgstr "Yalnızca {0} etkinleştir" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "Yetişkin İçeriği Etkinleştir" +#~ msgid "Enable Adult Content" +#~ msgstr "Yetişkin İçeriği Etkinleştir" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "Beslemelerinizde yetişkin içeriği etkinleştirin" +#~ msgid "Enable adult content in your feeds" +#~ msgstr "Beslemelerinizde yetişkin içeriği etkinleştirin" #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 @@ -1873,11 +2310,16 @@ msgstr "" #~ msgid "Enable External Media" #~ msgstr "Harici Medyayı Etkinleştir" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "Medya oynatıcılarını etkinleştir" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "Bu ayarı yalnızca takip ettiğiniz kişiler arasındaki yanıtları görmek için etkinleştirin." @@ -1885,7 +2327,9 @@ msgstr "Bu ayarı yalnızca takip ettiğiniz kişiler arasındaki yanıtları g msgid "Enable this source only" msgstr "" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "" @@ -1893,7 +2337,15 @@ msgstr "" msgid "End of feed" msgstr "Beslemenin sonu" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/components/Lists.tsx:52 +#~ msgid "End of list" +#~ msgstr "" + +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Bu Uygulama Şifresi için bir ad girin" @@ -1910,7 +2362,7 @@ msgstr "" msgid "Enter Confirmation Code" msgstr "Onay Kodunu Girin" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "Şifrenizi değiştirmek için aldığınız kodu girin." @@ -1931,7 +2383,7 @@ msgstr "Doğum tarihinizi girin" #~ msgstr "E-posta adresinizi girin" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "E-posta adresinizi girin" @@ -1951,32 +2403,45 @@ msgstr "Yeni e-posta adresinizi aşağıya girin." msgid "Enter your username and password" msgstr "Kullanıcı adınızı ve şifrenizi girin" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" msgstr "" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "Hata:" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "Herkes" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "" @@ -1992,8 +2457,8 @@ msgstr "" msgid "Exits image view" msgstr "Resim görünümünden çıkar" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "Arama sorgusu girişinden çıkar" @@ -2005,11 +2470,19 @@ msgstr "Arama sorgusu girişinden çıkar" msgid "Expand alt text" msgstr "Alternatif metni genişlet" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "Yanıt verdiğiniz tam gönderiyi genişletin veya daraltın" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "" @@ -2018,12 +2491,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "" @@ -2033,87 +2506,147 @@ msgid "External Media" msgstr "Harici Medya" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "Harici medya, web sitelerinin siz ve cihazınız hakkında bilgi toplamasına izin verebilir. Bilgi, \"oynat\" düğmesine basana kadar gönderilmez veya istenmez." -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "Harici Medya Tercihleri" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "Harici medya ayarları" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "Uygulama şifresi oluşturulamadı." -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "Liste oluşturulamadı. İnternet bağlantınızı kontrol edin ve tekrar deneyin." -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "Gönderi silinemedi, lütfen tekrar deneyin" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:28 +#~ msgid "Failed to load past messages." +#~ msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:110 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:143 #~ msgid "Failed to load recommended feeds" #~ msgstr "Önerilen beslemeler yüklenemedi" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +#~ msgid "Failed to send message(s)." +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "Besleme" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "{0} tarafından besleme" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "Besleme çevrimdışı" +#: src/view/screens/Feeds.tsx:709 +#~ msgid "Feed offline" +#~ msgstr "Besleme çevrimdışı" #: src/view/com/feeds/FeedPage.tsx:143 #~ msgid "Feed Preferences" #~ msgstr "Besleme Tercihleri" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "Geribildirim" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" msgstr "Beslemeler" @@ -2121,19 +2654,23 @@ msgstr "Beslemeler" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Beslemeler, içerikleri düzenlemek için kullanıcılar tarafından oluşturulur. İlginizi çeken bazı beslemeler seçin." -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Beslemeler, kullanıcıların biraz kodlama uzmanlığı ile oluşturduğu özel algoritmalardır. Daha fazla bilgi için <0/>." #: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" -msgstr "Beslemeler aynı zamanda konusal olabilir!" +#~ msgid "Feeds can be topical as well!" +#~ msgstr "Beslemeler aynı zamanda konusal olabilir!" + +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" msgstr "" @@ -2141,17 +2678,21 @@ msgstr "" msgid "Filter from feeds" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "Tamamlanıyor" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "Takip edilecek hesaplar bul" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "" + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" msgstr "" @@ -2167,7 +2708,7 @@ msgstr "" #~ msgid "Finding similar accounts..." #~ msgstr "Benzer hesaplar bulunuyor..." -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." msgstr "" @@ -2175,15 +2716,23 @@ msgstr "" #~ msgid "Fine-tune the content you see on your home screen." #~ msgstr "Ana ekranınızda gördüğünüz içeriği ayarlayın." -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "Tartışma konularını ayarlayın." -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "Fitness" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "Esnek" @@ -2196,112 +2745,172 @@ msgstr "Yatay çevir" msgid "Flip vertically" msgstr "Dikey çevir" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "Takip et" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "Takip et" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "{0} takip et" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" -msgstr "Hepsini Takip Et" +#~ msgid "Follow All" +#~ msgstr "Hepsini Takip Et" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" -msgstr "Seçili hesapları takip edin ve sonraki adıma devam edin" +#~ msgid "Follow selected accounts and continue to the next step" +#~ msgstr "Seçili hesapları takip edin ve sonraki adıma devam edin" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:65 #~ msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." #~ msgstr "Başlamak için bazı kullanıcıları takip edin. Sizi ilginç bulduğunuz kişilere dayanarak size daha fazla kullanıcı önerebiliriz." -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" -msgstr "{0} tarafından takip ediliyor" +#: src/components/KnownFollowers.tsx:169 +#~ msgid "Followed by" +#~ msgstr "" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/view/com/profile/ProfileCard.tsx:190 +#~ msgid "Followed by {0}" +#~ msgstr "{0} tarafından takip ediliyor" + +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" +msgstr "" + +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "Takip edilen kullanıcılar" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "Yalnızca takip edilen kullanıcılar" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "sizi takip etti" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Takipçiler" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "Takip edilenler" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" msgstr "{0} takip ediliyor" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" msgstr "" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" msgstr "" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "Sizi takip ediyor" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "Sizi Takip Ediyor" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "Yiyecek" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Güvenlik nedeniyle, e-posta adresinize bir onay kodu göndermemiz gerekecek." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Güvenlik nedeniyle, bunu tekrar göremezsiniz. Bu şifreyi kaybederseniz, yeni bir tane oluşturmanız gerekecek." @@ -2318,15 +2927,15 @@ msgstr "Güvenlik nedeniyle, bunu tekrar göremezsiniz. Bu şifreyi kaybederseni msgid "Forgot Password" msgstr "Şifremi Unuttum" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "" @@ -2334,7 +2943,7 @@ msgstr "" msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "<0/> tarafından" @@ -2343,48 +2952,77 @@ msgstr "<0/> tarafından" msgid "Gallery" msgstr "Galeri" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Başlayın" -#: src/screens/Onboarding/StepProfile/index.tsx:228 +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" +msgstr "" + +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 msgid "Give your profile a face" msgstr "" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "Geri git" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "Geri Git" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:189 +#~ msgid "Go back to previous screen" +#~ msgstr "" + +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "Önceki adıma geri dön" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "" @@ -2398,16 +3036,24 @@ msgstr "" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "@{queryMaybeHandle} adresine git" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "Sonrakine git" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" msgstr "" @@ -2415,88 +3061,90 @@ msgstr "" msgid "Graphic Media" msgstr "" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Kullanıcı adı" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" msgstr "" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "Sorun mu yaşıyorsunuz?" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "Yardım" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "Takip etmeniz için size bazı hesaplar" +#~ msgid "Here are some accounts for you to follow" +#~ msgstr "Takip etmeniz için size bazı hesaplar" #: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "İşte bazı popüler konusal beslemeler. İstediğiniz kadar takip etmeyi seçebilirsiniz." +#~ msgid "Here are some popular topical feeds. You can choose to follow as many as you like." +#~ msgstr "İşte bazı popüler konusal beslemeler. İstediğiniz kadar takip etmeyi seçebilirsiniz." #: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "İlgi alanlarınıza dayalı olarak bazı konusal beslemeler: {interestsText}. İstediğiniz kadar takip etmeyi seçebilirsiniz." +#~ msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." +#~ msgstr "İlgi alanlarınıza dayalı olarak bazı konusal beslemeler: {interestsText}. İstediğiniz kadar takip etmeyi seçebilirsiniz." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "İşte uygulama şifreniz." -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "Gizle" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "Gizle" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "Gönderiyi gizle" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "İçeriği gizle" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "Bu gönderiyi gizle?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "Kullanıcı listesini gizle" @@ -2504,27 +3152,27 @@ msgstr "Kullanıcı listesini gizle" #~ msgid "Hides posts from {0} in your feed" #~ msgstr "Beslemenizdeki {0} gönderilerini gizler" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Hmm, besleme sunucusuna ulaşırken bir tür sorun oluştu. Lütfen bu konuda besleme sahibini bilgilendirin." -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Hmm, besleme sunucusunun yanlış yapılandırılmış görünüyor. Lütfen bu konuda besleme sahibini bilgilendirin." -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Hmm, besleme sunucusunun çevrimdışı görünüyor. Lütfen bu konuda besleme sahibini bilgilendirin." -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Hmm, besleme sunucusu kötü bir yanıt verdi. Lütfen bu konuda besleme sahibini bilgilendirin." -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, bu beslemeyi bulmakta sorun yaşıyoruz. Silinmiş olabilir." -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." msgstr "" @@ -2532,11 +3180,12 @@ msgstr "" msgid "Hmmmm, we couldn't load that moderation service." msgstr "" -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "Ana Sayfa" @@ -2551,8 +3200,8 @@ msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Barındırma sağlayıcısı" @@ -2575,7 +3224,8 @@ msgstr "Bir onay kodum var" msgid "I have my own domain" msgstr "Kendi alan adım var" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" msgstr "" @@ -2591,27 +3241,31 @@ msgstr "Hiçbiri seçilmezse, tüm yaşlar için uygun." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "" -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "" -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Şifrenizi değiştirmek istiyorsanız, size hesabınızın sizin olduğunu doğrulamak için bir kod göndereceğiz." -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "Resim" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Resim alternatif metni" @@ -2619,15 +3273,23 @@ msgstr "Resim alternatif metni" #~ msgid "Image options" #~ msgstr "Resim seçenekleri" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "Şifre sıfırlama için e-postanıza gönderilen kodu girin" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "Hesap silme için onay kodunu girin" @@ -2639,7 +3301,7 @@ msgstr "Hesap silme için onay kodunu girin" #~ msgid "Input invite code to proceed" #~ msgstr "Devam etmek için davet kodunu girin" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Uygulama şifresi için ad girin" @@ -2647,7 +3309,7 @@ msgstr "Uygulama şifresi için ad girin" msgid "Input new password" msgstr "Yeni şifre girin" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "Hesap silme için şifre girin" @@ -2655,15 +3317,15 @@ msgstr "Hesap silme için şifre girin" #~ msgid "Input phone number for SMS verification" #~ msgstr "SMS doğrulaması için telefon numarası girin" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "{identifier} ile ilişkili şifreyi girin" +#: src/screens/Login/LoginForm.tsx:221 +#~ msgid "Input the password tied to {identifier}" +#~ msgstr "{identifier} ile ilişkili şifreyi girin" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the username or email address you used at signup" msgstr "Kaydolurken kullandığınız kullanıcı adını veya e-posta adresini girin" @@ -2675,7 +3337,7 @@ msgstr "Kaydolurken kullandığınız kullanıcı adını veya e-posta adresini #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "Bluesky bekleme listesine girmek için e-postanızı girin" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "Şifrenizi girin" @@ -2683,20 +3345,24 @@ msgstr "Şifrenizi girin" msgid "Input your preferred hosting provider" msgstr "" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "Kullanıcı adınızı girin" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "Geçersiz veya desteklenmeyen gönderi kaydı" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "Geçersiz kullanıcı adı veya şifre" @@ -2708,11 +3374,11 @@ msgstr "Geçersiz kullanıcı adı veya şifre" msgid "Invite a Friend" msgstr "Arkadaşını Davet Et" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "Davet kodu" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Davet kodu kabul edilmedi. Doğru girdiğinizden emin olun ve tekrar deneyin." @@ -2728,14 +3394,41 @@ msgstr "Davet kodları: {0} kullanılabilir" msgid "Invite codes: 1 available" msgstr "Davet kodları: 1 kullanılabilir" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." -msgstr "Takip ettiğiniz kişilerin gönderilerini olduğu gibi gösterir." +#~ msgid "It shows posts from the people you follow as they happen." +#~ msgstr "Takip ettiğiniz kişilerin gönderilerini olduğu gibi gösterir." + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." +msgstr "" #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "İşler" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "" + #: src/view/com/modals/Waitlist.tsx:67 #~ msgid "Join the waitlist" #~ msgstr "Bekleme listesine katıl" @@ -2749,7 +3442,8 @@ msgstr "İşler" #~ msgid "Join Waitlist" #~ msgstr "Bekleme Listesine Katıl" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "Gazetecilik" @@ -2757,19 +3451,19 @@ msgstr "Gazetecilik" #~ msgid "label has been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "" -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "" -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "" @@ -2777,28 +3471,28 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "Dil seçimi" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "Dil ayarları" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "Dil Ayarları" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "Diller" @@ -2807,7 +3501,7 @@ msgstr "Diller" #~ msgstr "Son adım!" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "" @@ -2819,31 +3513,38 @@ msgstr "" msgid "Learn More" msgstr "Daha Fazla Bilgi Edinin" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Bu uyarı hakkında daha fazla bilgi edinin" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "Bluesky'da neyin herkese açık olduğu hakkında daha fazla bilgi edinin." -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "" -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" msgstr "" @@ -2855,20 +3556,25 @@ msgstr "Hepsini işaretlemeyin, herhangi bir dil görmek için." msgid "Leaving Bluesky" msgstr "Bluesky'dan ayrılıyor" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "kaldı." -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Eski depolama temizlendi, şimdi uygulamayı yeniden başlatmanız gerekiyor." +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "Şifrenizi sıfırlamaya başlayalım!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "Hadi gidelim!" @@ -2876,7 +3582,7 @@ msgstr "Hadi gidelim!" #~ msgid "Library" #~ msgstr "Kütüphane" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "Açık" @@ -2884,14 +3590,23 @@ msgstr "Açık" #~ msgid "Like" #~ msgstr "Beğen" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "" + +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "Bu beslemeyi beğen" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "Beğenenler" @@ -2915,80 +3630,97 @@ msgstr "Beğenenler" #~ msgid "Liked by {likeCount} {0}" #~ msgstr "{likeCount} {0} tarafından beğenildi" -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" msgstr "özel beslemenizi beğendi" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" msgstr "gönderinizi beğendi" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "Beğeniler" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "Bu gönderideki beğeniler" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "Liste" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "Liste Avatarı" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "Liste engellendi" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "{0} tarafından liste" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "Liste silindi" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "Liste sessize alındı" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "Liste Adı" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "Liste engeli kaldırıldı" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "Liste sessizden çıkarıldı" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "Listeler" +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "" + #: src/view/com/post-thread/PostThread.tsx:281 #: src/view/com/post-thread/PostThread.tsx:289 #~ msgid "Load more posts" #~ msgstr "Daha fazla gönderi yükle" -#: src/view/screens/Notifications.tsx:159 +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "Yeni bildirimleri yükle" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "Yeni gönderileri yükle" @@ -3000,18 +3732,23 @@ msgstr "Yükleniyor..." #~ msgid "Local dev server" #~ msgstr "Yerel geliştirme sunucusu" -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "Log" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "Çıkış yap" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "Çıkış yapan görünürlüğü" @@ -3019,7 +3756,7 @@ msgstr "Çıkış yapan görünürlüğü" msgid "Login to account that is not listed" msgstr "Listelenmeyen hesaba giriş yap" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" msgstr "" @@ -3031,12 +3768,20 @@ msgstr "" msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" msgstr "" #: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." +#~ msgid "Looks like you're missing a following feed." +#~ msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" msgstr "" #: src/view/com/modals/LinkWarning.tsx:79 @@ -3047,31 +3792,35 @@ msgstr "Bu gitmek istediğiniz yer olduğundan emin olun!" msgid "Manage your muted words and tags" msgstr "" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "Medya" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "bahsedilen kullanıcılar" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "Bahsedilen kullanıcılar" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "Menü" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" msgstr "" @@ -3079,40 +3828,37 @@ msgstr "" msgid "Message from server: {0}" msgstr "Sunucudan mesaj: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" #: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "" +#~ msgid "Messaging settings" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "Moderasyon" @@ -3120,56 +3866,57 @@ msgstr "Moderasyon" msgid "Moderation details" msgstr "" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" msgstr "{0} tarafından moderasyon listesi" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "<0/> tarafından moderasyon listesi" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "Sizin tarafınızdan moderasyon listesi" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "Moderasyon listesi oluşturuldu" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "Moderasyon listesi güncellendi" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "Moderasyon listeleri" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Moderasyon Listeleri" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "Moderasyon ayarları" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "Moderatör, içeriğe genel bir uyarı koymayı seçti." -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "" @@ -3177,7 +3924,7 @@ msgstr "" msgid "More feeds" msgstr "Daha fazla besleme" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "Daha fazla seçenek" @@ -3185,10 +3932,18 @@ msgstr "Daha fazla seçenek" #~ msgid "More post options" #~ msgstr "Daha fazla gönderi seçeneği" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "En çok beğenilen yanıtlar önce" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "" + #: src/components/TagMenu/index.tsx:249 msgid "Mute" msgstr "" @@ -3197,12 +3952,12 @@ msgstr "" msgid "Mute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "Hesabı Sessize Al" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "Hesapları sessize al" @@ -3210,6 +3965,11 @@ msgstr "Hesapları sessize al" msgid "Mute all {displayTag} posts" msgstr "" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" msgstr "" @@ -3218,16 +3978,16 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "Listeyi sessize al" #: src/components/dms/ConvoMenu.tsx:136 #: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "" +#~ msgid "Mute notifications" +#~ msgstr "" -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "Bu hesapları sessize al?" @@ -3243,25 +4003,25 @@ msgstr "" msgid "Mute this word in tags only" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" msgstr "Konuyu sessize al" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "Sessize alındı" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "Sessize alınan hesaplar" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "Sessize Alınan Hesaplar" @@ -3270,15 +4030,15 @@ msgstr "Sessize Alınan Hesaplar" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Sessize alınan hesapların gönderileri beslemenizden ve bildirimlerinizden kaldırılır. Sessizlik tamamen özeldir." -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Sessizlik özeldir. Sessize alınan hesaplar sizinle etkileşime geçebilir, ancak gönderilerini görmeyecek ve onlardan bildirim almayacaksınız." @@ -3287,52 +4047,62 @@ msgstr "Sessizlik özeldir. Sessize alınan hesaplar sizinle etkileşime geçebi msgid "My Birthday" msgstr "Doğum Günüm" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" msgstr "Beslemelerim" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "Profilim" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" msgstr "Kayıtlı Beslemelerim" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "Ad" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "Ad gerekli" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "Doğa" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "Sonraki ekrana yönlendirir" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "Profilinize yönlendirir" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "" @@ -3346,7 +4116,7 @@ msgstr "" #~ msgid "Never lose access to your followers and data." #~ msgstr "Takipçilerinize ve verilerinize asla erişimi kaybetmeyin." -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "Takipçilerinize veya verilerinize asla erişimi kaybetmeyin." @@ -3354,7 +4124,7 @@ msgstr "Takipçilerinize veya verilerinize asla erişimi kaybetmeyin." msgid "Nevermind, create a handle for me" msgstr "" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "Yeni" @@ -3363,65 +4133,79 @@ msgstr "Yeni" msgid "New" msgstr "Yeni" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "Yeni Moderasyon Listesi" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "Yeni şifre" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "Yeni Şifre" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "Yeni gönderi" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "Yeni gönderi" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "Yeni Gönderi" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "Yeni Kullanıcı Listesi" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "En yeni yanıtlar önce" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "Haberler" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "İleri" @@ -3434,17 +4218,17 @@ msgstr "İleri" msgid "Next image" msgstr "Sonraki resim" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "Hayır" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "Açıklama yok" @@ -3452,68 +4236,102 @@ msgstr "Açıklama yok" msgid "No DNS Panel" msgstr "" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "" + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "{0} artık takip edilmiyor" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" msgstr "" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "Henüz bildirim yok!" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "" + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Sonuç yok" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "\"{query}\" için sonuç bulunamadı" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "{query} için sonuç bulunamadı" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." msgstr "" #: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "" +#~ msgid "No search results found for \"{searchText}\"." +#~ msgstr "" #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "Teşekkürler" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "Hiç kimse" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "" @@ -3522,8 +4340,8 @@ msgstr "" #~ msgid "Not Applicable." #~ msgstr "Uygulanamaz." -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "Bulunamadı" @@ -3532,27 +4350,57 @@ msgstr "Bulunamadı" msgid "Not right now" msgstr "Şu anda değil" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Not: Bluesky açık ve kamusal bir ağdır. Bu ayar yalnızca içeriğinizin Bluesky uygulaması ve web sitesindeki görünürlüğünü sınırlar, diğer uygulamalar bu ayarı dikkate almayabilir. İçeriğiniz hala diğer uygulamalar ve web siteleri tarafından çıkış yapan kullanıcılara gösterilebilir." -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "Bildirimler" -#: src/components/dms/MessageItem.tsx:145 +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" +msgstr "" + +#: src/components/dms/MessageItem.tsx:169 msgid "Now" msgstr "" @@ -3560,7 +4408,7 @@ msgstr "" msgid "Nudity" msgstr "Çıplaklık" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "" @@ -3572,17 +4420,17 @@ msgstr "" msgid "Off" msgstr "" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "Oh hayır!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "Oh hayır! Bir şeyler yanlış gitti." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "" @@ -3590,107 +4438,151 @@ msgstr "" msgid "Okay" msgstr "Tamam" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "En eski yanıtlar önce" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "Onboarding sıfırlama" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "Bir veya daha fazla resimde alternatif metin eksik." -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." -msgstr "Yalnızca {0} yanıtlayabilir." +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" +msgstr "" -#: src/screens/Signup/StepHandle.tsx:98 +#: src/view/com/threadgate/WhoCanReply.tsx:100 +#~ msgid "Only {0} can reply." +#~ msgstr "Yalnızca {0} yanıtlayabilir." + +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "Hata!" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "Aç" -#: src/screens/Onboarding/StepProfile/index.tsx:280 +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:277 msgid "Open avatar creator" msgstr "" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "Emoji seçiciyi aç" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "Uygulama içi tarayıcıda bağlantıları aç" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "Navigasyonu aç" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "Storybook sayfasını aç" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "{numItems} seçeneği açar" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "Hata ayıklama girişi için ek ayrıntıları açar" #: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "Bu bildirimdeki kullanıcıların genişletilmiş bir listesini açar" +#~ msgid "Opens an expanded list of users in this notification" +#~ msgstr "Bu bildirimdeki kullanıcıların genişletilmiş bir listesini açar" #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "Cihazdaki kamerayı açar" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "Besteciyi açar" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "Yapılandırılabilir dil ayarlarını açar" @@ -3702,7 +4594,7 @@ msgstr "Cihaz fotoğraf galerisini açar" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Profil görüntü adı, avatar, arka plan resmi ve açıklama için düzenleyiciyi açar" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "Harici gömülü ayarları açar" @@ -3724,7 +4616,7 @@ msgstr "" #~ msgid "Opens following list" #~ msgstr "Takip listesini açar" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" msgstr "" @@ -3736,7 +4628,11 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Davet kodu listesini açar" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3744,19 +4640,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Hesap silme onayı için modalı açar. E-posta kodu gerektirir." -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "" @@ -3764,24 +4660,24 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Özel alan adı kullanımı için modalı açar" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" msgstr "Moderasyon ayarlarını açar" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "Şifre sıfırlama formunu açar" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "Kayıtlı Beslemeleri düzenlemek için ekranı açar" +#: src/view/screens/Feeds.tsx:417 +#~ msgid "Opens screen to edit Saved Feeds" +#~ msgstr "Kayıtlı Beslemeleri düzenlemek için ekranı açar" -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" msgstr "Tüm kayıtlı beslemeleri içeren ekrana açar" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "" @@ -3789,7 +4685,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "Uygulama şifre ayarları sayfasını açar" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" msgstr "" @@ -3802,36 +4698,53 @@ msgid "Opens the linked website" msgstr "" #: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "" +#~ msgid "Opens the message settings page" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "Storybook sayfasını açar" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "Sistem log sayfasını açar" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "Konu tercihlerini açar" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "{0} seçeneği, {numItems} seçenekten" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "Veya bu seçenekleri birleştirin:" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "" + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "" @@ -3843,11 +4756,15 @@ msgstr "Diğer hesap" #~ msgid "Other service" #~ msgstr "Diğer servis" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "Diğer..." -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "" + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Sayfa bulunamadı" @@ -3856,14 +4773,14 @@ msgstr "Sayfa bulunamadı" msgid "Page Not Found" msgstr "Sayfa Bulunamadı" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "Şifre" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "" @@ -3875,31 +4792,37 @@ msgstr "Şifre güncellendi" msgid "Password updated!" msgstr "Şifre güncellendi!" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "@{0} tarafından takip edilenler" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "@{0} tarafından takip edilenler" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." msgstr "Kamera rulosuna erişim izni gerekiyor." -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "Kamera rulosuna erişim izni reddedildi. Lütfen sistem ayarlarınızda etkinleştirin." -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "Evcil Hayvanlar" @@ -3907,24 +4830,32 @@ msgstr "Evcil Hayvanlar" #~ msgid "Phone number" #~ msgstr "Telefon numarası" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Yetişkinler için resimler." -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "Ana ekrana sabitle" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "Sabitleme Beslemeleri" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" msgstr "" @@ -3932,7 +4863,12 @@ msgstr "" msgid "Play {0}" msgstr "{0} oynat" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/screens/Messages/Settings.tsx:97 +#: src/screens/Messages/Settings.tsx:104 +#~ msgid "Play notification sounds" +#~ msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" msgstr "" @@ -3945,15 +4881,16 @@ msgstr "Videoyu Oynat" msgid "Plays the GIF" msgstr "GIF'i oynatır" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "Kullanıcı adınızı seçin." -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "Şifrenizi seçin." -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "" @@ -3961,7 +4898,7 @@ msgstr "" msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "E-postanızı değiştirmeden önce onaylayın. Bu, e-posta güncelleme araçları eklenirken geçici bir gerekliliktir ve yakında kaldırılacaktır." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Uygulama şifreniz için bir ad girin. Tüm boşluklar izin verilmez." @@ -3969,7 +4906,7 @@ msgstr "Uygulama şifreniz için bir ad girin. Tüm boşluklar izin verilmez." #~ msgid "Please enter a phone number that can receive SMS text messages." #~ msgstr "SMS metin mesajları alabilen bir telefon numarası girin." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Bu Uygulama Şifresi için benzersiz bir ad girin veya rastgele oluşturulanı kullanın." @@ -3985,19 +4922,29 @@ msgstr "" #~ msgid "Please enter the verification code sent to {phoneNumberFormatted}." #~ msgstr "{phoneNumberFormatted} numarasına gönderilen doğrulama kodunu girin." -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "E-postanızı girin." -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "Lütfen şifrenizi de girin:" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "" + #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" msgstr "" @@ -4010,11 +4957,12 @@ msgstr "" msgid "Please Verify Your Email" msgstr "Lütfen E-postanızı Doğrulayın" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "Bağlantı kartınızın yüklenmesini bekleyin" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "Politika" @@ -4022,46 +4970,46 @@ msgstr "Politika" msgid "Porn" msgstr "Pornografi" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "Gönder" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" msgstr "Gönderi" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "{0} tarafından gönderi" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "@{0} tarafından gönderi" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "Gönderi silindi" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Gönderi gizlendi" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" msgstr "" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "Gönderi dili" @@ -4069,8 +5017,8 @@ msgstr "Gönderi dili" msgid "Post Languages" msgstr "Gönderi Dilleri" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Gönderi bulunamadı" @@ -4078,7 +5026,8 @@ msgstr "Gönderi bulunamadı" msgid "posts" msgstr "" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "Gönderiler" @@ -4086,7 +5035,7 @@ msgstr "Gönderiler" msgid "Posts can be muted based on their text, their tags, or both." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "Gönderiler gizlendi" @@ -4094,14 +5043,22 @@ msgstr "Gönderiler gizlendi" msgid "Potentially Misleading Link" msgstr "Potansiyel Yanıltıcı Bağlantı" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "" @@ -4110,45 +5067,57 @@ msgstr "" #~ msgid "Press to Retry" #~ msgstr "" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Önceki resim" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "Birincil Dil" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "Takipçilerinizi Önceliklendirin" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "Gizlilik" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Gizlilik Politikası" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "İşleniyor..." -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "Profil" @@ -4156,11 +5125,11 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil güncellendi" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "E-postanızı doğrulayarak hesabınızı koruyun." -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "Herkese Açık" @@ -4168,33 +5137,52 @@ msgstr "Herkese Açık" msgid "Public, shareable lists of users to mute or block in bulk." msgstr "Toplu olarak sessize almak veya engellemek için herkese açık, paylaşılabilir kullanıcı listeleri." -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." msgstr "Beslemeleri yönlendirebilen herkese açık, paylaşılabilir listeler." -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "Gönderiyi yayınla" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "Yanıtı yayınla" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "Gönderiyi alıntıla" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 -msgid "Quote post" -msgstr "Gönderiyi alıntıla" +#: src/view/com/modals/Repost.tsx:66 +#~ msgctxt "action" +#~ msgid "Quote post" +#~ msgstr "Gönderiyi alıntıla" #: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "Gönderiyi Alıntıla" +#~ msgctxt "action" +#~ msgid "Quote Post" +#~ msgstr "Gönderiyi Alıntıla" -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "Rastgele (yani \"Gönderenin Ruleti\")" @@ -4202,11 +5190,19 @@ msgstr "Rastgele (yani \"Gönderenin Ruleti\")" msgid "Ratios" msgstr "Oranlar" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" msgstr "" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "" + +#: src/components/dms/MessageReportDialog.tsx:149 +#~ msgid "Reason: {0}" +#~ msgstr "" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "" @@ -4218,11 +5214,26 @@ msgstr "" #~ msgid "Recommended Users" #~ msgstr "Önerilen Kullanıcılar" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "" + +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Kaldır" @@ -4231,11 +5242,15 @@ msgstr "Kaldır" #~ msgid "Remove {0} from my feeds?" #~ msgstr "{0} beslemelerimden kaldırılsın mı?" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "" + #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Hesabı kaldır" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "" @@ -4243,9 +5258,13 @@ msgstr "" msgid "Remove Banner" msgstr "" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "Beslemeyi kaldır" @@ -4253,15 +5272,16 @@ msgstr "Beslemeyi kaldır" msgid "Remove feed?" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "Beslemelerimden kaldır" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "" @@ -4269,7 +5289,7 @@ msgstr "" msgid "Remove image" msgstr "Resmi kaldır" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "Resim önizlemesini kaldır" @@ -4277,11 +5297,20 @@ msgstr "Resim önizlemesini kaldır" msgid "Remove mute word from your list" msgstr "" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "" + +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 msgid "Remove quote" msgstr "" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "Yeniden göndermeyi kaldır" @@ -4297,48 +5326,60 @@ msgstr "" #~ msgid "Remove this feed from your saved feeds?" #~ msgstr "Bu beslemeyi kayıtlı beslemelerinizden kaldırsın mı?" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "Listeden kaldırıldı" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" msgstr "Beslemelerimden kaldırıldı" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" msgstr "" #: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "{0} adresinden varsayılan küçük resmi kaldırır" +#~ msgid "Removes default thumbnail from {0}" +#~ msgstr "{0} adresinden varsayılan küçük resmi kaldırır" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" msgstr "" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 msgid "Replace with Discover" msgstr "" -#: src/view/screens/Profile.tsx:194 +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "Yanıtlar" -#: src/view/com/threadgate/WhoCanReply.tsx:98 +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "" + +#: src/view/com/threadgate/WhoCanReply.tsx:123 +#~ msgid "Replies on this thread are disabled" +#~ msgstr "" + +#: src/components/WhoCanReply.tsx:243 msgid "Replies to this thread are disabled" msgstr "Bu konuya yanıtlar devre dışı bırakıldı" -#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "Yanıtla" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "Yanıt Filtreleri" @@ -4348,13 +5389,26 @@ msgstr "Yanıt Filtreleri" #~ msgid "Reply to <0/>" #~ msgstr "<0/>'a yanıt" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "" -#: src/components/dms/MessageMenu.tsx:109 +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" +msgstr "" + +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 msgid "Report" msgstr "" @@ -4367,14 +5421,14 @@ msgstr "" #~ msgid "Report account" #~ msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "Hesabı Raporla" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" msgstr "" @@ -4382,64 +5436,75 @@ msgstr "" msgid "Report dialog" msgstr "" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "Beslemeyi raporla" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "Listeyi Raporla" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "Gönderiyi raporla" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "Yeniden gönder" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "Yeniden gönder" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "Gönderiyi yeniden gönder veya alıntıla" @@ -4447,7 +5512,7 @@ msgstr "Gönderiyi yeniden gönder veya alıntıla" msgid "Reposted By" msgstr "Yeniden Gönderen" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "{0} tarafından yeniden gönderildi" @@ -4455,15 +5520,20 @@ msgstr "{0} tarafından yeniden gönderildi" #~ msgid "Reposted by <0/>" #~ msgstr "<0/>'a yeniden gönderildi" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "gönderinizi yeniden gönderdi" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "Bu gönderinin yeniden gönderilmesi" @@ -4476,12 +5546,12 @@ msgstr "Değişiklik İste" #~ msgid "Request code" #~ msgstr "Kod iste" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "Kod İste" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "Göndermeden önce alternatif metin gerektir" @@ -4489,7 +5559,7 @@ msgstr "Göndermeden önce alternatif metin gerektir" msgid "Require email code to log into your account" msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "Bu sağlayıcı için gereklidir" @@ -4498,11 +5568,11 @@ msgstr "Bu sağlayıcı için gereklidir" msgid "Resend email" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "Sıfırlama kodu" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "Sıfırlama Kodu" @@ -4510,8 +5580,8 @@ msgstr "Sıfırlama Kodu" #~ msgid "Reset onboarding" #~ msgstr "Onboarding sıfırla" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "Onboarding durumunu sıfırla" @@ -4523,20 +5593,20 @@ msgstr "Şifreyi sıfırla" #~ msgid "Reset preferences" #~ msgstr "Tercihleri sıfırla" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "Tercih durumunu sıfırla" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "Onboarding durumunu sıfırlar" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "Tercih durumunu sıfırlar" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "Giriş tekrar denemesi" @@ -4545,15 +5615,16 @@ msgstr "Giriş tekrar denemesi" msgid "Retries the last action, which errored out" msgstr "Son hataya neden olan son eylemi tekrarlar" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -4564,7 +5635,8 @@ msgstr "Tekrar dene" #~ msgstr "Tekrar dene." #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "Önceki sayfaya dön" @@ -4573,7 +5645,7 @@ msgid "Returns to home page" msgstr "" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "" @@ -4582,21 +5654,23 @@ msgstr "" #~ msgstr "KUM KUTUSU. Gönderiler ve hesaplar kalıcı değildir." #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Kaydet" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "Kaydet" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Alternatif metni kaydet" @@ -4612,20 +5686,29 @@ msgstr "Değişiklikleri Kaydet" msgid "Save handle change" msgstr "Kullanıcı adı değişikliğini kaydet" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "Resim kırpma kaydet" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" msgstr "" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" msgstr "Kayıtlı Beslemeler" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" msgstr "" @@ -4633,8 +5716,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "" @@ -4650,37 +5733,45 @@ msgstr "{handle} kullanıcı adı değişikliğini kaydeder" msgid "Saves image crop settings" msgstr "" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "Bilim" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "Başa kaydır" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "Ara" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "\"{query}\" için ara" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" msgstr "" @@ -4692,25 +5783,32 @@ msgstr "" msgid "Search for all posts with tag {displayTag}" msgstr "" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." msgstr "" -#: src/view/com/auth/LoggedOut.tsx:105 +#: src/components/dms/NewChat.tsx:226 +#~ msgid "Search for someone to start a conversation with." +#~ msgstr "" + #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "Kullanıcıları ara" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" msgstr "" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "" @@ -4735,11 +5833,11 @@ msgid "See <0>{displayTag} posts by this user" msgstr "" #: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "" +#: src/view/com/util/UserAvatar.tsx:402 +#~ msgid "See profile" +#~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "Bu kılavuzu gör" @@ -4775,15 +5873,15 @@ msgstr "" msgid "Select from an existing account" msgstr "Mevcut bir hesaptan seç" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" msgstr "" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" msgstr "" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "" @@ -4801,14 +5899,14 @@ msgstr "{i} seçeneği, {numItems} seçenekten" #~ msgstr "Servis seç" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "Aşağıdaki hesaplardan bazılarını takip et" +#~ msgid "Select some accounts below to follow" +#~ msgstr "Aşağıdaki hesaplardan bazılarını takip et" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4817,14 +5915,18 @@ msgid "Select the service that hosts your data." msgstr "" #: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" -msgstr "Aşağıdaki listeden takip edilecek konu beslemelerini seçin" +#~ msgid "Select topical feeds to follow from the list below" +#~ msgstr "Aşağıdaki listeden takip edilecek konu beslemelerini seçin" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" +msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "Görmek istediğinizi (veya görmek istemediğinizi) seçin, gerisini biz hallederiz." +#~ msgid "Select what you want to see (or not see), and we’ll handle the rest." +#~ msgstr "Görmek istediğinizi (veya görmek istemediğinizi) seçin, gerisini biz hallederiz." -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." msgstr "Abone olduğunuz beslemelerin hangi dilleri içermesini istediğinizi seçin. Hiçbiri seçilmezse, tüm diller gösterilir." @@ -4832,15 +5934,15 @@ msgstr "Abone olduğunuz beslemelerin hangi dilleri içermesini istediğinizi se #~ msgid "Select your app language for the default text to display in the app" #~ msgstr "Uygulama dilinizi seçin, uygulamada görüntülenecek varsayılan metin" -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "Aşağıdaki seçeneklerden ilgi alanlarınızı seçin" @@ -4848,46 +5950,53 @@ msgstr "Aşağıdaki seçeneklerden ilgi alanlarınızı seçin" #~ msgid "Select your phone's country" #~ msgstr "Telefonunuzun ülkesini seçin" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." msgstr "Beslemenizdeki çeviriler için tercih ettiğiniz dili seçin." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "Birincil algoritmik beslemelerinizi seçin" +#~ msgid "Select your primary algorithmic feeds" +#~ msgstr "Birincil algoritmik beslemelerinizi seçin" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" -msgstr "İkincil algoritmik beslemelerinizi seçin" +#~ msgid "Select your secondary algorithmic feeds" +#~ msgstr "İkincil algoritmik beslemelerinizi seçin" + +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" +msgstr "" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Onay E-postası Gönder" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "E-posta gönder" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "E-posta Gönder" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "Geribildirim gönder" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." +msgstr "" + +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "" @@ -4904,7 +6013,12 @@ msgstr "" msgid "Send verification email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "Hesap silme için onay kodu içeren e-posta gönderir" @@ -4922,7 +6036,7 @@ msgstr "" #~ msgid "Set Age" #~ msgstr "Yaş Ayarla" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "" @@ -4954,19 +6068,19 @@ msgstr "Yeni şifre ayarla" #~ msgid "Set password" #~ msgstr "Şifre ayarla" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Bu ayarı \"Hayır\" olarak ayarlayarak beslemenizden tüm alıntı gönderileri gizleyebilirsiniz. Yeniden göndermeler hala görünür olacaktır." -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Bu ayarı \"Hayır\" olarak ayarlayarak beslemenizden tüm yanıtları gizleyebilirsiniz." -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Bu ayarı \"Hayır\" olarak ayarlayarak beslemenizden tüm yeniden göndermeleri gizleyebilirsiniz." -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Bu ayarı \"Evet\" olarak ayarlayarak yanıtları konu tabanlı görüntülemek için ayarlayın. Bu deneysel bir özelliktir." @@ -4974,7 +6088,7 @@ msgstr "Bu ayarı \"Evet\" olarak ayarlayarak yanıtları konu tabanlı görünt #~ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." #~ msgstr "Bu ayarı \"Evet\" olarak ayarlayarak kayıtlı beslemelerinizin örneklerini takip ettiğiniz beslemede göstermek için ayarlayın. Bu deneysel bir özelliktir." -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "" @@ -4986,23 +6100,23 @@ msgstr "Hesabınızı ayarlayın" msgid "Sets Bluesky username" msgstr "Bluesky kullanıcı adını ayarlar" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "" @@ -5031,12 +6145,11 @@ msgstr "" #~ msgid "Sets server for the Bluesky client" #~ msgstr "Bluesky istemcisi için sunucuyu ayarlar" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "Ayarlar" @@ -5048,45 +6161,86 @@ msgstr "Cinsel aktivite veya erotik çıplaklık." msgid "Sexually Suggestive" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "Paylaş" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "Paylaş" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "Paylaş" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "Beslemeyi paylaş" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "Göster" @@ -5094,7 +6248,7 @@ msgstr "Göster" #~ msgid "Show all replies" #~ msgstr "Tüm yanıtları göster" -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" msgstr "" @@ -5116,82 +6270,90 @@ msgstr "" #~ msgid "Show embeds from {0}" #~ msgstr "{0} adresinden gömülü öğeleri göster" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "{0} adresine benzer takipçileri göster" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 msgid "Show less like this" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "Daha Fazla Göster" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" msgstr "Beslemelerimden Gönderileri Göster" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "Alıntı Gönderileri Göster" #: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "Alıntı gönderileri takip etme beslemesinde göster" +#~ msgid "Show quote-posts in Following feed" +#~ msgstr "Alıntı gönderileri takip etme beslemesinde göster" #: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "Takip etme beslemesinde alıntıları göster" +#~ msgid "Show quotes in Following" +#~ msgstr "Takip etme beslemesinde alıntıları göster" #: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "Yeniden göndermeleri takip etme beslemesinde göster" +#~ msgid "Show re-posts in Following feed" +#~ msgstr "Yeniden göndermeleri takip etme beslemesinde göster" -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "Yanıtları Göster" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "Takip ettiğiniz kişilerin yanıtlarını diğer tüm yanıtlardan önce göster." #: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "Takip etme beslemesinde yanıtları göster" +#~ msgid "Show replies in Following" +#~ msgstr "Takip etme beslemesinde yanıtları göster" #: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "Takip etme beslemesinde yanıtları göster" +#~ msgid "Show replies in Following feed" +#~ msgstr "Takip etme beslemesinde yanıtları göster" #: src/view/screens/PreferencesFollowingFeed.tsx:70 #~ msgid "Show replies with at least {value} {0}" #~ msgstr "En az {value} {0} olan yanıtları göster" -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "Yeniden Göndermeleri Göster" #: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "Takip etme beslemesinde yeniden göndermeleri göster" +#~ msgid "Show reposts in Following" +#~ msgstr "Takip etme beslemesinde yeniden göndermeleri göster" -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "İçeriği göster" #: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "Kullanıcıları göster" +#~ msgid "Show users" +#~ msgstr "Kullanıcıları göster" #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" @@ -5213,17 +6375,17 @@ msgstr "Beslemenizde {0} adresinden gönderileri gösterir" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -5256,17 +6418,17 @@ msgstr "" msgid "Sign into Bluesky or create a new account" msgstr "" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "Çıkış yap" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -5282,7 +6444,7 @@ msgstr "Konuşmaya katılmak için kaydolun veya giriş yapın" msgid "Sign-in Required" msgstr "Giriş Yapılması Gerekiyor" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "Olarak giriş yapıldı" @@ -5291,16 +6453,25 @@ msgstr "Olarak giriş yapıldı" msgid "Signed in as @{0}" msgstr "@{0} olarak giriş yapıldı" +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "" + #: src/view/com/modals/SwitchAccount.tsx:66 #~ msgid "Signs {0} out of Bluesky" #~ msgstr "{0} adresini Bluesky'den çıkarır" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "Atla" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "Bu akışı atla" @@ -5308,11 +6479,25 @@ msgstr "Bu akışı atla" #~ msgid "SMS verification" #~ msgstr "SMS doğrulama" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "Yazılım Geliştirme" -#: src/screens/Messages/Conversation/index.tsx:89 +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" +msgstr "" + +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:203 +#~ msgid "Some subtitle" +#~ msgstr "" + +#: src/screens/Messages/Conversation/index.tsx:106 msgid "Something went wrong" msgstr "" @@ -5320,43 +6505,58 @@ msgstr "" #~ msgid "Something went wrong and we're not sure what." #~ msgstr "Bir şeyler yanlış gitti ve ne olduğundan emin değiliz." +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "" +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "" + #: src/view/com/modals/Waitlist.tsx:51 #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "Bir şeyler yanlış gitti. E-postanızı kontrol edin ve tekrar deneyin." -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "Üzgünüz! Oturumunuzun süresi doldu. Lütfen tekrar giriş yapın." -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "Yanıtları Sırala" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "Aynı gönderiye verilen yanıtları şuna göre sırala:" #: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" +#~ msgid "Source:" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" msgstr "" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "Spor" @@ -5368,15 +6568,50 @@ msgstr "Kare" #~ msgid "Staging" #~ msgstr "Staging" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" msgstr "" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "" + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." +msgstr "" + #: src/view/screens/Settings/index.tsx:862 #~ msgid "Status page" #~ msgstr "Durum sayfası" -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" msgstr "" @@ -5384,7 +6619,7 @@ msgstr "" #~ msgid "Step" #~ msgstr "" -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" msgstr "" @@ -5392,49 +6627,56 @@ msgstr "" #~ msgid "Step {0} of {numSteps}" #~ msgstr "{numSteps} adımdan {0}. adım" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "Depolama temizlendi, şimdi uygulamayı yeniden başlatmanız gerekiyor." -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "Submit" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "Abone ol" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "{0} beslemesine abone ol" +#~ msgid "Subscribe to the {0} feed" +#~ msgstr "{0} beslemesine abone ol" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "Bu listeye abone ol" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "Önerilen Takipçiler" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "" +#: src/view/screens/Search/Search.tsx:425 +#~ msgid "Suggested Follows" +#~ msgstr "Önerilen Takipçiler" + +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Sana önerilenler" @@ -5443,7 +6685,7 @@ msgstr "Sana önerilenler" msgid "Suggestive" msgstr "Tehlikeli" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -5458,19 +6700,23 @@ msgstr "Destek" msgid "Switch Account" msgstr "Hesap Değiştir" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "{0} adresine geç" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "Giriş yaptığınız hesabı değiştirir" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "Sistem" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "Sistem günlüğü" @@ -5486,29 +6732,51 @@ msgstr "" msgid "Tall" msgstr "Uzun" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "Tamamen görüntülemek için dokunun" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "Teknoloji" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "Şartlar" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Hizmet Şartları" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "" @@ -5516,12 +6784,13 @@ msgstr "" msgid "text" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Metin giriş alanı" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "" @@ -5529,12 +6798,21 @@ msgstr "" msgid "That contains the following:" msgstr "" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "Hesap, engeli kaldırdıktan sonra sizinle etkileşime geçebilecek." @@ -5550,15 +6828,24 @@ msgstr "Topluluk Kuralları <0/> konumuna taşındı" msgid "The Copyright Policy has been moved to <0/>" msgstr "Telif Hakkı Politikası <0/> konumuna taşındı" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "" @@ -5566,8 +6853,8 @@ msgstr "" msgid "The following steps will help customize your Bluesky experience." msgstr "Aşağıdaki adımlar, Bluesky deneyiminizi özelleştirmenize yardımcı olacaktır." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Gönderi silinmiş olabilir." @@ -5575,6 +6862,10 @@ msgstr "Gönderi silinmiş olabilir." msgid "The Privacy Policy has been moved to <0/>" msgstr "Gizlilik Politikası <0/> konumuna taşındı" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "" + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "Destek formu taşındı. Yardıma ihtiyacınız varsa, lütfen <0/> veya bize ulaşmak için {HELP_DESK_URL} adresini ziyaret edin." @@ -5584,51 +6875,56 @@ msgid "The Terms of Service have been moved to" msgstr "Hizmet Şartları taşındı" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" -msgstr "Denemek için birçok besleme var:" +#~ msgid "There are many feeds to try:" +#~ msgstr "Denemek için birçok besleme var:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Sunucuya ulaşma konusunda bir sorun oluştu, lütfen internet bağlantınızı kontrol edin ve tekrar deneyin." -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Bu beslemeyi kaldırma konusunda bir sorun oluştu. Lütfen internet bağlantınızı kontrol edin ve tekrar deneyin." #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Beslemelerinizi güncelleme konusunda bir sorun oluştu, lütfen internet bağlantınızı kontrol edin ve tekrar deneyin." -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." msgstr "" #: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" +#~ msgid "There was an issue connecting to the chat." +#~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "Sunucuya ulaşma konusunda bir sorun oluştu" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "Sunucunuza ulaşma konusunda bir sorun oluştu" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Bildirimleri almakta bir sorun oluştu. Tekrar denemek için buraya dokunun." -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Gönderileri almakta bir sorun oluştu. Tekrar denemek için buraya dokunun." @@ -5636,51 +6932,53 @@ msgstr "Gönderileri almakta bir sorun oluştu. Tekrar denemek için buraya doku msgid "There was an issue fetching the list. Tap here to try again." msgstr "Listeyi almakta bir sorun oluştu. Tekrar denemek için buraya dokunun." -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Listelerinizi almakta bir sorun oluştu. Tekrar denemek için buraya dokunun." -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "Tercihlerinizi sunucuyla senkronize etme konusunda bir sorun oluştu" +#~ msgid "There was an issue syncing your preferences with the server" +#~ msgstr "Tercihlerinizi sunucuyla senkronize etme konusunda bir sorun oluştu" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Uygulama şifrelerinizi almakta bir sorun oluştu" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "Bir sorun oluştu! {0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "Bir sorun oluştu. Lütfen internet bağlantınızı kontrol edin ve tekrar deneyin." -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "Uygulamada beklenmeyen bir sorun oluştu. Bu size de olduysa lütfen bize bildirin!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "Bluesky'e bir dizi yeni kullanıcı geldi! Hesabınızı en kısa sürede etkinleştireceğiz." @@ -5689,8 +6987,8 @@ msgstr "Bluesky'e bir dizi yeni kullanıcı geldi! Hesabınızı en kısa süred #~ msgstr "Bu numarada bir sorun var. Lütfen ülkenizi seçin ve tam telefon numaranızı girin!" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "Bunlar, beğenebileceğiniz popüler hesaplar:" +#~ msgid "These are popular accounts you might like:" +#~ msgstr "Bunlar, beğenebileceğiniz popüler hesaplar:" #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" @@ -5700,14 +6998,26 @@ msgstr "Bu {screenDescription} işaretlendi:" msgid "This account has requested that users sign in to view their profile." msgstr "Bu hesap, kullanıcıların profilini görüntülemek için giriş yapmalarını istedi." -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:26 +#~ msgid "This chat was disconnected due to a network error." +#~ msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." msgstr "" @@ -5721,33 +7031,43 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Bu içerik {0} tarafından barındırılıyor. Harici medyayı etkinleştirmek ister misiniz?" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Bu içerik, içerikte yer alan kullanıcılardan biri diğerini engellediği için mevcut değil." -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "Bu içerik, bir Bluesky hesabı olmadan görüntülenemez." -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Bu besleme şu anda yüksek trafik alıyor ve geçici olarak kullanılamıyor. Lütfen daha sonra tekrar deneyin." #: src/screens/Profile/Sections/Feed.tsx:59 #: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "Bu besleme boş!" +#: src/view/screens/ProfileList.tsx:729 +#~ msgid "This feed is empty!" +#~ msgstr "Bu besleme boş!" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Bu besleme boş! Daha fazla kullanıcı takip etmeniz veya dil ayarlarınızı ayarlamanız gerekebilir." -#: src/view/com/posts/FeedShutdownMsg.tsx:97 +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:99 msgid "This feed is no longer online. We are showing <0>Discover instead." msgstr "" @@ -5772,10 +7092,14 @@ msgid "This label was applied by the author." msgstr "" #: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" +#~ msgid "This label was applied by you" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "" @@ -5783,7 +7107,7 @@ msgstr "" msgid "This link is taking you to the following website:" msgstr "Bu bağlantı sizi aşağıdaki web sitesine götürüyor:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "Bu liste boş!" @@ -5791,24 +7115,24 @@ msgstr "Bu liste boş!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "Bu isim zaten kullanılıyor" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "Bu gönderi silindi." -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "" @@ -5824,8 +7148,12 @@ msgstr "" msgid "This user doesn't have any followers." msgstr "" +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "Bu kullanıcı sizi engelledi. İçeriklerini göremezsiniz." @@ -5849,6 +7177,10 @@ msgstr "" msgid "This user is included in the <0>{0} list which you have muted." msgstr "" +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "" + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "" @@ -5865,20 +7197,24 @@ msgstr "" #~ msgid "This will hide this post from your feeds." #~ msgstr "Bu, bu gönderiyi beslemelerinizden gizleyecektir." -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "Konu Tercihleri" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "Konu Tabanlı Mod" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "Konu Tercihleri" @@ -5886,7 +7222,7 @@ msgstr "Konu Tercihleri" msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "" -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." msgstr "" @@ -5898,16 +7234,16 @@ msgstr "" msgid "Toggle between muted word options." msgstr "" -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "Açılır menüyü aç/kapat" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "" @@ -5915,10 +7251,12 @@ msgstr "" msgid "Transformations" msgstr "Dönüşümler" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "Çevir" @@ -5927,11 +7265,15 @@ msgctxt "action" msgid "Try again" msgstr "Tekrar dene" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" msgstr "" @@ -5939,53 +7281,65 @@ msgstr "" msgid "Type:" msgstr "" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "Listeyi engeli kaldır" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "Listeyi sessizden çıkar" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Hizmetinize ulaşılamıyor. Lütfen internet bağlantınızı kontrol edin." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "Engeli kaldır" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "Engeli kaldır" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "Hesabın engelini kaldır" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" msgstr "" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "Yeniden göndermeyi geri al" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "Takibi bırak" @@ -5994,12 +7348,12 @@ msgstr "Takibi bırak" msgid "Unfollow" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "{0} adresini takibi bırak" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "" @@ -6011,12 +7365,12 @@ msgstr "" #~ msgid "Unlike" #~ msgstr "Beğenmeyi geri al" -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "Sessizden çıkar" @@ -6024,8 +7378,8 @@ msgstr "Sessizden çıkar" msgid "Unmute {truncatedTag}" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "Hesabın sessizliğini kaldır" @@ -6033,50 +7387,58 @@ msgstr "Hesabın sessizliğini kaldır" msgid "Unmute all {displayTag} posts" msgstr "" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/components/dms/ConvoMenu.tsx:140 +#~ msgid "Unmute notifications" +#~ msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" msgstr "Konunun sessizliğini kaldır" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "Sabitlemeyi kaldır" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "Moderasyon listesini sabitlemeyi kaldır" +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "" + #: src/view/screens/ProfileFeed.tsx:345 #~ msgid "Unsave" #~ msgstr "Kaydedilenlerden kaldır" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "" #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" +#~ msgid "Unwanted sexual content" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 +#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:85 msgid "Unwanted Sexual Content" msgstr "" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "Listelerde {displayName} güncelle" @@ -6092,7 +7454,7 @@ msgstr "" msgid "Updating..." msgstr "Güncelleniyor..." -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" msgstr "" @@ -6100,20 +7462,20 @@ msgstr "" msgid "Upload a text file to:" msgstr "Bir metin dosyası yükleyin:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -6123,7 +7485,7 @@ msgstr "" msgid "Use a file on your server" msgstr "" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Uygulama şifrelerini kullanarak hesabınızın veya şifrenizin tam erişimini vermeden diğer Bluesky istemcilerine giriş yapın." @@ -6153,7 +7515,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Bunu, kullanıcı adınızla birlikte diğer uygulamaya giriş yapmak için kullanın." @@ -6166,19 +7528,23 @@ msgid "Used by:" msgstr "Kullanıcı:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "Kullanıcı Engellendi" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr "" +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "Liste Tarafından Engellenen Kullanıcı" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "" @@ -6190,46 +7556,53 @@ msgstr "Kullanıcı Sizi Engelledi" #~ msgid "User handle" #~ msgstr "Kullanıcı adı" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "{0} tarafından oluşturulan kullanıcı listesi" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "<0/> tarafından oluşturulan kullanıcı listesi" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "Sizin tarafınızdan oluşturulan kullanıcı listesi" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "Kullanıcı listesi oluşturuldu" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "Kullanıcı listesi güncellendi" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "Kullanıcı Listeleri" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "Kullanıcı adı veya e-posta adresi" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "Kullanıcılar" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "<0/> tarafından takip edilen kullanıcılar" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "\"{0}\" içindeki kullanıcılar" @@ -6253,15 +7626,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "E-postayı doğrula" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "E-postamı doğrula" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "E-postamı Doğrula" @@ -6282,31 +7655,44 @@ msgstr "E-postanızı Doğrulayın" #~ msgid "Version {0}" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "Video Oyunları" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "{0}'ın avatarını görüntüle" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "Hata ayıklama girişini görüntüle" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "Tam konuyu görüntüle" @@ -6314,13 +7700,15 @@ msgstr "Tam konuyu görüntüle" msgid "View information about these labels" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Profili görüntüle" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "Avatarı görüntüle" @@ -6328,10 +7716,15 @@ msgstr "Avatarı görüntüle" msgid "View the labeling service provided by @{0}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -6340,7 +7733,6 @@ msgstr "Siteyi Ziyaret Et" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Uyar" @@ -6360,15 +7752,15 @@ msgstr "" msgid "We couldn't find any results for that hashtag." msgstr "" -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" msgstr "" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Hesabınızın hazır olmasına {estimatedTime} tahmin ediyoruz." -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Harika vakit geçirmenizi umuyoruz. Unutmayın, Bluesky:" @@ -6381,22 +7773,22 @@ msgid "We recommend avoiding common words that appear in many posts, since it ca msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "\"Keşfet\" beslememizi öneririz:" +#~ msgid "We recommend our \"Discover\" feed:" +#~ msgstr "\"Keşfet\" beslememizi öneririz:" #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "" -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Bağlantı kuramadık. Hesabınızı kurmaya devam etmek için tekrar deneyin. Başarısız olmaya devam ederse bu akışı atlayabilirsiniz." -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "Hesabınız hazır olduğunda size bildireceğiz." @@ -6404,15 +7796,19 @@ msgstr "Hesabınız hazır olduğunda size bildireceğiz." #~ msgid "We'll look into your appeal promptly." #~ msgstr "İtirazınıza hızlı bir şekilde bakacağız." -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "Bu, deneyiminizi özelleştirmenize yardımcı olmak için kullanılacak." -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "Sizi aramızda görmekten çok mutluyuz!" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Üzgünüz, ancak bu listeyi çözemedik. Bu durum devam ederse, lütfen liste oluşturucu, @{handleOrDid} ile iletişime geçin." @@ -6420,34 +7816,54 @@ msgstr "Üzgünüz, ancak bu listeyi çözemedik. Bu durum devam ederse, lütfen msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Üzgünüz, ancak aramanız tamamlanamadı. Lütfen birkaç dakika içinde tekrar deneyin." -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "" + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Üzgünüz! Aradığınız sayfayı bulamıyoruz." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 +#~ msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#~ msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "" + +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" msgstr "" #: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 #~ msgid "Welcome to <0>Bluesky" #~ msgstr "<0>Bluesky'e hoş geldiniz" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" msgstr "İlgi alanlarınız nelerdir?" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "" + #: src/view/com/modals/report/Modal.tsx:169 #~ msgid "What is the issue with this {collectionName}?" #~ msgstr "Bu {collectionName} ile ilgili sorun nedir?" #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "Nasılsınız?" @@ -6459,36 +7875,53 @@ msgstr "Bu gönderide hangi diller kullanılıyor?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Algoritmik beslemelerinizde hangi dilleri görmek istersiniz?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "Kimler yanıtlayabilir" -#: src/screens/Home/NoFeedsPinned.tsx:92 +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "" + +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "" @@ -6496,21 +7929,22 @@ msgstr "" msgid "Wide" msgstr "Geniş" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "Gönderi yaz" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "Yanıtınızı yazın" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "Yazarlar" @@ -6519,20 +7953,41 @@ msgstr "Yazarlar" #~ msgstr "XXXXXX" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "Evet" -#: src/components/dms/MessageItem.tsx:158 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "" + +#: src/components/dms/MessageItem.tsx:182 msgid "Yesterday, {time}" msgstr "" -#: src/screens/Deactivated.tsx:136 +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "Sıradasınız." @@ -6540,29 +7995,49 @@ msgstr "Sıradasınız." msgid "You are not following anyone." msgstr "" -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "Ayrıca takip edebileceğiniz yeni Özel Beslemeler keşfedebilirsiniz." +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." -msgstr "Bu ayarları daha sonra değiştirebilirsiniz." +#~ msgid "You can change these settings later." +#~ msgstr "Bu ayarları daha sonra değiştirebilirsiniz." + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "" + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." msgstr "Artık yeni şifrenizle giriş yapabilirsiniz." +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "" +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Henüz hiç davet kodunuz yok! Bluesky'de biraz daha uzun süre kaldıktan sonra size bazı kodlar göndereceğiz." -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." msgstr "Sabitlemiş beslemeniz yok." @@ -6570,28 +8045,32 @@ msgstr "Sabitlemiş beslemeniz yok." #~ msgid "You don't have any saved feeds!" #~ msgstr "Kaydedilmiş beslemeniz yok!" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." msgstr "Kaydedilmiş beslemeniz yok." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Yazarı engellediniz veya yazar tarafından engellendiniz." +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "Bu kullanıcıyı engellediniz. İçeriklerini göremezsiniz." #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Geçersiz bir kod girdiniz. XXXXX-XXXXX gibi görünmelidir." -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "" @@ -6600,11 +8079,11 @@ msgid "You have hidden this post." msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "" -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "" @@ -6612,18 +8091,22 @@ msgstr "" #~ msgid "You have muted this user." #~ msgstr "Bu kullanıcıyı sessize aldınız." -#: src/view/com/feeds/ProfileFeedgens.tsx:144 +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "" + +#: src/view/com/feeds/ProfileFeedgens.tsx:137 msgid "You have no feeds." msgstr "Beslemeniz yok." -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." msgstr "Listeniz yok." #: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "" +#~ msgid "You have no messages yet. Start a conversation with someone!" +#~ msgstr "" #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." @@ -6633,7 +8116,7 @@ msgstr "" #~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." #~ msgstr "Henüz hiçbir hesabı engellemediniz. Bir hesabı engellemek için, profilinize gidin ve hesaplarının menüsünden \"Hesabı engelle\" seçeneğini seçin." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Henüz hiçbir uygulama şifresi oluşturmadınız. Aşağıdaki düğmeye basarak bir tane oluşturabilirsiniz." @@ -6645,18 +8128,34 @@ msgstr "" #~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." #~ msgstr "Henüz hiçbir hesabı sessize almadınız. Bir hesabı sessize almak için, profilinize gidin ve hesaplarının menüsünden \"Hesabı sessize al\" seçeneğini seçin." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "" + #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "" @@ -6666,18 +8165,34 @@ msgstr "" #~ msgstr "Yetişkin içeriği etkinleştirmek için 18 yaşında veya daha büyük olmalısınız." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" -msgstr "Yetişkin içeriğini etkinleştirmek için 18 yaşında veya daha büyük olmalısınız" +#~ msgid "You must be 18 years or older to enable adult content" +#~ msgstr "Yetişkin içeriğini etkinleştirmek için 18 yaşında veya daha büyük olmalısınız" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "" + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "Artık bu konu için bildirim almayacaksınız" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "Artık bu konu için bildirim alacaksınız" @@ -6685,60 +8200,98 @@ msgstr "Artık bu konu için bildirim alacaksınız" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Bir \"sıfırlama kodu\" içeren bir e-posta alacaksınız. Bu kodu buraya girin, ardından yeni şifrenizi girin." -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" msgstr "" -#: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "Siz kontrol ediyorsunuz" +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" +msgstr "" + +#: src/screens/Onboarding/StepModeration/index.tsx:60 +#~ msgid "You're in control" +#~ msgstr "Siz kontrol ediyorsunuz" + +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "Sıradasınız" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "" + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "Hazırsınız!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "" -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Beslemenizin sonuna ulaştınız! Takip edebileceğiniz daha fazla hesap bulun." -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "Hesabınız" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "Hesabınız silindi" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "Doğum tarihiniz" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "Seçiminiz kaydedilecek, ancak daha sonra ayarlarda değiştirilebilir." #: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "Varsayılan beslemeniz \"Takip Edilenler\"" +#~ msgid "Your default feed is \"Following\"" +#~ msgstr "Varsayılan beslemeniz \"Takip Edilenler\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "E-postanız geçersiz gibi görünüyor." @@ -6754,11 +8307,15 @@ msgstr "E-postanız güncellendi ancak doğrulanmadı. Bir sonraki adım olarak, msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "E-postanız henüz doğrulanmadı. Bu, önerdiğimiz önemli bir güvenlik adımıdır." -#: src/view/com/posts/FollowingEmptyState.tsx:47 +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:43 msgid "Your following feed is empty! Follow more users to see what's happening." msgstr "Takip ettiğiniz besleme boş! Neler olduğunu görmek için daha fazla kullanıcı takip edin." -#: src/screens/Signup/StepHandle.tsx:73 +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "Tam kullanıcı adınız" @@ -6775,30 +8332,34 @@ msgstr "Tam kullanıcı adınız <0>@{0} olacak" msgid "Your muted words" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "Şifreniz başarıyla değiştirildi!" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "Gönderiniz yayınlandı" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Gönderileriniz, beğenileriniz ve engellemeleriniz herkese açıktır. Sessizlikleriniz özeldir." -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "Profiliniz" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "" + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "Yanıtınız yayınlandı" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" msgstr "" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "Kullanıcı adınız" diff --git a/src/locale/locales/uk/messages.po b/src/locale/locales/uk/messages.po index 591cfa87fd..74038d05da 100644 --- a/src/locale/locales/uk/messages.po +++ b/src/locale/locales/uk/messages.po @@ -18,45 +18,62 @@ msgstr "" "X-Crowdin-File: /main/src/locale/locales/en/messages.po\n" "X-Crowdin-File-ID: 14\n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(немає ел. адреси)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:55 +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" msgstr "" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMe.tsx:61 +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/KnownFollowers.tsx:179 +#~ msgid "{0, plural, one {and # other} other {and # others}}" +#~ msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -64,69 +81,151 @@ msgstr "" msgid "{0, plural, one {post} other {posts}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "" + #: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" +#~ msgid "{0} your feeds" +#~ msgstr "" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" msgstr "" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" msgstr "" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} підписок" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:461 +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} непрочитаних" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "<0/> учасників" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:485 +#~ msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +#~ msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:497 +#~ msgid "<0>{0}, <1>{1}, and {2} {3, plural, one {other} other {others}} are included in your starter pack" +#~ msgstr "" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "" + #: src/view/shell/Drawer.tsx:96 #~ msgid "<0>{0} following" #~ msgstr "<0>{0} підписок" +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "" + #: src/components/ProfileHoverCard/index.web.tsx:437 #~ msgid "<0>{followers} <1>{pluralizedFollowers}" #~ msgstr "<0>{followers} <1>{pluralizedFollowers}" @@ -152,34 +251,42 @@ msgstr "" #~ msgid "<0>Welcome to<1>Bluesky" #~ msgstr "<0>Ласкаво просимо до<1>Bluesky" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "⚠Недопустимий псевдонім" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" msgstr "" -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "" + +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "Відкрити навігацію й налаштування" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "Відкрити профіль та іншу навігацію" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "Доступність" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" msgstr "" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" msgstr "" @@ -187,26 +294,26 @@ msgstr "" #~ msgid "account" #~ msgstr "обліковий запис" -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "Обліковий запис" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "Обліковий запис заблоковано" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "Ви підписалися на обліковий запис" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "Обліковий запис ігнорується" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "Обліковий запис ігнорується" @@ -222,37 +329,46 @@ msgstr "Параметри облікового запису" msgid "Account removed from quick access" msgstr "Обліковий запис вилучено зі швидкого доступу" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "Обліковий запис розблоковано" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "Ви відписалися від облікового запису" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "Обліковий запис більше не ігнорується" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "Додати" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Додати попередження про вміст" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "Додати користувача до списку" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "Додати обліковий запис" @@ -261,7 +377,7 @@ msgstr "Додати обліковий запис" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Додати альтернативний текст" @@ -269,9 +385,9 @@ msgstr "Додати альтернативний текст" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Додати пароль застосунку" @@ -291,11 +407,19 @@ msgstr "Додати слово до ігнорування з обраними msgid "Add muted words and tags" msgstr "Додати ігноровані слова та теги" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/StarterPack/Wizard/index.tsx:197 +#~ msgid "Add people to your starter pack that you think others will enjoy following" +#~ msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" msgstr "" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" msgstr "" @@ -303,12 +427,16 @@ msgstr "" msgid "Add the following DNS record to your domain:" msgstr "Додайте наступний DNS-запис до вашого домену:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "Додати до списку" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" msgstr "Додати до моїх стрічок" @@ -316,40 +444,66 @@ msgstr "Додати до моїх стрічок" #~ msgid "Added" #~ msgstr "Додано" -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "Додано до списку" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" msgstr "Додано до моїх стрічок" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Налаштуйте мінімальну кількість вподобань для того щоб відповідь відобразилася у вашій стрічці." #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Вміст для дорослих" +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "" + #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." msgstr "Контент для дорослих вимкнено." -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "Розширені" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." msgstr "Усі збережені стрічки в одному місці." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "Вже маєте код?" @@ -359,17 +513,17 @@ msgstr "Вже увійшли як @{0}" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" msgstr "Альтернативний текст" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" msgstr "" @@ -386,84 +540,113 @@ msgstr "Було надіслано лист на адресу {0}. Він мі msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Було надіслано лист на вашу попередню адресу, {0}. Він містить код підтвердження, який ви можете ввести нижче." -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" msgstr "" -#: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/components/StarterPack/ShareDialog.tsx:79 +#~ msgid "An error occurred while saving the image." +#~ msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:134 +#~ msgid "An error occurred while trying to delete the message. Please try again." +#~ msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "Проблема не включена до цих варіантів" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "Виникла проблема, будь ласка, спробуйте ще раз." -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "та" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "Тварини" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" msgstr "" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "Антисоціальна поведінка" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "Мова застосунку" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Пароль застосунку видалено" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "Назва пароля може містити лише латинські літери, цифри, пробіли, мінуси та нижні підкреслення." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "Назва пароля застосунку мусить бути хоча б 4 символи в довжину." -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "Налаштування пароля застосунків" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "Паролі для застосунків" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "Звернення" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "Оскаржити мітку \"{0}\"" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "" @@ -471,32 +654,59 @@ msgstr "" #~ msgid "Appeal submitted." #~ msgstr "Звернення надіслано." -#: src/view/screens/Settings/index.tsx:430 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "" + +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "Оформлення" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +#~ msgid "Are you sure you want delete this starter pack?" +#~ msgstr "" + +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Ви дійсно хочете видалити пароль для застосунку \"{name}\"?" #: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." +#~ msgstr "" + +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" msgstr "" #: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." +#~ msgstr "" + +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Ви впевнені, що бажаєте видалити {0} зі стрічки?" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "Ви дійсно бажаєте видалити цю чернетку?" @@ -508,7 +718,8 @@ msgstr "Ви впевнені?" msgid "Are you writing in <0>{0}?" msgstr "Ви пишете <0>{0}?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "Мистецтво" @@ -516,32 +727,35 @@ msgstr "Мистецтво" msgid "Artistic or non-erotic nudity." msgstr "Художня або нееротична оголеність." -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "Не менше 3-х символів" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "Назад" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "Ґрунтуючись на вашому інтересі до {interestsText}" +#~ msgid "Based on your interest in {interestsText}" +#~ msgstr "Ґрунтуючись на вашому інтересі до {interestsText}" -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "Основні" @@ -549,56 +763,56 @@ msgstr "Основні" msgid "Birthday" msgstr "Дата народження" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "Дата народження:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "Заблокувати" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "Заблокувати" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "Заблокувати обліковий запис?" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "Заблокувати облікові записи" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "Заблокувати список" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "Заблокувати ці облікові записи?" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "Заблоковано" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "Заблоковані облікові записи" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "Заблоковані облікові записи" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Заблоковані облікові записи не можуть вам відповідати, згадувати вас у своїх постах, і взаємодіяти з вами будь-яким іншим чином." @@ -606,19 +820,19 @@ msgstr "Заблоковані облікові записи не можуть msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Заблоковані облікові записи не можуть вам відповідати, згадувати вас у своїх постах, і взаємодіяти з вами будь-яким іншим чином. Ви не будете бачити їхні пости і вони не будуть бачити ваші." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "Заблокований пост." -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Блокування не заважає цьому маркувальнику додавати мітку до вашого облікового запису." -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Блокування - це відкрита інформація. Заблоковані користувачі не можуть відповісти у ваших темах, згадувати вас або іншим чином взаємодіяти з вами." -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." msgstr "Блокування не завадить додавання міток до вашого облікового запису, але це зупинить можливість цього облікового запису від коментування ваших постів чи взаємодії з вами." @@ -635,6 +849,10 @@ msgstr "Bluesky" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "Bluesky є відкритою мережею, де ви можете обрати свого хостинг-провайдера. Власний хостинг тепер доступний в бета-версії для розробників." +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "" + #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 #~ msgid "Bluesky is flexible." @@ -650,7 +868,11 @@ msgstr "Bluesky є відкритою мережею, де ви можете о #~ msgid "Bluesky is public." #~ msgstr "Bluesky публічний." -#: src/screens/Moderation/index.tsx:533 +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "" + +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." msgstr "Bluesky не буде показувати ваш профіль і повідомлення відвідувачам без облікового запису. Інші застосунки можуть не слідувати цьому запиту. Це не робить ваш обліковий запис приватним." @@ -662,12 +884,31 @@ msgstr "Розмити зображення" msgid "Blur images and filter from feeds" msgstr "Розмити зображення і фільтрувати їх зі стрічки" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "Книги" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 msgid "Browse other feeds" msgstr "" @@ -675,7 +916,7 @@ msgstr "" msgid "Business" msgstr "Організація" -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "від —" @@ -688,10 +929,10 @@ msgid "By {0}" msgstr "Від {0}" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" +#~ msgid "by @{0}" +#~ msgstr "" -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "від <0/>" @@ -699,7 +940,7 @@ msgstr "від <0/>" msgid "By creating an account you agree to the {els}." msgstr "Створюючи обліковий запис, ви даєте згоду з {els}." -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "створено вами" @@ -707,7 +948,7 @@ msgstr "створено вами" msgid "Camera" msgstr "Камера" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Може містити лише літери, цифри, пробіли, дефіси та знаки підкреслення, і мати довжину від 4 до 32 символів." @@ -715,14 +956,15 @@ msgstr "Може містити лише літери, цифри, пробіл #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -730,23 +972,23 @@ msgstr "Може містити лише літери, цифри, пробіл #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "Скасувати" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "Скасувати" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "Скасувати видалення облікового запису" @@ -762,12 +1004,16 @@ msgstr "Скасувати обрізання зображення" msgid "Cancel profile editing" msgstr "Скасувати зміни профілю" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "Скасувати цитування посту" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "Скасувати пошук" @@ -779,17 +1025,17 @@ msgstr "Скасовує відкриття посилання" msgid "Change" msgstr "Змінити" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "Змінити" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "Змінити псевдонім" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "Змінити псевдонім" @@ -797,12 +1043,12 @@ msgstr "Змінити псевдонім" msgid "Change my email" msgstr "Змінити адресу електронної пошти" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "Змінити пароль" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "Зміна пароля" @@ -814,20 +1060,30 @@ msgstr "Змінити мову поста на {0}" msgid "Change Your Email" msgstr "Змінити адресу електронної пошти" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" msgstr "" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" msgstr "" @@ -835,8 +1091,8 @@ msgstr "" #~ msgid "Chat with {chatId}" #~ msgstr "" -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "Перевірити мій статус" @@ -848,23 +1104,43 @@ msgstr "Перевірити мій статус" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Ознайомтеся з деякими рекомендованими користувачами. Слідкуйте за ними, щоб побачити дописи від подібних користувачів." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Перевірте свою поштову скриньку на наявність електронного листа з кодом підтвердження та введіть його нижче:" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "Виберіть \"Усі\" або \"Ніхто\"" +#: src/view/com/modals/Threadgate.tsx:75 +#~ msgid "Choose \"Everybody\" or \"Nobody\"" +#~ msgstr "Виберіть \"Усі\" або \"Ніхто\"" + +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "Оберіть хостинг-провайдера" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." msgstr "Оберіть алгоритми, що наповнюватимуть ваші стрічки." @@ -877,40 +1153,45 @@ msgstr "Оберіть алгоритми, що наповнюватимуть msgid "Choose this color as your avatar" msgstr "" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "Виберіть ваші основні стрічки" +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" +msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 +#~ msgid "Choose your main feeds" +#~ msgstr "Виберіть ваші основні стрічки" + +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "Вкажіть пароль" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "Очистити пошуковий запит" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "Видаляє всі застарілі дані зі сховища" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "Видаляє всі дані зі сховища" @@ -918,10 +1199,18 @@ msgstr "Видаляє всі дані зі сховища" msgid "click here" msgstr "натисніть тут" -#: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +#~ msgid "Click here to add one." +#~ msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Натисніть тут, щоб відкрити меню тегів для {tag}" @@ -930,19 +1219,33 @@ msgstr "Натисніть тут, щоб відкрити меню тегів #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "Натисніть тут, щоб відкрити меню тегів для #{tag}" -#: src/screens/Onboarding/index.tsx:47 +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "" + +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "Клімат" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "Закрити" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "Закрити діалогове вікно" @@ -954,11 +1257,12 @@ msgstr "Закрити сповіщення" msgid "Close bottom drawer" msgstr "Закрити нижнє меню" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" msgstr "" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" msgstr "" @@ -970,6 +1274,10 @@ msgstr "Закрити зображення" msgid "Close image viewer" msgstr "Закрити перегляд зображення" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "Закрити панель навігації" @@ -987,7 +1295,7 @@ msgstr "Закриває нижню панель навігації" msgid "Closes password update alert" msgstr "Закриває сповіщення про оновлення пароля" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "Закриває редактор постів і видаляє чернетку" @@ -995,42 +1303,48 @@ msgstr "Закриває редактор постів і видаляє чер msgid "Closes viewer for header image" msgstr "Закриває перегляд зображення" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "Згортає список користувачів для даного сповіщення" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "Комедія" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "Комікси" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "Правила спільноти" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "Завершіть ознайомлення та розпочніть користуватися вашим обліковим записом" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "Виконайте завдання" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Створюйте пости до {MAX_GRAPHEME_LENGTH} символів у довжину" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "Відповісти" #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "Налаштувати фільтрування вмісту для категорій: {0}" +#~ msgid "Configure content filtering setting for category: {0}" +#~ msgstr "Налаштувати фільтрування вмісту для категорій: {0}" #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" @@ -1040,13 +1354,11 @@ msgstr "Налаштувати фільтрування вмісту для ка msgid "Configured in <0>moderation settings." msgstr "Налаштовано <0>у налаштуваннях модерації." -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -1061,33 +1373,33 @@ msgstr "Підтвердити" msgid "Confirm content language settings" msgstr "Підтвердити налаштування мови вмісту" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "Підтвердити видалення облікового запису" -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "Підтвердіть ваш вік:" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "Підтвердіть вашу дату народження" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Код підтвердження" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "З’єднання..." -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "Служба підтримки" @@ -1099,28 +1411,28 @@ msgstr "Служба підтримки" msgid "Content Blocked" msgstr "Заблокований вміст" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "Фільтри контенту" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "Мови" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "Вміст недоступний" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "Попередження про вміст" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "Попередження про вміст" @@ -1128,12 +1440,8 @@ msgstr "Попередження про вміст" msgid "Context menu backdrop, click to close the menu." msgstr "Тло контекстного меню натисніть, щоб закрити меню." -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "Далі" @@ -1141,41 +1449,47 @@ msgstr "Далі" msgid "Continue as {0} (currently signed in)" msgstr "Продовжити як {0} (поточний користувач)" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "Перейти до наступного кроку" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "Перейти до наступного кроку" +#~ msgid "Continue to the next step" +#~ msgstr "Перейти до наступного кроку" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" -msgstr "Перейдіть до наступного кроку, ні на кого не підписуючись" +#~ msgid "Continue to the next step without following any accounts" +#~ msgstr "Перейдіть до наступного кроку, ні на кого не підписуючись" -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" +msgstr "" + +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "Кухарство" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Скопійовано" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "Версію збірки скопійовано до буфера обміну" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "Скопійовано" @@ -1183,11 +1497,12 @@ msgstr "Скопійовано" msgid "Copied!" msgstr "Скопійовано!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Копіює пароль застосунку" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Скопіювати" @@ -1200,47 +1515,63 @@ msgstr "Копіювати {0}" msgid "Copy code" msgstr "Скопіювати код" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "Копіювати посилання на список" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "Копіювати посилання на пост" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "Копіювати текст повідомлення" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "Політика захисту авторського права" -#: src/components/dms/ConvoMenu.tsx:80 +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" +msgstr "" + +#: src/components/dms/LeaveConvoPrompt.tsx:39 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" msgstr "Не вдалося завантажити стрічку" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "Не вдалося завантажити список" #: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "" +#~ msgid "Could not load profiles. Please try again later." +#~ msgstr "" -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" msgstr "" @@ -1248,16 +1579,34 @@ msgstr "" #~ msgid "Could not unmute chat" #~ msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "" + #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "Створити новий обліковий запис" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "Створити новий обліковий запис Bluesky" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "Створити обліковий запис" @@ -1266,11 +1615,15 @@ msgstr "Створити обліковий запис" msgid "Create an account" msgstr "Створити обліковий запис" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Створити пароль застосунку" @@ -1279,11 +1632,15 @@ msgstr "Створити пароль застосунку" msgid "Create new account" msgstr "Створити новий обліковий запис" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/StarterPack/ShareDialog.tsx:158 +#~ msgid "Create QR code" +#~ msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "Створити звіт для {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "Створено: {0}" @@ -1291,7 +1648,8 @@ msgstr "Створено: {0}" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "Створює картку з мініатюрою. Посилання картки: {url}" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "Культура" @@ -1304,8 +1662,8 @@ msgstr "Користувацький" msgid "Custom domain" msgstr "Власний домен" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Кастомні стрічки, створені спільнотою, подарують вам нові враження та допоможуть знайти контент, який ви любите." @@ -1313,8 +1671,8 @@ msgstr "Кастомні стрічки, створені спільнотою, msgid "Customize media from external sites." msgstr "Налаштування медіа зі сторонніх вебсайтів." -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "Темна" @@ -1322,15 +1680,24 @@ msgstr "Темна" msgid "Dark mode" msgstr "Темний режим" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "Темна тема" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "Дата народження" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" msgstr "Налагодження модерації" @@ -1338,14 +1705,17 @@ msgstr "Налагодження модерації" msgid "Debug panel" msgstr "Панель налагодження" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "Видалити" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "Видалити обліковий запис" @@ -1353,65 +1723,83 @@ msgstr "Видалити обліковий запис" #~ msgid "Delete Account" #~ msgstr "Видалити обліковий запис" -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Видалити пароль для застосунку" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Видалити пароль для застосунку?" -#: src/components/dms/MessageMenu.tsx:101 +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:124 msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:466 +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "Видалити список" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" msgstr "" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "Видалити мій обліковий запис" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "Видалити мій обліковий запис..." -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "Видалити пост" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "Видалити цей список?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "Видалити цей пост?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "Видалено" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." msgstr "Видалений пост." -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1421,15 +1809,19 @@ msgstr "Опис" msgid "Descriptive alt text" msgstr "" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "Порожній пост. Ви хотіли щось написати?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "Тьмяний" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" msgstr "" @@ -1437,7 +1829,7 @@ msgstr "" msgid "Disable Email 2FA" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" msgstr "" @@ -1452,32 +1844,50 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "Вимкнено" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "Видалити" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "Відхилити чернетку?" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "Попросити застосунки не показувати мій обліковий запис без входу" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" msgstr "Відкрийте для себе нові стрічки" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "" + +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "Відкрийте для себе нові стрічки" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "Ім'я" @@ -1494,7 +1904,7 @@ msgstr "Панель DNS" msgid "Does not include nudity." msgstr "Не містить оголеності." -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "Не починається або закінчується дефісом" @@ -1508,30 +1918,27 @@ msgstr "Домен перевірено!" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "Готово" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "Готово" @@ -1540,18 +1947,22 @@ msgstr "Готово" msgid "Done{extraText}" msgstr "Готово{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "Завантажити CAR файл" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "Перетягніть і відпустіть, щоб додати зображення" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "Через політику компанії Apple, перегляд вмісту для дорослих можна ввімкнути лише в інтернеті після реєстрації." +#~ msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." +#~ msgstr "Через політику компанії Apple, перегляд вмісту для дорослих можна ввімкнути лише в інтернеті після реєстрації." #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" @@ -1573,19 +1984,19 @@ msgstr "напр. Художниця, собачниця та завзята ч msgid "E.g. artistic nudes." msgstr "Напр. художня оголеність." -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "напр. Чудові писарі" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "напр. Спамери" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "напр. Писарі, що нічого не пропускають." -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "напр. Користувачі, що неодноразово відповідали рекламою." @@ -1593,32 +2004,45 @@ msgstr "напр. Користувачі, що неодноразово відп msgid "Each code works once. You'll receive more invite codes periodically." msgstr "Кожен код запрошення працює лише один раз. Час від часу ви будете отримувати нові коди." +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "Редагувати" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "Змінити фото профілю" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "Редагувати зображення" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "Редагувати опис списку" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" msgstr "Редагування списку" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" msgstr "Редагувати мої стрічки" @@ -1626,25 +2050,37 @@ msgstr "Редагувати мої стрічки" msgid "Edit my profile" msgstr "Редагувати мій профіль" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "Редагувати профіль" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "Редагувати профіль" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "Редагувати збережені стрічки" +#: src/view/screens/Feeds.tsx:416 +#~ msgid "Edit Saved Feeds" +#~ msgstr "Редагувати збережені стрічки" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "Редагувати список користувачів" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "Редагувати ваш псевдонім для показу" @@ -1653,11 +2089,20 @@ msgstr "Редагувати ваш псевдонім для показу" msgid "Edit your profile description" msgstr "Редагувати опис вашого профілю" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "Освіта" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "Ел. адреса" @@ -1683,7 +2128,7 @@ msgstr "Ел. адресу оновлено" msgid "Email verified" msgstr "Електронну адресу перевірено" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "Ел. адреса:" @@ -1692,8 +2137,8 @@ msgid "Embed HTML code" msgstr "Вбудований HTML код" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" msgstr "Вбудований пост" @@ -1705,29 +2150,34 @@ msgstr "Вставте цей пост у Ваш сайт. Просто скоп msgid "Enable {0} only" msgstr "Увімкнути лише {0}" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "Дозволити вміст для дорослих" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "Дозволити вміст для дорослих" +#~ msgid "Enable Adult Content" +#~ msgstr "Дозволити вміст для дорослих" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "Увімкнути вміст для дорослих у ваших стрічках" +#~ msgid "Enable adult content in your feeds" +#~ msgstr "Увімкнути вміст для дорослих у ваших стрічках" #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 msgid "Enable external media" msgstr "Увімкнути зовнішні медіа" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "Увімкнути медіапрогравачі для" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "Увімкніть цей параметр, щоб бачити відповіді тільки від людей, на яких ви підписані." @@ -1735,7 +2185,9 @@ msgstr "Увімкніть цей параметр, щоб бачити відп msgid "Enable this source only" msgstr "Увімкнути лише джерело" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "Увімкнено" @@ -1743,7 +2195,15 @@ msgstr "Увімкнено" msgid "End of feed" msgstr "Кінець стрічки" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/components/Lists.tsx:52 +#~ msgid "End of list" +#~ msgstr "" + +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "" + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Введіть ім'я для цього пароля застосунку" @@ -1760,7 +2220,7 @@ msgstr "Введіть слово або тег" msgid "Enter Confirmation Code" msgstr "Введіть код підтвердження" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "Введіть код, який ви отримали, щоб змінити пароль." @@ -1777,7 +2237,7 @@ msgid "Enter your birth date" msgstr "Введіть вашу дату народження" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "Введіть адресу електронної пошти" @@ -1793,32 +2253,45 @@ msgstr "Введіть нову адресу електронної пошти." msgid "Enter your username and password" msgstr "Введіть псевдонім та пароль" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" msgstr "" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "Помилка отримання відповіді Captcha." -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "Помилка:" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "Усі" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "Спам; надмірні згадки або відповіді" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "Виходить з процесу видалення облікового запису" @@ -1834,8 +2307,8 @@ msgstr "Виходить з процесу обрізання зображень msgid "Exits image view" msgstr "Вийти з режиму перегляду" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "Вихід із пошуку" @@ -1843,11 +2316,19 @@ msgstr "Вихід із пошуку" msgid "Expand alt text" msgstr "Розгорнути опис" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "Розгорнути або згорнути весь пост, на який ви відповідаєте" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "Відверто або потенційно проблемний вміст." @@ -1856,12 +2337,12 @@ msgstr "Відверто або потенційно проблемний вмі msgid "Explicit sexual images." msgstr "Відверті сексуальні зображення." -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "Експорт моїх даних" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "Експорт моїх даних" @@ -1871,83 +2352,143 @@ msgid "External Media" msgstr "Зовнішні медіа" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "Зовнішні медіа можуть дозволяти вебсайтам збирати інформацію про вас та ваш пристрій. Інформація не надсилається та не запитується, допоки не натиснуто кнопку «Відтворити»." -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "Налаштування зовнішніх медіа" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "Налаштування зовнішніх медіа" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "Не вдалося створити пароль застосунку." -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "Не вдалося створити список. Перевірте інтернет-з'єднання і спробуйте ще раз." -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" msgstr "Не вдалося видалити пост, спробуйте ще раз" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:28 +#~ msgid "Failed to load past messages." +#~ msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:110 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:143 #~ msgid "Failed to load recommended feeds" #~ msgstr "Не вдалося завантажити рекомендації стрічок" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "Не вдалося зберегти зображення: {0}" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +#~ msgid "Failed to send message(s)." +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "Стрічка" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "Стрічка від {0}" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "Стрічка не працює" +#: src/view/screens/Feeds.tsx:709 +#~ msgid "Feed offline" +#~ msgstr "Стрічка не працює" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "Зворотний зв'язок" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" msgstr "Стрічки" @@ -1955,19 +2496,23 @@ msgstr "Стрічки" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Стрічки створюються користувачами для відбору постів. Оберіть стрічки, що вас цікавлять." -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Стрічки – це алгоритми, створені користувачами з деяким досвідом програмування. <0/> для додаткової інформації." #: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" -msgstr "Стрічки також можуть бути тематичними!" +#~ msgid "Feeds can be topical as well!" +#~ msgstr "Стрічки також можуть бути тематичними!" + +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" +msgstr "" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Вміст файлу" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" msgstr "" @@ -1975,17 +2520,21 @@ msgstr "" msgid "Filter from feeds" msgstr "Фільтрувати зі стрічок" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "Завершення" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "Знайдіть облікові записи для стеження" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "" + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" msgstr "" @@ -2001,19 +2550,27 @@ msgstr "" #~ msgid "Finding similar accounts..." #~ msgstr "Пошук подібних облікових записів..." -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." msgstr "Оберіть, що ви хочете бачити у своїй стрічці підписок." -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "Налаштуйте відображення обговорень." -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "Фітнес" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "Гнучкий" @@ -2026,112 +2583,172 @@ msgstr "Віддзеркалити горизонтально" msgid "Flip vertically" msgstr "Віддзеркалити вертикально" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "Підписатися" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "Підписатись" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Підписатися на {0}" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "Підписатися на обліковий запис" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" -msgstr "Підписатися на всіх" +#~ msgid "Follow All" +#~ msgstr "Підписатися на всіх" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "Підписатися навзаєм" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" -msgstr "Підпишіться на обрані облікові записи і переходьте до наступного кроку" +#~ msgid "Follow selected accounts and continue to the next step" +#~ msgstr "Підпишіться на обрані облікові записи і переходьте до наступного кроку" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:65 #~ msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." #~ msgstr "Підпишіться на кількох користувачів щоб почати їх читати. Ми зможемо порекомендувати вам більше користувачів, спираючись на те хто вас цікавить." -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" -msgstr "Підписані {0}" +#: src/components/KnownFollowers.tsx:169 +#~ msgid "Followed by" +#~ msgstr "" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/view/com/profile/ProfileCard.tsx:190 +#~ msgid "Followed by {0}" +#~ msgstr "Підписані {0}" + +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" +msgstr "" + +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "Ваші підписки" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "Тільки ваші підписки" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "підписка на вас" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "Підписники" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "Підписані" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" msgstr "Підписання на \"{0}\"" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" msgstr "Налаштування стрічки підписок" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" msgstr "Налаштування стрічки підписок" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "" + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "Підписаний(-на) на вас" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "Підписаний(-на) на вас" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "Їжа" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "З міркувань безпеки нам потрібно буде відправити код підтвердження на вашу електронну адресу." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "З міркувань безпеки цей пароль відображається лише один раз. Якщо ви втратите цей пароль, вам потрібно буде згенерувати новий." @@ -2140,15 +2757,15 @@ msgstr "З міркувань безпеки цей пароль відобра msgid "Forgot Password" msgstr "Забули пароль" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "Забули пароль?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "Забули пароль?" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "Часто публікує неприйнятний контент" @@ -2156,7 +2773,7 @@ msgstr "Часто публікує неприйнятний контент" msgid "From @{sanitizedAuthor}" msgstr "Від @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "Зі стрічки \"<0/>\"" @@ -2165,48 +2782,77 @@ msgstr "Зі стрічки \"<0/>\"" msgid "Gallery" msgstr "Галерея" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Почати" -#: src/screens/Onboarding/StepProfile/index.tsx:228 +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" +msgstr "" + +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 msgid "Give your profile a face" msgstr "" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "Грубі порушення закону чи умов використання" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "Назад" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "Назад" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:189 +#~ msgid "Go back to previous screen" +#~ msgstr "" + +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "Повернутися до попереднього кроку" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "Повернутися на головну" @@ -2220,16 +2866,24 @@ msgstr "Повернутися на головну" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "Перейти до @{queryMaybeHandle}" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "Далі" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" msgstr "" @@ -2237,112 +2891,114 @@ msgstr "" msgid "Graphic Media" msgstr "Графічний медіаконтент" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Псевдонім" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" msgstr "" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "Домагання, тролінг або нетерпимість" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "Хештег" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "Хештег: #{tag}" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "Виникли проблеми?" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "Довідка" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "Ось деякі облікові записи, на які ви підписані" +#~ msgid "Here are some accounts for you to follow" +#~ msgstr "Ось деякі облікові записи, на які ви підписані" #: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "Ось декілька популярних тематичних стрічок. Ви можете підписатися на скільки забажаєте з них." +#~ msgid "Here are some popular topical feeds. You can choose to follow as many as you like." +#~ msgstr "Ось декілька популярних тематичних стрічок. Ви можете підписатися на скільки забажаєте з них." #: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "Ось декілька тематичних стрічок на основі ваших інтересів: {interestsText}. Ви можете підписатися на скільки забажаєте з них." +#~ msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." +#~ msgstr "Ось декілька тематичних стрічок на основі ваших інтересів: {interestsText}. Ви можете підписатися на скільки забажаєте з них." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Це ваш пароль для застосунків." -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "Приховати" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "Сховати" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "Сховати пост" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "Приховати вміст" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "Сховати цей пост?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "Сховати список користувачів" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Хм, при зв'язку з сервером стрічки виникла якась проблема. Будь ласка, повідомте про це її власника." -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Хм, здається сервер стрічки налаштовано неправильно. Будь ласка, повідомте про це її власника." -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Хм, здається сервер стрічки зараз не працює. Будь ласка, повідомте про це її власника." -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Хм, сервер стрічки надіслав нам незрозумілу відповідь. Будь ласка, повідомте про це її власника." -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Хм, ми не можемо знайти цю стрічку. Можливо вона була видалена." -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." msgstr "Здається, у нас виникли проблеми з завантаженням цих даних. Перегляньте деталі нижче. Якщо проблема не зникне, будь ласка, зв'яжіться з нами." @@ -2350,11 +3006,12 @@ msgstr "Здається, у нас виникли проблеми з зава msgid "Hmmmm, we couldn't load that moderation service." msgstr "Хм, ми не змогли завантажити цей сервіс модерації." -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "Головна" @@ -2363,8 +3020,8 @@ msgid "Host:" msgstr "Host:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Хостинг-провайдер" @@ -2387,7 +3044,8 @@ msgstr "У мене є код підтвердження" msgid "I have my own domain" msgstr "Я маю власний домен" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" msgstr "" @@ -2403,43 +3061,55 @@ msgstr "Якщо не вибрано жодного варіанту - підх msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Якщо ви ще не досягли повноліття відповідно до законів вашої країни, ваш батьківський або юридичний опікун повинен прочитати ці Умови від вашого імені." -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "Якщо ви видалите цей список, ви не зможете його відновити." -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "Якщо ви видалите цей пост, ви не зможете його відновити." -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Якщо ви хочете змінити пароль, ми надішлемо вам код, щоб переконатися, що це ваш обліковий запис." -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "Незаконний та невідкладний" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "Зображення" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Опис зображення" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "Видавання себе за іншу особу або неправдиві твердження про особу чи приналежність" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "Введіть код, надісланий на вашу електронну пошту для скидання пароля" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "Введіть код підтвердження для видалення облікового запису" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Введіть ім'я для пароля застосунку" @@ -2447,23 +3117,23 @@ msgstr "Введіть ім'я для пароля застосунку" msgid "Input new password" msgstr "Введіть новий пароль" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "Введіть пароль для видалення облікового запису" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "Введіть пароль, прив'язаний до {identifier}" +#: src/screens/Login/LoginForm.tsx:221 +#~ msgid "Input the password tied to {identifier}" +#~ msgstr "Введіть пароль, прив'язаний до {identifier}" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the username or email address you used at signup" msgstr "Введіть псевдонім або ел. адресу, які ви використовували для реєстрації" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "Введіть ваш пароль" @@ -2471,20 +3141,24 @@ msgstr "Введіть ваш пароль" msgid "Input your preferred hosting provider" msgstr "Введіть бажаного хостинг-провайдера" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "Введіть ваш псевдонім" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "Невірний або непідтримуваний пост" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "Невірне ім'я користувача або пароль" @@ -2492,11 +3166,11 @@ msgstr "Невірне ім'я користувача або пароль" msgid "Invite a Friend" msgstr "Запросити друга" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "Код запрошення" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Код запрошення не прийнято. Переконайтеся в його правильності та повторіть спробу." @@ -2508,15 +3182,43 @@ msgstr "Коди запрошення: {0}" msgid "Invite codes: 1 available" msgstr "Коди запрошення: 1" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." -msgstr "Ми показуємо пости людей, за якими ви слідкуєте в тому порядку в якому вони публікуються." +#~ msgid "It shows posts from the people you follow as they happen." +#~ msgstr "Ми показуємо пости людей, за якими ви слідкуєте в тому порядку в якому вони публікуються." + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." +msgstr "" #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "Вакансії" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "" + +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "Журналістика" @@ -2524,19 +3226,19 @@ msgstr "Журналістика" #~ msgid "label has been placed on this {labelTarget}" #~ msgstr "мітка була розміщена на цьому {labelTarget}" -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "Помічений {0}." -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "Мітку додано автором." -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "Мітки" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "Мітки є анотаціями для користувачів і контенту. Вони можуть використовуватися для приховування, попередження та категоризації мережі." @@ -2544,33 +3246,33 @@ msgstr "Мітки є анотаціями для користувачів і к #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "мітка була розміщена на {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "Мітки на вашому обліковому записі" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "Мітки на вашому контенті" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "Вибір мови" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "Налаштування мови" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "Налаштування мов" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "Мови" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "Нещодавні" @@ -2578,31 +3280,38 @@ msgstr "Нещодавні" msgid "Learn More" msgstr "Дізнатися більше" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." msgstr "Дізнайтеся більше про те, яка модерація застосована до цього вмісту." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Дізнатися більше про це попередження" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "Дізнатися більше про те, що є публічним в Bluesky." -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "Дізнатися більше." -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" msgstr "" @@ -2614,24 +3323,29 @@ msgstr "Залиште їх усі невідміченими, щоб бачит msgid "Leaving Bluesky" msgstr "Ви залишаєте Bluesky" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." msgstr "ще залишилося." -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "Старе сховище очищено, тепер вам потрібно перезапустити застосунок." +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "Давайте відновимо ваш пароль!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "Злітаємо!" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "Світла" @@ -2639,14 +3353,23 @@ msgstr "Світла" #~ msgid "Like" #~ msgstr "Вподобати" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "" + +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" msgstr "Вподобати цю стрічку" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "Сподобалося" @@ -2670,75 +3393,92 @@ msgstr "Сподобався користувачу" #~ msgid "Liked by {likeCount} {0}" #~ msgstr "Вподобано {likeCount} {0}" -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" msgstr "вподобав(-ла) вашу стрічку" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" msgstr "сподобався ваш пост" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "Вподобання" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "Вподобайки цього поста" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "Список" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "Аватар списку" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "Список заблоковано" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "Список від {0}" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "Список видалено" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "Список ігнорується" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "Назва списку" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "Список розблоковано" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "Список більше не ігнорується" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "Списки" -#: src/view/screens/Notifications.tsx:159 +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "Завантажити нові сповіщення" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "Завантажити нові пости" @@ -2746,18 +3486,23 @@ msgstr "Завантажити нові пости" msgid "Loading..." msgstr "Завантаження..." -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "Звіт" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "Вийти" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "Видимість для користувачів без облікового запису" @@ -2765,7 +3510,7 @@ msgstr "Видимість для користувачів без обліков msgid "Login to account that is not listed" msgstr "Увійти до облікового запису, якого немає в списку" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" msgstr "" @@ -2777,12 +3522,20 @@ msgstr "Виглядає як XXXXX-XXXXXXX" msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." msgstr "" -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" msgstr "" #: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." +#~ msgid "Looks like you're missing a following feed." +#~ msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" msgstr "" #: src/view/com/modals/LinkWarning.tsx:79 @@ -2793,31 +3546,35 @@ msgstr "Переконайтеся, що це дійсно той сайт, що msgid "Manage your muted words and tags" msgstr "Налаштовуйте ваші ігноровані слова та теги" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" msgstr "" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "Медіа" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "згадані користувачі" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "Згадані користувачі" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "Меню" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" msgstr "" @@ -2825,40 +3582,37 @@ msgstr "" msgid "Message from server: {0}" msgstr "Повідомлення від сервера: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" #: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "" +#~ msgid "Messaging settings" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "Оманливий обліковий запис" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" msgstr "Модерація" @@ -2866,56 +3620,57 @@ msgstr "Модерація" msgid "Moderation details" msgstr "Деталі модерації" -#: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 msgid "Moderation list by {0}" msgstr "Список модерації від {0}" -#: src/view/screens/ProfileList.tsx:838 +#: src/view/screens/ProfileList.tsx:843 msgid "Moderation list by <0/>" msgstr "Список модерації від <0/>" -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/lists/ListCard.tsx:93 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" msgstr "Список модерації від вас" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:185 msgid "Moderation list created" msgstr "Список модерації створено" -#: src/view/com/modals/CreateOrEditList.tsx:185 +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" msgstr "Список модерації оновлено" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "Списки для модерації" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "Списки для модерації" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" msgstr "Налаштування модерації" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" msgstr "Статус модерації" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" msgstr "Інструменти модерації" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." msgstr "Модератор вирішив встановити загальне попередження на вміст." -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "Більше" @@ -2923,14 +3678,22 @@ msgstr "Більше" msgid "More feeds" msgstr "Більше стрічок" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "Додаткові опції" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "За кількістю вподобань" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "" + #: src/components/TagMenu/index.tsx:249 msgid "Mute" msgstr "Ігнорувати" @@ -2939,12 +3702,12 @@ msgstr "Ігнорувати" msgid "Mute {truncatedTag}" msgstr "Ігнорувати {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "Ігнорувати обліковий запис" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "Ігнорувати облікові записи" @@ -2952,6 +3715,11 @@ msgstr "Ігнорувати облікові записи" msgid "Mute all {displayTag} posts" msgstr "Ігнорувати всі пости {displayTag}" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" msgstr "Ігнорувати лише в тегах" @@ -2960,16 +3728,16 @@ msgstr "Ігнорувати лише в тегах" msgid "Mute in text & tags" msgstr "Ігнорувати в тексті та тегах" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "Ігнорувати список" #: src/components/dms/ConvoMenu.tsx:136 #: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "" +#~ msgid "Mute notifications" +#~ msgstr "" -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "Ігнорувати ці облікові записи?" @@ -2981,25 +3749,25 @@ msgstr "Ігнорувати це слово у постах і тегах" msgid "Mute this word in tags only" msgstr "Ігнорувати це слово лише у тегах" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" msgstr "Ігнорувати обговорення" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "Ігнорувати слова та теги" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "Ігнорується" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "Ігноровані облікові записи" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "Ігноровані облікові записи" @@ -3008,15 +3776,15 @@ msgstr "Ігноровані облікові записи" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Ігноровані облікові записи автоматично вилучаються із вашої стрічки та сповіщень. Ігнорування є повністю приватним." -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "Проігноровано списком \"{0}\"" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "Ігноровані слова та теги" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Ігнорування є приватним. Ігноровані користувачі можуть взаємодіяти з вами, але ви не бачитимете їх пости і не отримуватимете від них сповіщень." @@ -3025,52 +3793,62 @@ msgstr "Ігнорування є приватним. Ігноровані ко msgid "My Birthday" msgstr "Мій день народження" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" msgstr "Мої стрічки" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "Мій профіль" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" msgstr "Мої збережені стрічки" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" msgstr "Мої збережені стрічки" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "Ім'я" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "Необхідна назва" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "Ім'я чи Опис порушують стандарти спільноти" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "Природа" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "Переходить до наступного екрана" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "Переходить до вашого профілю" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "Хочете повідомити про порушення авторських прав?" @@ -3079,7 +3857,7 @@ msgstr "Хочете повідомити про порушення авторс #~ msgid "Never lose access to your followers and data." #~ msgstr "Ніколи не втрачайте доступ до ваших даних та підписників." -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "Ніколи не втрачайте доступ до ваших підписників та даних." @@ -3087,7 +3865,7 @@ msgstr "Ніколи не втрачайте доступ до ваших під msgid "Nevermind, create a handle for me" msgstr "Неважливо, створіть для мене псевдонім" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "Новий" @@ -3096,65 +3874,79 @@ msgstr "Новий" msgid "New" msgstr "Новий" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" msgstr "Новий список модерації" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "Новий пароль" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "Новий Пароль" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "Новий пост" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "Новий пост" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "Новий пост" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "Новий список користувачів" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "Спочатку найновіші" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "Новини" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "Далі" @@ -3167,17 +3959,17 @@ msgstr "Далі" msgid "Next image" msgstr "Наступне зображення" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "Ні" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "Опис відсутній" @@ -3185,68 +3977,102 @@ msgstr "Опис відсутній" msgid "No DNS Panel" msgstr "Немає панелі DNS" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "" + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "Ви більше не підписані на {0}" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "Не може бути довшим за 253 символи" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" msgstr "" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "Ще ніяких сповіщень!" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "" + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "Результати відсутні" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Нічого не знайдено" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "Нічого не знайдено за запитом «{query}»" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "Нічого не знайдено за запитом «{query}»" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." msgstr "" #: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "" +#~ msgid "No search results found for \"{searchText}\"." +#~ msgstr "" #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "Ні, дякую" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "Ніхто" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "Поки що це нікому не сподобалося. Можливо, ви повинні бути першим!" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "Несексуальна оголеність" @@ -3255,8 +4081,8 @@ msgstr "Несексуальна оголеність" #~ msgid "Not Applicable." #~ msgstr "Не застосовно." -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "Не знайдено" @@ -3265,27 +4091,57 @@ msgstr "Не знайдено" msgid "Not right now" msgstr "Пізніше" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "Примітка щодо поширення" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Примітка: Bluesky є відкритою і публічною мережею. Цей параметр обмежує видимість вашого вмісту лише у застосунках і на сайті Bluesky, але інші застосунки можуть цього не дотримуватися. Ваш вміст все ще може бути показаний відвідувачам без облікового запису іншими застосунками і вебсайтами." -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "Сповіщення" -#: src/components/dms/MessageItem.tsx:145 +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" +msgstr "" + +#: src/components/dms/MessageItem.tsx:169 msgid "Now" msgstr "" @@ -3293,7 +4149,7 @@ msgstr "" msgid "Nudity" msgstr "Оголеність" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "Нагота чи матеріали для дорослих не позначені відповідним чином" @@ -3305,17 +4161,17 @@ msgstr "Нагота чи матеріали для дорослих не поз msgid "Off" msgstr "Вимкнено" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "О, ні!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "Ой! Щось пішло не так." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "OK" @@ -3323,107 +4179,151 @@ msgstr "OK" msgid "Okay" msgstr "Добре" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "Спочатку найдавніші" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "Скинути ознайомлення" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "Для одного або кількох зображень відсутній опис." -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" msgstr "" -#: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." -msgstr "Тільки {0} можуть відповідати." +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" +msgstr "" -#: src/screens/Signup/StepHandle.tsx:98 +#: src/view/com/threadgate/WhoCanReply.tsx:100 +#~ msgid "Only {0} can reply." +#~ msgstr "Тільки {0} можуть відповідати." + +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "Тільки літери, цифри та дефіс" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Ой, щось пішло не так!" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "Ой!" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "Відкрити" -#: src/screens/Onboarding/StepProfile/index.tsx:280 +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "" + +#: src/screens/Onboarding/StepProfile/index.tsx:277 msgid "Open avatar creator" msgstr "" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "Емоджі" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "Відкрити меню налаштувань стрічки" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "Вбудований браузер" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "Відкрити налаштування ігнорування слів і тегів" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "Відкрити навігацію" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "Відкрити меню налаштувань посту" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "Відкрити storybook сторінку" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "Відкрити системний журнал" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "Відкриває меню з {numItems} опціями" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "Відкриває додаткову інформацію про запис для налагодження" #: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "Відкрити розширений список користувачів у цьому сповіщенні" +#~ msgid "Opens an expanded list of users in this notification" +#~ msgstr "Відкрити розширений список користувачів у цьому сповіщенні" #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "Відкриває камеру на пристрої" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "Відкрити редактор" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "Відкриває налаштування мов" @@ -3431,7 +4331,7 @@ msgstr "Відкриває налаштування мов" msgid "Opens device photo gallery" msgstr "Відкриває фотогалерею пристрою" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "Відкриває налаштування зовнішніх вбудувань" @@ -3445,7 +4345,7 @@ msgstr "Відкриває процес створення нового облі msgid "Opens flow to sign into your existing Bluesky account" msgstr "Відкриває процес входу в існуючий обліковий запис Bluesky" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" msgstr "" @@ -3453,23 +4353,27 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Відкриває список кодів запрошення" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Відкриває модальне вікно для підтвердження видалення облікового запису. Потребує код з електронної пошти" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "Відкриває модальне вікно для зміни паролю в Bluesky" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Відкриває модальне вікно для вибору псевдоніму в Bluesky" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Відкриває модальне вікно для завантаження даних з вашого облікового запису Bluesky (репозиторій)" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "Відкриває модальне вікно для перевірки електронної пошти" @@ -3477,28 +4381,28 @@ msgstr "Відкриває модальне вікно для перевірки msgid "Opens modal for using custom domain" msgstr "Відкриває діалог налаштування власного домену як псевдоніму" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" msgstr "Відкриває налаштування модерації" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "Відкриває форму скидання пароля" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "Відкриває сторінку з усіма збереженими стрічками" +#: src/view/screens/Feeds.tsx:417 +#~ msgid "Opens screen to edit Saved Feeds" +#~ msgstr "Відкриває сторінку з усіма збереженими стрічками" -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" msgstr "Відкриває сторінку з усіма збереженими каналами" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "Відкриває налаштування паролів для застосунків" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" msgstr "Відкриває налаштування стрічки підписок" @@ -3507,36 +4411,53 @@ msgid "Opens the linked website" msgstr "Відкриває посилання" #: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "" +#~ msgid "Opens the message settings page" +#~ msgstr "" -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "Відкриває системний журнал" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "Відкриває налаштування гілок" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "Опція {0} з {numItems}" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "За бажанням надайте додаткову інформацію нижче:" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "Або якісь із наступних варіантів:" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "" + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "Інше" @@ -3544,11 +4465,15 @@ msgstr "Інше" msgid "Other account" msgstr "Інший обліковий запис" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "Інші..." -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "" + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Сторінку не знайдено" @@ -3557,14 +4482,14 @@ msgstr "Сторінку не знайдено" msgid "Page Not Found" msgstr "Сторінку не знайдено" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "Пароль" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "Пароль змінено" @@ -3576,52 +4501,66 @@ msgstr "Пароль змінено" msgid "Password updated!" msgstr "Пароль змінено!" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "Люди" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "Люди, на яких підписаний(-на) @{0}" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "Люди, які підписані на @{0}" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." msgstr "Потрібен дозвіл на доступ до камери." -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "Дозвіл на доступ до камери був заборонений. Будь ласка, включіть його в налаштуваннях системи." -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "Домашні улюбленці" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Зображення, призначені для дорослих." -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "Закріпити" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "Закріпити на головній" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "Закріплені стрічки" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" msgstr "" @@ -3629,7 +4568,12 @@ msgstr "" msgid "Play {0}" msgstr "Відтворити {0}" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/screens/Messages/Settings.tsx:97 +#: src/screens/Messages/Settings.tsx:104 +#~ msgid "Play notification sounds" +#~ msgstr "" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" msgstr "" @@ -3642,15 +4586,16 @@ msgstr "Відтворити відео" msgid "Plays the GIF" msgstr "Відтворює GIF" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "Будь ласка, оберіть псевдонім." -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "Будь ласка, оберіть ваш пароль." -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "Будь ласка, завершіть перевірку Captcha." @@ -3658,11 +4603,11 @@ msgstr "Будь ласка, завершіть перевірку Captcha." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Будь ласка, підтвердіть вашу електронну адресу, перш ніж змінити її. Це тимчасова вимога під час додавання інструментів оновлення електронної адреси, незабаром її видалять." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Будь ласка, введіть ім'я для пароля застосунку. Пробіли і пропуски не допускаються." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Будь ласка, введіть унікальну назву для цього паролю або використовуйте нашу випадково згенеровану." @@ -3670,19 +4615,29 @@ msgstr "Будь ласка, введіть унікальну назву для msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Будь ласка, введіть допустиме слово, тег або фразу для ігнорування" -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "Будь ласка, введіть адресу ел. пошти." -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "Будь ласка, також введіть ваш пароль:" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Будь ласка, поясніть, чому ви вважаєте, що ця позначка була помилково додана до {0}" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "" + #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" msgstr "" @@ -3690,11 +4645,12 @@ msgstr "" msgid "Please Verify Your Email" msgstr "Підтвердьте свою адресу електронної пошти" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "Будь ласка, зачекайте доки завершиться створення попереднього перегляду для посилання" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "Політика" @@ -3702,46 +4658,46 @@ msgstr "Політика" msgid "Porn" msgstr "Порнографія" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "Запостити" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" msgstr "Пост" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "Пост від {0}" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "Пост від @{0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "Пост видалено" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Пост приховано" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" msgstr "Пост приховано через ігнороване слово" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" msgstr "Ви приховали цей пост" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "Мова посту" @@ -3749,8 +4705,8 @@ msgstr "Мова посту" msgid "Post Languages" msgstr "Мови посту" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Пост не знайдено" @@ -3758,7 +4714,8 @@ msgstr "Пост не знайдено" msgid "posts" msgstr "пости" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "Пости" @@ -3766,7 +4723,7 @@ msgstr "Пости" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Пости можуть бути ігноровані за їхнім текстом, тегами чи за обома." -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "Пости приховано" @@ -3774,14 +4731,22 @@ msgstr "Пости приховано" msgid "Potentially Misleading Link" msgstr "Потенційно оманливе посилання" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "Змінити хостинг-провайдера" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "Натисніть, щоб повторити спробу" @@ -3790,45 +4755,57 @@ msgstr "Натисніть, щоб повторити спробу" #~ msgid "Press to Retry" #~ msgstr "" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "Попереднє зображення" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "Основна мова" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "Пріоритезувати ваші підписки" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "Конфіденційність" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Політика конфіденційності" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "" + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "Обробка..." -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "профіль" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "Профіль" @@ -3836,11 +4813,11 @@ msgstr "Профіль" msgid "Profile updated" msgstr "Профіль оновлено" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "Захистіть свій обліковий запис, підтвердивши свою електронну адресу." -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "Публічний" @@ -3848,33 +4825,52 @@ msgstr "Публічний" msgid "Public, shareable lists of users to mute or block in bulk." msgstr "Публічні, поширювані списки користувачів для ігнорування або блокування." -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." msgstr "Публічні, поширювані списки для створення стрічок." -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "Опублікувати пост" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "Опублікувати відповідь" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" -msgid "Quote post" -msgstr "Цитувати" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "Цитувати пост" -#: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "Цитувати" +#: src/view/com/modals/Repost.tsx:66 +#~ msgctxt "action" +#~ msgid "Quote post" +#~ msgstr "Цитувати" -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/com/modals/Repost.tsx:71 +#~ msgctxt "action" +#~ msgid "Quote Post" +#~ msgstr "Цитувати" + +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "У випадковому порядку" @@ -3882,11 +4878,19 @@ msgstr "У випадковому порядку" msgid "Ratios" msgstr "Співвідношення сторін" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" msgstr "" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "" + +#: src/components/dms/MessageReportDialog.tsx:149 +#~ msgid "Reason: {0}" +#~ msgstr "" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "Останні запити" @@ -3898,20 +4902,39 @@ msgstr "Останні запити" #~ msgid "Recommended Users" #~ msgstr "Рекомендовані користувачі" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "" + +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Видалити" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "" + #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "Видалити обліковий запис" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "Видалити аватар" @@ -3919,9 +4942,13 @@ msgstr "Видалити аватар" msgid "Remove Banner" msgstr "Видалити банер" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "Видалити стрічку" @@ -3929,15 +4956,16 @@ msgstr "Видалити стрічку" msgid "Remove feed?" msgstr "Видалити стрічку?" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "Вилучити з моїх стрічок" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "Видалити з моїх стрічок?" @@ -3945,7 +4973,7 @@ msgstr "Видалити з моїх стрічок?" msgid "Remove image" msgstr "Вилучити зображення" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "Вилучити попередній перегляд зображення" @@ -3953,11 +4981,20 @@ msgstr "Вилучити попередній перегляд зображен msgid "Remove mute word from your list" msgstr "Вилучити ігноровані слова з вашого списку" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "" + +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 msgid "Remove quote" msgstr "" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "Видалити репост" @@ -3965,48 +5002,60 @@ msgstr "Видалити репост" msgid "Remove this feed from your saved feeds" msgstr "Вилучити цю стрічку зі збережених стрічок" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "Вилучено зі списку" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" msgstr "Вилучено з моїх стрічок" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" msgstr "Видалено з моїх стрічок" #: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "Видаляє мініатюру за замовчуванням з {0}" +#~ msgid "Removes default thumbnail from {0}" +#~ msgstr "Видаляє мініатюру за замовчуванням з {0}" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" msgstr "" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 msgid "Replace with Discover" msgstr "" -#: src/view/screens/Profile.tsx:194 +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "Відповіді" -#: src/view/com/threadgate/WhoCanReply.tsx:98 +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "" + +#: src/view/com/threadgate/WhoCanReply.tsx:123 +#~ msgid "Replies on this thread are disabled" +#~ msgstr "" + +#: src/components/WhoCanReply.tsx:243 msgid "Replies to this thread are disabled" msgstr "Відповіді до цього посту вимкнено" -#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "Відповісти" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "Які відповіді показувати" @@ -4016,13 +5065,26 @@ msgstr "Які відповіді показувати" #~ msgid "Reply to <0/>" #~ msgstr "У відповідь <0/>" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "" -#: src/components/dms/MessageMenu.tsx:109 +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" +msgstr "" + +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "" + +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 msgid "Report" msgstr "" @@ -4031,14 +5093,14 @@ msgstr "" #~ msgid "Report account" #~ msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "Поскаржитись на обліковий запис" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" msgstr "" @@ -4046,64 +5108,75 @@ msgstr "" msgid "Report dialog" msgstr "Діалогове вікно для скарг" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "Поскаржитись на стрічку" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "Поскаржитись на список" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "Поскаржитись на пост" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "Повідомити про цей вміст" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "Повідомити про цю стрічку" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "Поскаржитись на цей список" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "Поскаржитись на цей пост" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "Поскаржитись на цього користувача" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "Репост" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "Репостити" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "Репостити або цитувати" @@ -4111,7 +5184,7 @@ msgstr "Репостити або цитувати" msgid "Reposted By" msgstr "Зробив(-ла) репост" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "{0} зробив(-ла) репост" @@ -4119,15 +5192,20 @@ msgstr "{0} зробив(-ла) репост" #~ msgid "Reposted by <0/>" #~ msgstr "" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "Зроблено репост від <0><1/>" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "зробив(-ла) репост вашого допису" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "Репости цього поста" @@ -4136,12 +5214,12 @@ msgstr "Репости цього поста" msgid "Request Change" msgstr "Змінити" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "Надіслати запит на код" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "Вимагати опис зображень перед публікацією" @@ -4149,7 +5227,7 @@ msgstr "Вимагати опис зображень перед публікац msgid "Require email code to log into your account" msgstr "" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "Вимагається цим хостинг-провайдером" @@ -4158,16 +5236,16 @@ msgstr "Вимагається цим хостинг-провайдером" msgid "Resend email" msgstr "" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "Код підтвердження" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "Код скидання" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "" @@ -4175,20 +5253,20 @@ msgstr "" msgid "Reset password" msgstr "Скинути пароль" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "Повторити спробу" @@ -4197,15 +5275,16 @@ msgstr "Повторити спробу" msgid "Retries the last action, which errored out" msgstr "Повторити останню дію, яка спричинила помилку" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" @@ -4216,7 +5295,8 @@ msgstr "Повторити спробу" #~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "Повернутися до попередньої сторінки" @@ -4225,26 +5305,28 @@ msgid "Returns to home page" msgstr "Повертає до головної сторінки" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "Повертає до попередньої сторінки" #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Зберегти" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "Зберегти" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Зберегти опис" @@ -4260,20 +5342,29 @@ msgstr "Зберегти зміни" msgid "Save handle change" msgstr "Зберегти новий псевдонім" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "Обрізати зображення" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" msgstr "Зберегти до моїх стрічок" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" msgstr "Збережені стрічки" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" msgstr "" @@ -4281,8 +5372,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "Збережено до галереї." -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "Збережено до ваших стрічок" @@ -4298,37 +5389,45 @@ msgstr "Зберігає зміню псевдоніму на {handle}" msgid "Saves image crop settings" msgstr "Зберігає налаштування обрізання зображення" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "Наука" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "Прогорнути вгору" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "Пошук" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "Шукати \"{query}\"" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" msgstr "" @@ -4340,25 +5439,32 @@ msgstr "Пошук усіх повідомлень @{authorHandle} з тегом msgid "Search for all posts with tag {displayTag}" msgstr "Пошук усіх повідомлень з тегом {displayTag}" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." msgstr "" -#: src/view/com/auth/LoggedOut.tsx:105 +#: src/components/dms/NewChat.tsx:226 +#~ msgid "Search for someone to start a conversation with." +#~ msgstr "" + #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "Пошук користувачів" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" msgstr "" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "" @@ -4383,11 +5489,11 @@ msgid "See <0>{displayTag} posts by this user" msgstr "Переглянути пости цього користувача з <0>{displayTag}" #: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "Переглянути профіль" +#: src/view/com/util/UserAvatar.tsx:402 +#~ msgid "See profile" +#~ msgstr "Переглянути профіль" -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "Перегляньте цей посібник" @@ -4419,15 +5525,15 @@ msgstr "" msgid "Select from an existing account" msgstr "Вибрати існуючий обліковий запис" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" msgstr "" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" msgstr "" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "Вибрати мови" @@ -4440,14 +5546,14 @@ msgid "Select option {i} of {numItems}" msgstr "Обрати варіант {i} із {numItems}" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "Оберіть деякі облікові записи, щоб підписатися" +#~ msgid "Select some accounts below to follow" +#~ msgstr "Оберіть деякі облікові записи, щоб підписатися" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" msgstr "Оберіть сервіс модерації для скарги" @@ -4456,69 +5562,80 @@ msgid "Select the service that hosts your data." msgstr "Виберіть хостинг-провайдера для ваших даних." #: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" -msgstr "Підпишіться на тематичні стрічки зі списку нижче" +#~ msgid "Select topical feeds to follow from the list below" +#~ msgstr "Підпишіться на тематичні стрічки зі списку нижче" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" +msgstr "" #: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "Виберіть, що ви хочете бачити (або не бачити), а решту ми зробимо за вас." +#~ msgid "Select what you want to see (or not see), and we’ll handle the rest." +#~ msgstr "Виберіть, що ви хочете бачити (або не бачити), а решту ми зробимо за вас." -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." msgstr "Оберіть мови постів, які ви хочете бачити у збережених каналах. Якщо не вибрано жодної – буде показано пости всіма мовами." -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "Оберіть мову застосунку для відображення тексту за замовчуванням." -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "Оберіть дату народження" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "Виберіть ваші інтереси із нижченаведених варіантів" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." msgstr "Оберіть бажану мову для перекладів у вашій стрічці." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "Оберіть ваші основні алгоритмічні стрічки" +#~ msgid "Select your primary algorithmic feeds" +#~ msgstr "Оберіть ваші основні алгоритмічні стрічки" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" -msgstr "Оберіть ваші другорядні алгоритмічні стрічки" +#~ msgid "Select your secondary algorithmic feeds" +#~ msgstr "Оберіть ваші другорядні алгоритмічні стрічки" + +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" +msgstr "" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Надіслати лист із кодом підтвердження" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "Надіслати ел. листа" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "Надіслати ел. лист" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "Надіслати відгук" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" msgstr "" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." +msgstr "" + +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "Поскаржитись" @@ -4531,7 +5648,12 @@ msgstr "Надіслати скаргу до {0}" msgid "Send verification email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "Надсилає електронний лист з кодом підтвердження видалення облікового запису" @@ -4539,7 +5661,7 @@ msgstr "Надсилає електронний лист з кодом підт msgid "Server address" msgstr "Адреса сервера" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "Додати дату народження" @@ -4547,23 +5669,23 @@ msgstr "Додати дату народження" msgid "Set new password" msgstr "Зміна пароля" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Вимкніть цей параметр, щоб приховати всі цитовані пости у вашій стрічці. Не впливає на репости без цитування." -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Вимкніть цей параметр, щоб приховати всі відповіді у вашій стрічці." -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Вимкніть цей параметр, щоб приховати всі репости у вашій стрічці." -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Увімкніть це налаштування, щоб показувати відповіді у вигляді гілок. Це експериментальна функція." -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Увімкніть це налаштування, щоб іноді бачити пости зі збережених стрічок у вашій домашній стрічці. Це експериментальна функція." @@ -4575,23 +5697,23 @@ msgstr "Налаштуйте ваш обліковий запис" msgid "Sets Bluesky username" msgstr "Встановлює псевдонім Bluesky" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "Встановлює темну тему" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "Встановлює світлу тему" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "Встановлює тему відповідно до системних налаштувань" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "Встановлює чорний колір для темної теми" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "Встановлює тьмяний колір для темної теми" @@ -4611,12 +5733,11 @@ msgstr "Встановлює співвідношення сторін зобр msgid "Sets image aspect ratio to wide" msgstr "Встановлює співвідношення сторін зображення до ширини" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "Налаштування" @@ -4628,45 +5749,86 @@ msgstr "Сексуальна активність або еротична ого msgid "Sexually Suggestive" msgstr "З сексуальним підтекстом" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "Поширити" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "Поширити" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "Поширити" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "Все одно поширити" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "Поширити стрічку" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "Поділитись посиланням" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "" + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "Поширює посилання" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "Показувати" @@ -4674,7 +5836,7 @@ msgstr "Показувати" #~ msgid "Show all replies" #~ msgstr "Показати всі відповіді" -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" msgstr "" @@ -4692,82 +5854,90 @@ msgstr "Показати значок" msgid "Show badge and filter from feeds" msgstr "Показати значок і фільтри зі стрічки" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "Показати підписки, схожі на {0}" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 msgid "Show less like this" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "Показати більше" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" msgstr "Показувати пости зі збережених стрічок" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "Показувати цитати" #: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "Показувати цитування у стрічці \"Following\"" +#~ msgid "Show quote-posts in Following feed" +#~ msgstr "Показувати цитування у стрічці \"Following\"" #: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "Показувати цитування у стрічці \"Following\"" +#~ msgid "Show quotes in Following" +#~ msgstr "Показувати цитування у стрічці \"Following\"" #: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "Показувати репости у стрічці \"Following\"" +#~ msgid "Show re-posts in Following feed" +#~ msgstr "Показувати репости у стрічці \"Following\"" -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "Показувати відповіді" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "Показувати відповіді від людей, за якими ви слідкуєте, вище інших." #: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "Показувати відповіді у стрічці \"Following\"" +#~ msgid "Show replies in Following" +#~ msgstr "Показувати відповіді у стрічці \"Following\"" #: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "Показувати відповіді у стрічці \"Following\"" +#~ msgid "Show replies in Following feed" +#~ msgstr "Показувати відповіді у стрічці \"Following\"" #: src/view/screens/PreferencesFollowingFeed.tsx:70 #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Показувати відповіді від {value} {0}" -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "Показувати репости" #: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "Показувати репости у стрічці \"Following\"" +#~ msgid "Show reposts in Following" +#~ msgstr "Показувати репости у стрічці \"Following\"" -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "Показати вміст" #: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "Показати користувачів" +#~ msgid "Show users" +#~ msgstr "Показати користувачів" #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" @@ -4785,17 +5955,17 @@ msgstr "Показує дописи з {0} у вашій стрічці" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4818,17 +5988,17 @@ msgstr "Увійдіть або створіть обліковий запис, msgid "Sign into Bluesky or create a new account" msgstr "Увійдіть у Bluesky або створіть новий обліковий запис" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "Вийти" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4844,7 +6014,7 @@ msgstr "Зареєструйтеся або увійдіть, щоб приєд msgid "Sign-in Required" msgstr "Необхідно увійти для перегляду" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "Ви увійшли як" @@ -4853,56 +6023,94 @@ msgstr "Ви увійшли як" msgid "Signed in as @{0}" msgstr "Ви увійшли як @{0}" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "Пропустити" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "Пропустити цей процес" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "Розробка П/З" -#: src/screens/Messages/Conversation/index.tsx:89 +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" +msgstr "" + +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "" + +#: src/screens/StarterPack/Wizard/index.tsx:203 +#~ msgid "Some subtitle" +#~ msgstr "" + +#: src/screens/Messages/Conversation/index.tsx:106 msgid "Something went wrong" msgstr "" +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "Щось пішло не так. Будь ласка, спробуйте ще раз." -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "" + +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "Даруйте! Ваш сеанс вичерпався. Будь ласка, увійдіть знову." -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "Сортувати відповіді" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "Оберіть, як сортувати відповіді до постів:" #: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" -msgstr "Джерело:" +#~ msgid "Source:" +#~ msgstr "Джерело:" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "Спам" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "Спам; надмірні згадки або відповіді" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "Спорт" @@ -4910,15 +6118,50 @@ msgstr "Спорт" msgid "Square" msgstr "Квадратне" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" msgstr "" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "" + +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "" + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." +msgstr "" + #: src/view/screens/Settings/index.tsx:862 #~ msgid "Status page" #~ msgstr "Сторінка стану" -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" msgstr "" @@ -4926,53 +6169,60 @@ msgstr "" #~ msgid "Step" #~ msgstr "Крок" -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" msgstr "" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "Сховище очищено, тепер вам треба перезапустити застосунок." -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "Надіслати" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "Підписатися" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "Підпишіться на @{0}, щоб використовувати ці мітки:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "Підписатися на маркувальника" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "Підписатися на {0} стрічку" +#~ msgid "Subscribe to the {0} feed" +#~ msgstr "Підписатися на {0} стрічку" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "Підписатися на цього маркувальника" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "Підписатися на цей список" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "Пропоновані підписки" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "" +#: src/view/screens/Search/Search.tsx:425 +#~ msgid "Suggested Follows" +#~ msgstr "Пропоновані підписки" + +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "Пропозиції для вас" @@ -4981,7 +6231,7 @@ msgstr "Пропозиції для вас" msgid "Suggestive" msgstr "Непристойний" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -4992,19 +6242,23 @@ msgstr "Підтримка" msgid "Switch Account" msgstr "Перемикнути обліковий запис" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "Переключитися на {0}" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "Переключає обліковий запис" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "Системне" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "Системний журнал" @@ -5020,29 +6274,51 @@ msgstr "Меню тегів: {displayTag}" msgid "Tall" msgstr "Високе" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "Торкніться, щоб переглянути повністю" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "Технології" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "Умови" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Умови Використання" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "Використані терміни порушують стандарти спільноти" @@ -5050,12 +6326,13 @@ msgstr "Використані терміни порушують стандар msgid "text" msgstr "текст" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Поле вводу тексту" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "Дякуємо. Вашу скаргу було надіслано." @@ -5063,12 +6340,21 @@ msgstr "Дякуємо. Вашу скаргу було надіслано." msgid "That contains the following:" msgstr "Що містить наступне:" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "Цей псевдонім вже зайнятий." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "Обліковий запис зможе взаємодіяти з вами після розблокування." @@ -5084,15 +6370,24 @@ msgstr "Правила Спільноти переміщено до <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "Політику захисту авторського права переміщено до <0/>" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "Наступні мітки були додано до вашого облікового запису." -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "Наступні мітки були додано до вашого контенту." @@ -5100,8 +6395,8 @@ msgstr "Наступні мітки були додано до вашого ко msgid "The following steps will help customize your Bluesky experience." msgstr "Наступні кроки допоможуть налаштувати Ваш досвід використання Bluesky." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Можливо цей пост було видалено." @@ -5109,6 +6404,10 @@ msgstr "Можливо цей пост було видалено." msgid "The Privacy Policy has been moved to <0/>" msgstr "Політика конфіденційності була переміщена до <0/>" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "" + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." msgstr "Форму підтримки переміщено. Якщо вам потрібна допомога, будь ласка, <0/> або відвідайте {HELP_DESK_URL}, щоб зв'язатися з нами." @@ -5118,51 +6417,56 @@ msgid "The Terms of Service have been moved to" msgstr "Умови Використання перенесено до" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" -msgstr "Також є багато інших стрічок, щоб спробувати:" +#~ msgid "There are many feeds to try:" +#~ msgstr "Також є багато інших стрічок, щоб спробувати:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Виникла проблема з доступом до сервера. Перевірте підключення до Інтернету і повторіть спробу знову." -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Виникла проблема при видаленні цієї стрічки. Перевірте підключення до Інтернету і повторіть спробу." #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Виникла проблема з оновленням ваших стрічок. Перевірте підключення до Інтернету і повторіть спробу." -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." msgstr "" #: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" +#~ msgid "There was an issue connecting to the chat." +#~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "При з'єднанні з сервером виникла проблема" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "При з'єднанні з вашим сервером виникла проблема" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Виникла проблема з завантаженням сповіщень. Натисніть тут, щоб повторити спробу." -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Виникла проблема з завантаженням постів. Натисніть тут, щоб повторити спробу." @@ -5170,57 +6474,59 @@ msgstr "Виникла проблема з завантаженням пості msgid "There was an issue fetching the list. Tap here to try again." msgstr "Виникла проблема з завантаженням списку. Натисніть тут, щоб повторити спробу." -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Виникла проблема з завантаженням ваших списків. Натисніть тут, щоб повторити спробу." -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Виникла проблема з надсиланням вашої скарги. Будь ласка, перевірте підключення до Інтернету." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "Виникла проблема під час синхронізації ваших налаштувань із сервером" +#~ msgid "There was an issue syncing your preferences with the server" +#~ msgstr "Виникла проблема під час синхронізації ваших налаштувань із сервером" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Виникла проблема з завантаженням ваших паролів для застосунків" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "Виникла проблема! {0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "Виникла проблема. Перевірте підключення до Інтернету і повторіть спробу." -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "У застосунку сталася неочікувана проблема. Будь ласка, повідомте нас, якщо ви отримали це повідомлення!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "Відбувався наплив нових користувачів у Bluesky! Ми активуємо ваш обліковий запис як тільки зможемо." #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "Ці популярні користувачі можуть вам сподобатися:" +#~ msgid "These are popular accounts you might like:" +#~ msgstr "Ці популярні користувачі можуть вам сподобатися:" #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" @@ -5230,14 +6536,26 @@ msgstr "Цей {screenDescription} був позначений:" msgid "This account has requested that users sign in to view their profile." msgstr "Цей користувач вказав, що не хоче, аби його профіль бачили відвідувачі без облікового запису." -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "Це звернення буде надіслано до <0>{0}." -#: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:26 +#~ msgid "This chat was disconnected due to a network error." +#~ msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." msgstr "Цей контент був прихований модераторами." @@ -5251,33 +6569,43 @@ msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "Цей вміст розміщено {0}. Увімкнути зовнішні медіа?" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." msgstr "Цей контент недоступний, оскільки один із залучених користувачів заблокував іншого." -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "Цей вміст не доступний для перегляду без облікового запису Bluesky." -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "" + +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "Ця функція знаходиться в беті. Ви можете дізнатися більше про експорт репозиторіїв у <0>цьому блозі.." -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Ця стрічка зараз отримує забагато запитів і тимчасово недоступна. Спробуйте ще раз пізніше." #: src/screens/Profile/Sections/Feed.tsx:59 #: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "Стрічка порожня!" +#: src/view/screens/ProfileList.tsx:729 +#~ msgid "This feed is empty!" +#~ msgstr "Стрічка порожня!" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Ця стрічка порожня! Можливо, вам треба підписатися на більшу кількість користувачів або змінити ваші налаштування мови." -#: src/view/com/posts/FeedShutdownMsg.tsx:97 +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." +msgstr "" + +#: src/view/com/posts/FeedShutdownMsg.tsx:99 msgid "This feed is no longer online. We are showing <0>Discover instead." msgstr "" @@ -5302,10 +6630,14 @@ msgid "This label was applied by the author." msgstr "" #: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" +#~ msgid "This label was applied by you" +#~ msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." msgstr "" -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "Цей маркувальник ще не заявив, які мітки він публікує, і може бути неактивним." @@ -5313,7 +6645,7 @@ msgstr "Цей маркувальник ще не заявив, які мітк msgid "This link is taking you to the following website:" msgstr "Це посилання веде на сайт:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "Список порожній!" @@ -5321,24 +6653,24 @@ msgstr "Список порожній!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "Даний сервіс модерації недоступний. Перегляньте деталі нижче. Якщо проблема не зникне, зв'яжіться з нами." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "Це ім'я вже використовується" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "Цей пост було видалено." -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Цей пост видно лише користувачам, які увійшли до системи. Воно не буде видимим для людей, які не ввійшли до системи." -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "Цей пост буде приховано зі стрічок." -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "Цей профіль видно лише користувачам, які увійшли до системи. Воно не буде видимим для людей, які не ввійшли до системи." @@ -5354,8 +6686,12 @@ msgstr "Це має створити обліковий запис домену: msgid "This user doesn't have any followers." msgstr "Цей користувач ще не має жодного підписника." +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "Цей користувач заблокував вас. Ви не можете бачити їх пости." @@ -5371,6 +6707,10 @@ msgstr "Цей користувач є в списку <0>{0}, який ви msgid "This user is included in the <0>{0} list which you have muted." msgstr "Цей користувач є в списку <0>{0}, який ви додали до ігнорування." +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "" + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "Цей користувач не підписаний ні на кого." @@ -5383,20 +6723,24 @@ msgstr "Цей користувач не підписаний ні на кого msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Це видалить {0} зі ваших ігнорованих слів. Ви завжди можете додати його назад." -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" msgstr "Налаштування гілок" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "Налаштування гілок" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "Режим гілок" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "Налаштування обговорень" @@ -5404,7 +6748,7 @@ msgstr "Налаштування обговорень" msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "" -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." msgstr "" @@ -5416,16 +6760,16 @@ msgstr "Кому ви хотіли б відправити цю скаргу?" msgid "Toggle between muted word options." msgstr "Перемикання між опціями ігнорування слів." -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "Розкрити/сховати" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "Увімкнути або вимкнути вміст для дорослих" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "Верх" @@ -5433,10 +6777,12 @@ msgstr "Верх" msgid "Transformations" msgstr "Редагування" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "Перекласти" @@ -5445,11 +6791,15 @@ msgctxt "action" msgid "Try again" msgstr "Спробувати ще раз" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" msgstr "" @@ -5457,53 +6807,65 @@ msgstr "" msgid "Type:" msgstr "Тип:" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "Розблокувати список" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "Перестати ігнорувати" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Не вдалося зв'язатися з вашим хостинг-провайдером. Перевірте ваше підключення до Інтернету." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "Розблокувати" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "Розблокувати" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "Розблокувати обліковий запис" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" msgstr "Розблокувати обліковий запис?" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "Скасувати репост" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "Відписатись" @@ -5512,12 +6874,12 @@ msgstr "Відписатись" msgid "Unfollow" msgstr "Не стежити" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "Відписатися від {0}" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "Відписатися від облікового запису" @@ -5525,12 +6887,12 @@ msgstr "Відписатися від облікового запису" #~ msgid "Unlike" #~ msgstr "Прибрати вподобання" -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "Видалити вподобання цієї стрічки" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "Не ігнорувати" @@ -5538,8 +6900,8 @@ msgstr "Не ігнорувати" msgid "Unmute {truncatedTag}" msgstr "Не ігнорувати {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "Перестати ігнорувати" @@ -5547,46 +6909,54 @@ msgstr "Перестати ігнорувати" msgid "Unmute all {displayTag} posts" msgstr "Перестати ігнорувати всі пости {displayTag}" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/components/dms/ConvoMenu.tsx:140 +#~ msgid "Unmute notifications" +#~ msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" msgstr "Перестати ігнорувати" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "Відкріпити" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "Відкріпити від головної сторінки" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "Відкріпити список модерації" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Відписатися" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "Відписатися від цього маркувальника" #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" +#~ msgid "Unwanted sexual content" +#~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 +#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:85 msgid "Unwanted Sexual Content" msgstr "Небажаний сексуальний вміст" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "Змінити належність {displayName} до списків" @@ -5598,7 +6968,7 @@ msgstr "Оновити до {handle}" msgid "Updating..." msgstr "Оновлення..." -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" msgstr "" @@ -5606,20 +6976,20 @@ msgstr "" msgid "Upload a text file to:" msgstr "Завантажити текстовий файл до:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "Завантажити з камери" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "Завантажити з файлів" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -5629,7 +6999,7 @@ msgstr "Завантажити з бібліотеки" msgid "Use a file on your server" msgstr "Використовувати файл на вашому сервері" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Використовуйте паролі для застосунків для входу в інших застосунках для Bluesky. Це дозволить використовувати їх, не надаючи повний доступ до вашого облікового запису і вашого основного пароля." @@ -5659,7 +7029,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "Використати панель DNS" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Скористайтесь ним для входу в інші застосунки." @@ -5668,19 +7038,23 @@ msgid "Used by:" msgstr "Використано:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "Користувача заблоковано" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr "Користувача заблоковано списком \"{0}\"" +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" msgstr "Користувача заблоковано списком" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "Користувач заблокував вас" @@ -5688,46 +7062,53 @@ msgstr "Користувач заблокував вас" msgid "User Blocks You" msgstr "Користувач заблокував вас" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "Список користувачів від {0}" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "Список користувачів від <0/>" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "Список користувачів від вас" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "Список користувачів створено" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "Список користувачів оновлено" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "Списки користувачів" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "Ім'я користувача або електронна адреса" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "Користувачі" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "користувачі, на яких підписані <0/>" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "Користувачі в «{0}»" @@ -5747,15 +7128,15 @@ msgstr "Значення:" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "Підтвердити електронну адресу" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "Підтвердити мою електронну адресу" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "Підтвердити мою електронну адресу" @@ -5776,31 +7157,44 @@ msgstr "Підтвердьте адресу вашої електронної п #~ msgid "Version {0}" #~ msgstr "Версія {0}" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "Відеоігри" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "Переглянути аватар {0}" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "Переглянути запис для налагодження" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "Переглянути деталі" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "Переглянути деталі як надіслати скаргу про порушення авторських прав" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "Переглянути обговорення" @@ -5808,13 +7202,15 @@ msgstr "Переглянути обговорення" msgid "View information about these labels" msgstr "Переглянути інформацію про мітки" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Переглянути профіль" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "Переглянути аватар" @@ -5822,10 +7218,15 @@ msgstr "Переглянути аватар" msgid "View the labeling service provided by @{0}" msgstr "Переглянути послуги маркування, який надає @{0}" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "Переглянути користувачів, які вподобали цю стрічку" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -5834,7 +7235,6 @@ msgstr "Відвідати сайт" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "Попереджати" @@ -5850,15 +7250,15 @@ msgstr "Попереджувати про вміст і фільтрувати msgid "We couldn't find any results for that hashtag." msgstr "Ми не змогли знайти жодних результатів для цього хештегу." -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" msgstr "" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Ми оцінюємо {estimatedTime} до готовності вашого облікового запису." -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Ми сподіваємося, що ви проведете чудово свій час. Пам'ятайте, Bluesky — це:" @@ -5871,34 +7271,38 @@ msgid "We recommend avoiding common words that appear in many posts, since it ca msgstr "Ми рекомендуємо уникати загальних слів, що зʼявляються у багатьох постах, оскільки це може призвести до того, що жодного поста не буде показано." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "Ми рекомендуємо стрічку «Discover»:" +#~ msgid "We recommend our \"Discover\" feed:" +#~ msgstr "Ми рекомендуємо стрічку «Discover»:" #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "Не вдалося завантажити ваші налаштування дати дня народження. Повторіть спробу." -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "Наразі ми не змогли завантажити список ваших маркувальників." -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Ми не змогли під'єднатися. Будь ласка, спробуйте ще раз, щоб продовжити налаштування свого облікового запису. Якщо помилка повторюється, то ви можете пропустити цей процес." -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "Ми повідомимо вас, коли ваш обліковий запис буде готовий." -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "Ми скористаємося цим, щоб підлаштувати Ваш досвід." -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "Ми дуже раді, що ви приєдналися!" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Дуже прикро, але нам не вдалося знайти цей список. Якщо це продовжується, будь ласка, зв'яжіться з його автором: @{handleOrDid}." @@ -5906,30 +7310,50 @@ msgstr "Дуже прикро, але нам не вдалося знайти ц msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "На жаль, ми не змогли зараз завантажити ваші ігноровані слова. Будь ласка, спробуйте ще раз." -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Даруйте, нам не вдалося виконати пошук за вашим запитом. Будь ласка, спробуйте ще раз через кілька хвилин." -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "" + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Нам дуже прикро! Ми не можемо знайти сторінку, яку ви шукали." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." -msgstr "На жаль, ви можете підписатися тільки на 10 маркувальників, і ви вже досягли цього ліміту." +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 +#~ msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +#~ msgstr "На жаль, ви можете підписатися тільки на 10 маркувальників, і ви вже досягли цього ліміту." + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "" + +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" +msgstr "" #: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Ласкаво просимо до <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" msgstr "Чим ви цікавитесь?" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "" + #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "Як справи?" @@ -5941,36 +7365,53 @@ msgstr "Які мови використані в цьому пості?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Якими мовами ви хочете бачити пости у алгоритмічних стрічках?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "Хто може відповідати" -#: src/screens/Home/NoFeedsPinned.tsx:92 +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "" + +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "Чому слід переглянути цей контент?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "Чому слід переглянути цю стрічку?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "Чому слід переглянути цей список?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "Чому слід переглянути цей пост?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "Чому слід переглянути цього користувача?" @@ -5978,39 +7419,61 @@ msgstr "Чому слід переглянути цього користувач msgid "Wide" msgstr "Широке" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "Написати пост" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "Написати відповідь" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "Письменники" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "Так" -#: src/components/dms/MessageItem.tsx:158 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "" + +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "" + +#: src/components/dms/MessageItem.tsx:182 msgid "Yesterday, {time}" msgstr "" -#: src/screens/Deactivated.tsx:136 +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "Ви в черзі." @@ -6018,29 +7481,49 @@ msgstr "Ви в черзі." msgid "You are not following anyone." msgstr "Ви ні на кого не підписані." -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "Також ви можете знайти кастомні стрічки для підписання." +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "" + #: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." -msgstr "Ви можете змінити ці налаштування пізніше." +#~ msgid "You can change these settings later." +#~ msgstr "Ви можете змінити ці налаштування пізніше." + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "" + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." msgstr "Тепер ви можете увійти за допомогою нового пароля." +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "" + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "У вас немає жодного підписника." +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "" + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "У вас ще немає кодів запрошення! З часом ми надамо вам декілька." -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." msgstr "У вас немає закріплених стрічок." @@ -6048,28 +7531,32 @@ msgstr "У вас немає закріплених стрічок." #~ msgid "You don't have any saved feeds!" #~ msgstr "У вас немає збережених стрічок!" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." msgstr "У вас немає збережених стрічок." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Ви заблокували автора або автор заблокував вас." +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "Ви заблокували цього користувача. Ви не можете бачити їх вміст." #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "Ви ввели неправильний код. Він має виглядати так: XXXXX-XXXXX." -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "Ви приховали цей пост" @@ -6078,32 +7565,36 @@ msgid "You have hidden this post." msgstr "Ви приховали цей пост." #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "Ви увімкнули ігнорування цього облікового запису." -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "Ви увімкнули ігнорування цього користувача" -#: src/view/com/feeds/ProfileFeedgens.tsx:144 +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "" + +#: src/view/com/feeds/ProfileFeedgens.tsx:137 msgid "You have no feeds." msgstr "У вас немає стрічок." -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." msgstr "У вас немає списків." #: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "" +#~ msgid "You have no messages yet. Start a conversation with someone!" +#~ msgstr "" #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "Ви ще не заблокували жодного облікового запису. Щоб заблокувати когось, перейдіть до їх профілю та виберіть опцію \"Заблокувати\" у меню їх облікового запису." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Ви ще не створили жодного пароля для застосунків. Ви можете створити новий пароль, натиснувши кнопку нижче." @@ -6111,35 +7602,67 @@ msgstr "Ви ще не створили жодного пароля для за msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "Ви ще не ігноруєте жодного облікового запису. Щоб увімкнути ігнорування когось, перейдіть до їх профілю та виберіть опцію \"Ігнорувати\" у меню їх облікового запису." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "У вас ще немає ігнорованих слів чи тегів" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Ви можете оскаржувати мітки, якщо вважаєте, що вони були розміщені помилково." +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "" + #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "Вам має виповнитись 13 років для того, щоб мати змогу зареєструватись." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" -msgstr "Ви повинні бути старше 18 років, щоб дозволити перегляд контенту для дорослих" +#~ msgid "You must be 18 years or older to enable adult content" +#~ msgstr "Ви повинні бути старше 18 років, щоб дозволити перегляд контенту для дорослих" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." +msgstr "" + +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "" + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "Ви повинні обрати хоча б одного маркувальника для скарги" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "Ви більше не будете отримувати сповіщення з цього обговорення" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "Ви будете отримувати сповіщення з цього обговорення" @@ -6147,60 +7670,98 @@ msgstr "Ви будете отримувати сповіщення з цьог msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Ви отримаєте електронний лист із кодом підтвердження. Введіть цей код тут, а потім введіть новий пароль." -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" msgstr "" -#: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "Все під вашим контролем" +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" +msgstr "" + +#: src/screens/Onboarding/StepModeration/index.tsx:60 +#~ msgid "You're in control" +#~ msgstr "Все під вашим контролем" + +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "Ви в черзі" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "" + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "Все готово!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "Ви обрали приховувати слово або тег в цьому пості." -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "Ваша домашня стрічка закінчилась! Підпишіться на більше користувачів щоб отримувати більше постів." -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "Ваш акаунт" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "Ваш обліковий запис видалено" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "Дані з вашого облікового запису, які містять усі загальнодоступні записи, можна завантажити як \"CAR\" файл. Цей файл не містить медіафайлів, таких як зображення, або особисті дані, які необхідно отримати окремо." -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "Ваша дата народження" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "Ваш вибір буде запам'ятовано, ви у будь-який момент зможете змінити його в налаштуваннях." #: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "Ваша стрічка за замовчуванням \"Following\"" +#~ msgid "Your default feed is \"Following\"" +#~ msgstr "Ваша стрічка за замовчуванням \"Following\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "Не вдалося розпізнати адресу електронної пошти." @@ -6212,11 +7773,15 @@ msgstr "Вашу адресу електронної пошти було змі msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Ваша електронна пошта ще не підтверджена. Це важливий крок для безпеки вашого облікового запису, який ми рекомендуємо вам зробити." -#: src/view/com/posts/FollowingEmptyState.tsx:47 +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "" + +#: src/view/com/posts/FollowingEmptyState.tsx:43 msgid "Your following feed is empty! Follow more users to see what's happening." msgstr "Ваша домашня стрічка порожня! Підпишіться на більше користувачів щоб отримувати більше постів." -#: src/screens/Signup/StepHandle.tsx:73 +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "Ваш повний псевдонім буде" @@ -6228,30 +7793,34 @@ msgstr "Вашим повним псевдонімом буде <0>@{0}" msgid "Your muted words" msgstr "Ваші ігноровані слова" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "Ваш пароль успішно змінено!" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "Пост опубліковано" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Ваші повідомлення, вподобання і блоки є публічними. Ігнорування - приватні." -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "Ваш профіль" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "" + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "Відповідь опубліковано" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" msgstr "" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "Ваш псевдонім" diff --git a/src/locale/locales/zh-CN/messages.po b/src/locale/locales/zh-CN/messages.po index 7cbeb2526d..fbd01ccc94 100644 --- a/src/locale/locales/zh-CN/messages.po +++ b/src/locale/locales/zh-CN/messages.po @@ -1,207 +1,261 @@ msgid "" msgstr "" -"POT-Creation-Date: 2024-04-26 10:15+0800\n" +"POT-Creation-Date: \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_CN\n" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: \n" +"Project-Id-Version: zh-CN for bluesky-social-app\n" +"Report-Msgid-Bugs-To: Frudrax Cheng \n" +"PO-Revision-Date: 2024-07-15 09:11+0800\n" "Last-Translator: Frudrax Cheng \n" -"Language-Team: Frudrax Cheng, Simon Chan, U2FsdGVkX1, Mikan Harada, IceCodeNew\n" +"Language-Team: Frudrax Cheng (auroursa), Simon Chan (RitsukiP), U2FsdGVkX1, Mikan Harada (mitian233), IceCodeNew\n" "Plural-Forms: \n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "(包含嵌入内容)" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(没有邮件)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" -msgstr "" +msgstr "{0, plural, one {其他 {formattedCount} 人} other {其他 {formattedCount} 人}}" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" -msgstr "" +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" +msgstr "{0, plural, one {# 个标签已标记到这个账户} other {# 个标签已标记到这个账户}}" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" -msgstr "" +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" +msgstr "{0, plural, one {# 个标签已标记到此内容} other {# 个标签已标记到此内容}}" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" -msgstr "" +msgstr "{0, plural, one {# 条转发} other {# 条转发}}" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" -msgstr "" +msgstr "{0, plural, one {关注者} other {关注者}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" -msgstr "" +msgstr "{0, plural, one {正在关注} other {正在关注}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" -msgstr "" +msgstr "{0, plural, one {喜欢 (# 个喜欢)} other {喜欢 (# 个喜欢)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" -msgstr "" +msgstr "{0, plural, one {喜欢} other {喜欢}}" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{0, plural, one {# 位用户喜欢} other {# 位用户喜欢}}" #: src/screens/Profile/Header/Metrics.tsx:59 msgid "{0, plural, one {post} other {posts}}" -msgstr "" +msgstr "{0, plural, one {帖文} other {帖文}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" -msgstr "" +msgstr "{0, plural, one {回复 (# 个回复)} other {回复 (# 个回复)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" -msgstr "" +msgstr "{0, plural, one {转发} other {转发}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" -msgstr "" +msgstr "{0, plural, one {取消喜欢 (# 个喜欢)} other {取消喜欢 (# 个喜欢)}}" -#: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" -msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "在本周加入了 {0} 人" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "{0} 人已使用过此入门包!" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "{0}的头像" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "{0}最喜欢的资讯源和用户 - 来加入我们吧!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" +msgstr "{0}的入门包" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{count, plural, one {# 位用户喜欢} other {# 位用户喜欢}}" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "{diff, plural, one {日} other {日}}" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "{diff, plural, one {小时} other {小时}}" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "{diff, plural, one {分} other {分}}" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "{diff, plural, one {月} other {月}}" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "{diffSeconds, plural, one {秒} other {秒}}" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "{displayName} 的入门包" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" -msgstr "" +msgstr "{estimatedTimeHrs, plural, one {时} other {时}}" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" -msgstr "" +msgstr "{estimatedTimeMins, plural, one {分} other {分}}" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} 个正在关注" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 -msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "无法给 {handle} 发送私信" -#: src/view/shell/Drawer.tsx:461 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 +msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" +msgstr "{likeCount, plural, one {# 位用户喜欢} other {# 位用户喜欢}}" + +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} 个未读" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "{profileName} 在 {0} 前加入了 Bluesky" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "{profileName} 在 {0} 前使用入门包加入了 Bluesky" + #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" -msgstr "" +msgstr "{value, plural, =0 {显示所有回复} one {显示至少含有 # 个喜欢数的回复} other {显示至少含有 # 个喜欢数的回复}}" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "<0/> 个成员" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}、<1>{1}及{2, plural, one {其他 # } other {其他 # }}人包含在你的入门包中" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}、<1>{1}及{2, plural, one {其他 # } other {其他 # }}个资讯源包含在你的入门包中" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" -msgstr "" +msgstr "<0>{0} {1, plural, one {关注者} other {关注者}}" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" -msgstr "" +msgstr "<0>{0} {1, plural, one {正在关注} other {正在关注}}" -#: src/view/shell/Drawer.tsx:96 -#~ msgid "<0>{0} following" -#~ msgstr "<0>{0} 个正在关注" +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "<0>{0} 以及<1><2>{1} 包含在你的入门包中" -#: src/components/ProfileHoverCard/index.web.tsx:437 -#~ msgid "<0>{followers} <1>{pluralizedFollowers}" -#~ msgstr "<0>{followers} <1>{pluralizedFollowers}" - -#: src/components/ProfileHoverCard/index.web.tsx:449 -#: src/screens/Profile/Header/Metrics.tsx:45 -#~ msgid "<0>{following} <1>following" -#~ msgstr "<0>{following} <1>个正在关注" - -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:31 -#~ msgid "<0>Choose your<1>Recommended<2>Feeds" -#~ msgstr "<0>选择你<1>推荐的<2>信息流" - -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:38 -#~ msgid "<0>Follow some<1>Recommended<2>Users" -#~ msgstr "<0>关注一些<1>推荐的<2>用户" +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "<0>{0} 包含在你的入门包中" #: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." -msgstr "" +msgstr "<0>不适用。 这个警告仅适用于附加媒体内容的帖文。" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:21 -#~ msgid "<0>Welcome to<1>Bluesky" -#~ msgstr "<0>欢迎来到<1>Bluesky" +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "<0>你以及<1> <2>{0} 包含在你的入门包中" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "⚠无效的用户识别符" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" msgstr "两步验证" -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "帮助工具提示" + +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "访问导航链接及设置" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" msgstr "访问个人资料及其他导航链接" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "无障碍" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" msgstr "无障碍设置" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" msgstr "无障碍设置" -#: src/components/moderation/LabelsOnMe.tsx:42 -#~ msgid "account" -#~ msgstr "账户" - -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "账户" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "已屏蔽账户" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "已关注账户" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "已隐藏账户" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "已隐藏账户" @@ -217,37 +271,46 @@ msgstr "账户选项" msgid "Account removed from quick access" msgstr "已从快速访问中移除账户" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" msgstr "已取消屏蔽账户" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "已取消关注账户" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "已取消隐藏账户" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "添加" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "添加 {0} 个以继续" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "添加 {displayName} 至入门包" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "新增内容警告" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "将用户添加至列表" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "添加账户" @@ -256,17 +319,13 @@ msgstr "添加账户" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" -msgstr "新增替代文字" +msgstr "新增替代文本" -#: src/view/com/composer/GifAltText.tsx:175 -#~ msgid "Add ALT text" -#~ msgstr "" - -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "新增应用专用密码" @@ -278,65 +337,90 @@ msgstr "为配置的设置添加隐藏词汇" msgid "Add muted words and tags" msgstr "添加隐藏词和标签" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" -msgstr "" +msgstr "添加推荐的资讯源" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" +msgstr "添加一些推荐的资讯源到你的入门包中!" + +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" -msgstr "" +msgstr "添加默认的资讯源(仅显示你关注的人)" #: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "将以下 DNS 记录新增到你的域名:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "添加此资讯源到你的自定义资讯源列表" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "添加至列表" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" -msgstr "添加至自定义信息流" +msgstr "添加至自定义资讯源" -#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:139 -#~ msgid "Added" -#~ msgstr "已添加" - -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "已添加至列表" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" -msgstr "已添加至自定义信息流" +msgstr "已添加至自定义资讯源" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." -msgstr "调整回复中需要具有的喜欢数才会在你的信息流中显示。" +msgstr "调整会在你的资讯源中显示的回复至少需要含有多少喜欢数。" #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "成人内容" +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "成人内容显示仅可通过网页端(<0>bsky.app)启用。" + #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." msgstr "成人内容显示已被禁用。" -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" msgstr "详细设置" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "算法训练完成!" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "已关注所有账户!" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." -msgstr "你保存的所有信息流都集中在一处。" +msgstr "你保存的所有资讯源都集中在一处。" + +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "允许读取你的私信" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "允许以下来源发起新对话" #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" msgstr "已经有验证码了?" @@ -346,23 +430,23 @@ msgstr "已以@{0}身份登录" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" msgstr "ALT" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" -msgstr "替代文字" +msgstr "替代文本" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" -msgstr "" +msgstr "替代文本" #: src/view/com/composer/photos/Gallery.tsx:224 msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." -msgstr "为图片新增替代文字,以帮助盲人及视障群体了解图片内容。" +msgstr "为图片新增替代文本,以帮助盲人及视障群体了解图片内容。" #: src/view/com/modals/VerifyEmail.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 @@ -373,119 +457,151 @@ msgstr "一封电子邮件已发送至 {0}。请查阅邮件内容并复制验 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "一封电子邮件已发送至先前填写的邮箱 {0}。请查阅邮件内容并复制验证码至下方。" -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" msgstr "发生错误" -#: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." -msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" +msgstr "创建入门包时发生错误,重试?" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "保存二维码时发生错误!" + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "关注所有人时发生错误" + +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "不在这些选项中的问题" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "开启新私信时出现问题" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "开启私信时出现问题" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "出现问题,请重试。" -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" -msgstr "" +msgstr "出现未知错误" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "和" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "动物" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" msgstr "GIF 动画" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "反社会行为" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "应用语言" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "应用专用密码已删除" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "应用专用密码只能包含字母、数字、空格、破折号及下划线。" -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." msgstr "应用专用密码必须至少为 4 个字符。" -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "应用专用密码设置" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "应用专用密码" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "申诉" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "申诉 \"{0}\" 标记" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" -msgstr "" +msgstr "申诉已提交" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 -#~ msgid "Appeal submitted." -#~ msgstr "申诉已提交。" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "对此结果提出申诉" -#: src/view/screens/Settings/index.tsx:430 +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "外观" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" -msgstr "" +msgstr "使用默认推荐的资讯源" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "你确定要删除这条应用专用密码 \"{name}\" 吗?" -#: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." -msgstr "" +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." +msgstr "你确定要删除这条私信吗?此操作仅会在你的对话中删除私信,而不会在其他人的对话中删除。" -#: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." -msgstr "" +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" +msgstr "你确定要删除此入门包吗?" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." +msgstr "你确定要离开这个对话吗?此操作仅会在你的私信列表中删除对话,而不会在其他人的私信列表中删除。" + +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" -msgstr "你确定要从你的信息流中删除 {0} 吗?" +msgstr "你确定要从你的资讯源中删除 {0} 吗?" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "你确定要从自定义资讯源列表中删除此资讯源吗?" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" -msgstr "你确定要丢弃此草稿吗?" +msgstr "你确定要丢弃这段草稿吗?" #: src/components/dialogs/MutedWords.tsx:281 msgid "Are you sure?" @@ -495,7 +611,8 @@ msgstr "你确定吗?" msgid "Are you writing in <0>{0}?" msgstr "你是用 <0>{0} 编写的吗?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "艺术" @@ -503,32 +620,31 @@ msgstr "艺术" msgid "Artistic or non-erotic nudity." msgstr "艺术作品或非色情的裸体。" -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "至少 3 个字符" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "返回" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "基于你对 {interestsText} 感兴趣" - -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "基础信息" @@ -536,78 +652,78 @@ msgstr "基础信息" msgid "Birthday" msgstr "生日" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "生日:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "屏蔽" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" -msgstr "" +msgstr "屏蔽账户" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "屏蔽账户" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "屏蔽账户?" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "屏蔽账户" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "屏蔽列表" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "屏蔽这些账户?" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" msgstr "已屏蔽" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "已屏蔽账户" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "已屏蔽账户" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." -msgstr "被屏蔽的账户无法在你的帖子中回复、提及你或以其他方式与你互动。" +msgstr "被屏蔽的账户无法在你的帖文中回复、提及你或以其他方式与你互动。" #: src/view/screens/ModerationBlockedAccounts.tsx:117 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." -msgstr "被屏蔽的账户无法在你的帖子中回复、提及你或以其他方式与你互动。你将不会看到他们所发的内容,同样他们也无法查看你的内容。" +msgstr "被屏蔽的账户无法在你的帖文中回复、提及你或以其他方式与你互动。你将不会看到他们所发的内容,同样他们也无法查看你的内容。" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." -msgstr "已屏蔽帖子。" +msgstr "已屏蔽帖文。" -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "屏蔽这个用户不能阻止他继续标记你的账户。" -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." -msgstr "屏蔽是公开的。被屏蔽的账户无法在你的帖子中回复、提及你或以其他方式与你互动。" +msgstr "屏蔽是公开的。被屏蔽的账户无法在你的帖文中回复、提及你或以其他方式与你互动。" -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." -msgstr "屏蔽不会阻止标记被放置到你的账户上,但会阻止此账户在你发布的帖子中回复或与你互动。" +msgstr "屏蔽不会阻止标记被放置到你的账户上,但会阻止这个账户在你发布的帖文中回复或与你互动。" #: src/view/com/auth/SplashScreen.web.tsx:154 msgid "Blog" @@ -622,24 +738,17 @@ msgstr "Bluesky" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "Bluesky 是一个开放的公共网络,你可以选择自己的托管提供商。现在,自定义托管现在已经进入开发者测试阶段。" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 -#~ msgid "Bluesky is flexible." -#~ msgstr "Bluesky 非常灵活。" +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "Bluesky 因朋友而更好!" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:69 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:71 -#~ msgid "Bluesky is open." -#~ msgstr "Bluesky 保持开放。" +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "Bluesky 将从你的社交网络中选择一组推荐的账户。" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:56 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:58 -#~ msgid "Bluesky is public." -#~ msgstr "Bluesky 为公众而生。" - -#: src/screens/Moderation/index.tsx:533 +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." -msgstr "Bluesky 不会向未登录的用户显示你的个人资料和帖子。但其他应用可能不会遵照此请求,这无法确保你的账户隐私。" +msgstr "Bluesky 不会向未登录的用户显示你的个人资料和帖文。但其他应用可能不会遵照这个请求,这无法确保你的账户隐私。" #: src/lib/moderation/useLabelBehaviorDescription.ts:53 msgid "Blur images" @@ -647,38 +756,49 @@ msgstr "模糊化图片" #: src/lib/moderation/useLabelBehaviorDescription.ts:51 msgid "Blur images and filter from feeds" -msgstr "模糊化图片并从信息流中过滤" +msgstr "模糊化图片并从资讯源中过滤" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "书籍" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" +msgstr "在探索页面浏览更多账户" + +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "在探索页面浏览更多资讯源" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "浏览更多建议" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "在探索页面浏览更多建议" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 msgid "Browse other feeds" -msgstr "" +msgstr "浏览其他资讯源" #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "商务" -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" msgstr "来自 —" -#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:100 -#~ msgid "by {0}" -#~ msgstr "来自 {0}" - #: src/components/LabelingServiceCard/index.tsx:56 msgid "By {0}" msgstr "来自 {0}" -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" - -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "来自 <0/>" @@ -686,7 +806,7 @@ msgstr "来自 <0/>" msgid "By creating an account you agree to the {els}." msgstr "创建账户即默认表明你同意我们的 {els}。" -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "来自你" @@ -694,7 +814,7 @@ msgstr "来自你" msgid "Camera" msgstr "相机" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "只能包含字母、数字、空格、破折号及下划线。 长度必须至少 4 个字符,但不超过 32 个字符。" @@ -702,14 +822,15 @@ msgstr "只能包含字母、数字、空格、破折号及下划线。 长度 #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -717,23 +838,23 @@ msgstr "只能包含字母、数字、空格、破折号及下划线。 长度 #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "取消" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "取消" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "取消账户删除申请" @@ -749,12 +870,16 @@ msgstr "取消裁剪图片" msgid "Cancel profile editing" msgstr "取消编辑个人资料" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" -msgstr "取消引用帖子" +msgstr "取消引用帖文" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "取消重新激活账户并登出" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "取消搜索" @@ -766,17 +891,17 @@ msgstr "取消打开链接的网站" msgid "Change" msgstr "更改" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "更改" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "更改用户识别符" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "更改用户识别符" @@ -784,120 +909,130 @@ msgstr "更改用户识别符" msgid "Change my email" msgstr "更改我的邮箱地址" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "更改密码" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "更改密码" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:73 msgid "Change post language to {0}" -msgstr "更改帖子的发布语言至 {0}" +msgstr "更改帖文的发布语言至 {0}" #: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "更改你的邮箱地址" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" -msgstr "" +msgstr "私信" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" -msgstr "" +msgstr "已隐藏对话" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" -msgstr "" +msgstr "私信设置" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "私信设置" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" -msgstr "" +msgstr "已解除隐藏对话" -#: src/screens/Messages/Conversation/index.tsx:26 -#~ msgid "Chat with {chatId}" -#~ msgstr "" - -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "检查我的状态" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:122 -#~ msgid "Check out some recommended feeds. Tap + to add them to your list of pinned feeds." -#~ msgstr "查看一些推荐的信息流。点击 + 去将他们新增到你的固定信息流列表中。" - -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:186 -#~ msgid "Check out some recommended users. Follow them to see similar users." -#~ msgstr "查看一些推荐的用户。关注他们还将推荐相似的用户。" - -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." -msgstr "在这里输入刚才发送到你电子邮箱里的验证码" +msgstr "在这里输入刚才发送到你电子邮箱里的验证码。" -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "查看发送至你电子邮箱的确认邮件,并在下方输入收到的验证码:" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "选择 \"所有人\" 或是 \"没有人\"" +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "选择至少 3 个或更多:" + +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "还需选择至少 {0} 个" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "选择资讯源" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "为我做选择" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "选择用户" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "选择服务" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." -msgstr "选择支持你的自定义信息流的算法。" - -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 -#~ msgid "Choose the algorithms that power your experience with custom feeds." -#~ msgstr "选择可改进你自定义信息流的算法。" +msgstr "选择支持你的自定义资讯源的算法。" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 msgid "Choose this color as your avatar" -msgstr "" +msgstr "选择这个颜色作为你的头像" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "选择你的主要信息流" +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" +msgstr "选择谁可以回复" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "选择你的密码" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" msgstr "清除所有旧存储数据" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" msgstr "清除所有旧存储数据(并重启)" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "清除所有数据" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "清除所有数据(并重启)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "清除搜索历史记录" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "清除所有旧版存储数据" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "清除所有数据" @@ -905,27 +1040,45 @@ msgstr "清除所有数据" msgid "click here" msgstr "点击这里" -#: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." -msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" +msgstr "点击这里来了解有关停用账户的详细资讯" + +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "点击这里以获取更多详情。" #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "点击这里打开 {tag} 的标签菜单" -#: src/screens/Onboarding/index.tsx:47 +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "点击以重试发送失败的私信" + +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "气象" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "哒哒🐴哒哒🐴" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "关闭" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "关闭活动对话框" @@ -937,11 +1090,12 @@ msgstr "关闭警告" msgid "Close bottom drawer" msgstr "关闭底部抽屉" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" msgstr "关闭对话框" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" msgstr "关闭 GIF 对话框" @@ -953,6 +1107,10 @@ msgstr "关闭图片" msgid "Close image viewer" msgstr "关闭图片查看器" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "关闭对话框" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "关闭导航页脚" @@ -970,66 +1128,66 @@ msgstr "关闭底部导航栏" msgid "Closes password update alert" msgstr "关闭密码更新警告" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" -msgstr "关闭帖子编辑页并丢弃草稿" +msgstr "关闭帖文编辑页并丢弃草稿" #: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:37 msgid "Closes viewer for header image" msgstr "关闭标题图片查看器" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "折叠用户列表" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "折叠给定通知的用户列表" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "喜剧" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "漫画" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "社群准则" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "完成引导并开始使用你的账户" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "完成验证" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" -msgstr "撰写帖子的长度最多为 {MAX_GRAPHEME_LENGTH} 个字符" +msgstr "撰写帖文的长度最多为 {MAX_GRAPHEME_LENGTH} 个字符" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "撰写回复" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "为类别 {0} 配置内容过滤设置" - #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" msgstr "为类别 {name} 配置内容过滤设置" #: src/components/moderation/LabelPreference.tsx:244 msgid "Configured in <0>moderation settings." -msgstr "在 <0>限制设置 中配置。" +msgstr "在 <0>内容审核设置 中配置。" -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -1044,66 +1202,62 @@ msgstr "确认更改" msgid "Confirm content language settings" msgstr "确认内容语言设置" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "确认删除账户" -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "确认你的年龄:" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "确认你的出生日期" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "验证码" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "连接中..." -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "联系支持" -#: src/components/moderation/LabelsOnMe.tsx:42 -#~ msgid "content" -#~ msgstr "内容" - #: src/lib/moderation/useGlobalLabelStrings.ts:18 msgid "Content Blocked" msgstr "内容已屏蔽" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "内容过滤器" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "内容语言" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" msgstr "内容不可用" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "内容警告" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "内容警告" @@ -1111,12 +1265,8 @@ msgstr "内容警告" msgid "Context menu backdrop, click to close the menu." msgstr "上下文菜单背景,点击关闭菜单。" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "继续" @@ -1124,41 +1274,39 @@ msgstr "继续" msgid "Continue as {0} (currently signed in)" msgstr "以 {0} 继续(已登录)" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "加载更多帖文串..." + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "继续下一步" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "继续下一步" +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" +msgstr "对话已删除" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" -msgstr "继续下一步,不关注任何账户" - -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "烹饪" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "已复制" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "已复制构建版本号至剪贴板" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "已复制至剪贴板" @@ -1166,81 +1314,108 @@ msgstr "已复制至剪贴板" msgid "Copied!" msgstr "已复制!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "已复制应用专用密码" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "复制" #: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" -msgstr "复制 {0}" +msgstr "复制{0}" #: src/components/dialogs/Embed.tsx:120 #: src/components/dialogs/Embed.tsx:139 msgid "Copy code" msgstr "复制代码" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "复制链接" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "复制链接" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "复制列表链接" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" -msgstr "复制帖子链接" +msgstr "复制帖文链接" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" -msgstr "" +msgstr "复制私信文字" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" -msgstr "复制帖子文字" +msgstr "复制帖文文字" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "复制二维码" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "版权许可" -#: src/components/dms/ConvoMenu.tsx:80 +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" +msgstr "无法压缩视频" + +#: src/components/dms/LeaveConvoPrompt.tsx:39 msgid "Could not leave chat" -msgstr "" +msgstr "无法离开对话" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" -msgstr "无法加载信息流" +msgstr "无法加载资讯源" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "无法加载列表" -#: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "" - -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" -msgstr "" +msgstr "无法隐藏对话" -#: src/components/dms/ConvoMenu.tsx:68 -#~ msgid "Could not unmute chat" -#~ msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "创建" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "创建新的账户" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "创建新的 Bluesky 账户" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "为入门包创建二维码" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "创建入门包" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "为我创建入门包" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "创建账户" @@ -1249,11 +1424,15 @@ msgstr "创建账户" msgid "Create an account" msgstr "创建一个账户" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" -msgstr "" +msgstr "创建一个头像" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" +msgstr "创建另外一个" + +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "创建应用专用密码" @@ -1262,15 +1441,16 @@ msgstr "创建应用专用密码" msgid "Create new account" msgstr "创建新的账户" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "创建 {0} 的举报" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0} 已创建" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "文化" @@ -1283,17 +1463,17 @@ msgstr "自定义" msgid "Custom domain" msgstr "自定义域名" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." -msgstr "由社群构建的自定义信息流能为你带来新的体验,并帮助你找到你喜欢的内容。" +msgstr "由社群构建的自定义资讯源能为你带来新的体验,并帮助你找到你喜欢的内容。" #: src/view/screens/PreferencesExternalEmbeds.tsx:56 msgid "Customize media from external sites." msgstr "自定义外部站点的媒体。" -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "暗色" @@ -1301,96 +1481,122 @@ msgstr "暗色" msgid "Dark mode" msgstr "深色模式" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "深色模式" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "生日" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "停用账户" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "停用我的账户" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" -msgstr "调试限制" +msgstr "调试内容审核" #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "调试面板" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "删除" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "删除账户" -#: src/view/com/modals/DeleteAccount.tsx:87 -#~ msgid "Delete Account" -#~ msgstr "删除账户" - -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" -msgstr "" +msgstr "删除账户 <0>\"<1>{0}<2>\"" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "删除应用专用密码" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "删除应用专用密码?" -#: src/components/dms/MessageMenu.tsx:101 -msgid "Delete for me" -msgstr "" +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "删除聊天记录" -#: src/view/screens/ProfileList.tsx:466 +#: src/components/dms/MessageMenu.tsx:124 +msgid "Delete for me" +msgstr "为我删除" + +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "删除列表" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" -msgstr "" +msgstr "删除私信" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" -msgstr "" +msgstr "为我删除私信" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "删除我的账户" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "删除我的账户…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" -msgstr "删除帖子" +msgstr "删除帖文" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "删除入门包" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "删除入门包?" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "删除这个列表?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" -msgstr "删除这条帖子?" +msgstr "删除这条帖文?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "已删除" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." -msgstr "已删除帖子。" +msgstr "已删除的帖文。" -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "删除聊天记录" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1398,17 +1604,21 @@ msgstr "描述" #: src/view/com/composer/GifAltText.tsx:140 msgid "Descriptive alt text" -msgstr "" +msgstr "描述替代文本" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "有什么想说的吗?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "暗淡" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "隆重介绍私信功能!" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" msgstr "关闭 GIF 自动播放" @@ -1416,38 +1626,56 @@ msgstr "关闭 GIF 自动播放" msgid "Disable Email 2FA" msgstr "关闭电子邮件两步验证" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" msgstr "关闭触感反馈" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "关闭" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "丢弃" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "丢弃草稿?" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "阻止应用向未登录用户显示我的账户" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 -msgid "Discover new custom feeds" -msgstr "探索新的自定义信息流" +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "\"Discover\" 会根据你的浏览喜好向你推荐帖文。" -#: src/view/screens/Feeds.tsx:820 +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 +msgid "Discover new custom feeds" +msgstr "探索新的自定义资讯源" + +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "探索新的资讯源" + +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" -msgstr "探索新的信息流" +msgstr "探索新的资讯源" + +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "关闭入门指南" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "显示更大的替代文本标签" #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" @@ -1465,7 +1693,7 @@ msgstr "DNS 面板" msgid "Does not include nudity." msgstr "不包含裸露内容。" -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "不以连字符开头或结尾" @@ -1479,30 +1707,27 @@ msgstr "域名已认证!" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "完成" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "完成" @@ -1511,19 +1736,19 @@ msgstr "完成" msgid "Done{extraText}" msgstr "完成{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "下载 Bluesky" + +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "下载 CAR 文件" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "拖放即可新增图片" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "受 Apple 政策限制,显示成人内容只能在完成注册后在网页端设置中启用。" - #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "例如:alice" @@ -1544,19 +1769,19 @@ msgstr "例如:艺术家、爱狗人士和狂热读者。" msgid "E.g. artistic nudes." msgstr "例如:艺术性的裸露。" -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "例如:优秀的发帖者" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "例如:垃圾内容制造者" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "例如:绝不容错过的发帖者。" -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "例如:散布广告内容的用户。" @@ -1564,58 +1789,78 @@ msgstr "例如:散布广告内容的用户。" msgid "Each code works once. You'll receive more invite codes periodically." msgstr "每个邀请码仅可使用一次。你将不定期获得新的邀请码。" +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "编辑" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "编辑" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "编辑头像" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "编辑资讯源" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "编辑图片" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "编辑列表详情" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" -msgstr "编辑限制列表" +msgstr "编辑内容审核列表" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" -msgstr "编辑自定义信息流" +msgstr "编辑自定义资讯源" #: src/view/com/modals/EditProfile.tsx:153 msgid "Edit my profile" msgstr "编辑个人资料" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "编辑用户" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" msgstr "编辑个人资料" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" msgstr "编辑个人资料" -#: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "编辑保存的信息流" +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "编辑入门包" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "编辑用户列表" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "编辑谁可以回复" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "编辑你的显示名称" @@ -1624,11 +1869,20 @@ msgstr "编辑你的显示名称" msgid "Edit your profile description" msgstr "编辑你的账户描述" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "编辑你的入门包" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "教育" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "选择 \"所有人\"或是\"没有人\"" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "电子邮箱" @@ -1654,7 +1908,7 @@ msgstr "电子邮箱已更新" msgid "Email verified" msgstr "电子邮箱已验证" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "电子邮箱:" @@ -1663,60 +1917,62 @@ msgid "Embed HTML code" msgstr "嵌入 HTML 代码" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" -msgstr "嵌入帖子" +msgstr "嵌入帖文" #: src/components/dialogs/Embed.tsx:101 msgid "Embed this post in your website. Simply copy the following snippet and paste it into the HTML code of your website." -msgstr "将此帖子嵌入到你的网站。只需复制以下代码片段,并将其粘贴到您网站的 HTML 代码中即可。" +msgstr "将这条帖文嵌入到你的网站。只需复制以下代码片段,并将其粘贴到你网站的 HTML 代码中即可。" #: src/components/dialogs/EmbedConsent.tsx:101 msgid "Enable {0} only" msgstr "仅启用 {0}" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "启用成人内容" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "启用成人内容" - -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "在你的信息流中启用成人内容" - #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 msgid "Enable external media" msgstr "启用外部媒体" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "启用媒体播放器" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." -msgstr "启用此设置以便仅查看你关注的用户的回复。" +msgstr "启用这个设置项将仅显示你已关注用户的回复。" #: src/components/dialogs/EmbedConsent.tsx:94 msgid "Enable this source only" -msgstr "仅启用此来源" +msgstr "仅启用这个来源" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "已启用" #: src/screens/Profile/Sections/Feed.tsx:104 msgid "End of feed" -msgstr "信息流的末尾" +msgstr "已到末尾" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "入门指南已结束,已没有进一步的选项。若仍需获取更多选项请返回上一步,或点按跳过。" + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" -msgstr "为此应用专用密码命名" +msgstr "为这个应用专用密码命名" #: src/screens/Login/SetNewPasswordForm.tsx:139 msgid "Enter a password" @@ -1731,7 +1987,7 @@ msgstr "输入一个词或标签" msgid "Enter Confirmation Code" msgstr "输入验证码" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "输入你收到的确认码以更改密码。" @@ -1748,7 +2004,7 @@ msgid "Enter your birth date" msgstr "输入你的出生日期" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "输入你的电子邮箱" @@ -1764,32 +2020,45 @@ msgstr "请在下方输入你新的电子邮箱。" msgid "Enter your username and password" msgstr "输入你的用户名和密码" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" -msgstr "" +msgstr "保存文件时发生错误" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "Captcha 响应错误。" -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "错误:" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "所有人" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "所有人都可以回复" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "所有人" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" -msgstr "过多的提及或回复" +msgstr "过于频繁的提及或回复" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" -msgstr "" +msgstr "过于频繁的骚扰信息" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "退出账户删除流程" @@ -1805,8 +2074,8 @@ msgstr "退出图片裁剪流程" msgid "Exits image view" msgstr "退出图片查看器" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "退出搜索查询输入" @@ -1814,10 +2083,18 @@ msgstr "退出搜索查询输入" msgid "Expand alt text" msgstr "展开替代文本" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "展开用户列表" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" -msgstr "展开或折叠你要回复的完整帖子" +msgstr "展开或折叠你要回复的完整帖文" + +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." @@ -1827,12 +2104,12 @@ msgstr "明确或潜在引起不适的媒体内容。" msgid "Explicit sexual images." msgstr "明确的性暗示图片。" -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "导出账户数据" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "导出账户数据" @@ -1842,141 +2119,188 @@ msgid "External Media" msgstr "外部媒体" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "外部媒体可能允许网站收集有关你和你设备的有关信息。在你按下\"查看\"按钮之前,将不会发送或请求任何外部信息。" -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "外部媒体首选项" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "外部媒体设置" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." msgstr "创建应用专用密码失败。" -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "无法创建入门包" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "无法创建列表。请检查你的互联网连接并重试。" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" -msgstr "" +msgstr "无法删除私信" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" -msgstr "无法删除帖子,请重试" +msgstr "无法删除帖文,请重试" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "无法删除入门包" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "无法加载资讯源首选项" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" msgstr "无法加载 GIF" -#: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." -msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" +msgstr "无法加载旧的私信" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:110 -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:143 -#~ msgid "Failed to load recommended feeds" -#~ msgstr "无法加载推荐信息流" +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "无法加载建议的资讯源" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "无法加载建议关注" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" -msgstr "无法保存此图片:{0}" +msgstr "无法保存这张图片:{0}" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "无法发送私信" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "无法提交申诉,请再试一次。" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "无法隐藏讨论串,请再试一次" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "无法更新资讯源" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "无法更新设置" + +#: src/Navigation.tsx:217 msgid "Feed" -msgstr "信息流" +msgstr "资讯源" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" -msgstr "由 {0} 创建的信息流" +msgstr "由 {0} 创建的资讯源" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "信息流已离线" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "切换资讯源" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "反馈" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" -msgstr "信息流" +msgstr "资讯源" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:58 -#~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." -#~ msgstr "信息流由用户创建并管理。选择一些你感兴趣的信息流。" - -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." -msgstr "创建信息流要求一些编程基础。查看 <0/> 以获取详情。" +msgstr "创建资讯源仅需你掌握一点编程基础。<0/>以获取详情。" -#: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" -msgstr "信息流也可以围绕某些话题!" +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" +msgstr "资讯源已更新!" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "文件内容" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" -msgstr "" +msgstr "文件保存成功!" #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" -msgstr "从信息流中过滤" +msgstr "从资讯源中过滤" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "最终确定" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "寻找一些账户关注" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "在探索页面中寻找更多资讯源与账户关注。" + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" -msgstr "在 Bluesky 寻找帖子和用户" +msgstr "在 Bluesky 寻找帖文和用户" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:155 -#~ msgid "Finding similar accounts..." -#~ msgstr "正在寻找类似的账户..." - -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." -msgstr "调整你在关注信息流上所看到的内容。" +msgstr "调整你在\"正在关注\"资讯源上所看到的内容。" -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "调整讨论主题。" -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "完成" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "完成入门指南并开始使用应用程序" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "健康" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "灵活" @@ -1989,112 +2313,152 @@ msgstr "水平翻转" msgid "Flip vertically" msgstr "垂直翻转" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "关注" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "关注" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "关注 {0}" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "关注 {name}" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "关注 7 个账户" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "关注账户" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" -msgstr "关注所有" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" +msgstr "关注所有人" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" msgstr "回关" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" -msgstr "关注选择的用户并继续下一步" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "关注更多账户以了解你的兴趣,并逐步建立你的社交网络。" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:65 -#~ msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." -#~ msgstr "关注一些用户以开始,我们可以根据你感兴趣的用户向你推荐更多类似用户。" +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" +msgstr "由 <0>{0} 所关注" -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" -msgstr "由 {0} 关注" +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "由 <0>{0} 以及 {1, plural, one {其他#人} other {其他#人}} 所关注" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "由 <0>{0} 以及 <1>{1} 所关注" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "由 <0>{0}、<1>{1} 以及 {2, plural, one {其他#人} other {其他#人}} 所关注" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" msgstr "已关注的用户" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "仅限已关注的用户" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "关注了你" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "回关" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "关注者" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "由你所认识的 @{0} 所关注" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "由你所认识的关注者" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "正在关注" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" -msgstr "正在关注 {0}" +msgstr "已关注 {0}" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "已关注 {name}" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" -msgstr "关注信息流首选项" +msgstr "\"正在关注\"资讯源首选项" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" -msgstr "关注信息流首选项" +msgstr "\"正在关注\"资讯源首选项" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "\"正在关注\"显示你已关注的账户所发布的最新帖文。" + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "关注了你" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "关注了你" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "食物" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "出于安全原因,我们需要向你的电子邮箱发送验证码。" -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "出于安全原因,你将无法再次查看此内容。如果你丢失了该密码,则需要生成一个新的密码。" @@ -2103,15 +2467,15 @@ msgstr "出于安全原因,你将无法再次查看此内容。如果你丢失 msgid "Forgot Password" msgstr "忘记密码" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "忘记密码?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" msgstr "忘记?" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "频繁发布不受欢迎的内容" @@ -2119,7 +2483,7 @@ msgstr "频繁发布不受欢迎的内容" msgid "From @{sanitizedAuthor}" msgstr "来自 @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "来自 <0/>" @@ -2128,48 +2492,73 @@ msgstr "来自 <0/>" msgid "Gallery" msgstr "相册" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "创建一个入门包" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "获取帮助" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "开始吧" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" -msgstr "开始" +msgstr "开始吧" -#: src/screens/Onboarding/StepProfile/index.tsx:228 +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" +msgstr "开始吧" + +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "GIF" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 msgid "Give your profile a face" -msgstr "" +msgstr "为你的个人资料添加头像" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "明显违反法律或服务条款" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "返回" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "返回" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "返回上一步" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "返回上一步" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "返回主页" @@ -2178,146 +2567,140 @@ msgstr "返回主页" msgid "Go Home" msgstr "返回主页" -#: src/view/screens/Search/Search.tsx:827 -#: src/view/shell/desktop/Search.tsx:263 -#~ msgid "Go to @{queryMaybeHandle}" -#~ msgstr "前往 @{queryMaybeHandle}" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "转到与 {0} 的对话" #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "前往下一步" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" -msgstr "" +msgstr "前往个人资料" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" +msgstr "前往入门指南的下一步" + +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" -msgstr "" +msgstr "前往用户个人资料" #: src/lib/moderation/useGlobalLabelStrings.ts:46 msgid "Graphic Media" msgstr "图形媒体" +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "已经完成一半了!" + #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "用户识别符" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" msgstr "触感" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "骚扰、恶作剧或其他无法容忍的行为" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "标签" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "标签:#{tag}" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "任何疑问?" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "帮助" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." -msgstr "" +msgstr "通过上传图片或创建头像来帮助人们了解你不是机器人。" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "这里有一些推荐关注的用户" - -#: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "这里有一些流行的信息流供你挑选。" - -#: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "这里有一些基于你兴趣所推荐的信息流供你挑选:{interestsText}。关注的信息流数量没有限制。" - -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "这里是你的应用专用密码。" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "隐藏" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "隐藏" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" -msgstr "隐藏帖子" +msgstr "隐藏帖文" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "隐藏内容" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" -msgstr "隐藏这条帖子?" +msgstr "隐藏这条帖文?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "隐藏用户列表" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." -msgstr "连接信息流服务器出现问题,请联系信息流的维护者反馈此问题。" +msgstr "连接资讯源服务器出现问题,请联系资讯源的维护者反馈这个问题。" -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." -msgstr "信息流服务器似乎配置错误,请联系信息流的维护者反馈此问题。" +msgstr "资讯源服务器似乎配置错误,请联系资讯源的维护者反馈这个问题。" -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." -msgstr "信息流服务器似乎已下线,请联系信息流的维护者反馈此问题。" +msgstr "资讯源服务器似乎已下线,请联系资讯源的维护者反馈这个问题。" -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." -msgstr "信息流服务器返回错误的响应,请联系信息流的维护者反馈此问题。" +msgstr "资讯源服务器返回错误的响应,请联系资讯源的维护者反馈这个问题。" -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." -msgstr "无法找到该信息流,似乎已被删除。" +msgstr "无法找到该资讯源,似乎已被删除。" -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." msgstr "看起来在加载数据时遇到了问题,请查看下方获取更多详情。如果问题仍然存在,请联系我们。" #: src/screens/Profile/ErrorState.tsx:31 msgid "Hmmmm, we couldn't load that moderation service." -msgstr "无法加载该限制提供服务。" +msgstr "无法加载此内容审核提供服务。" -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "主页" @@ -2326,15 +2709,15 @@ msgid "Host:" msgstr "主机:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "托管服务提供商" #: src/view/com/modals/InAppBrowserConsent.tsx:44 msgid "How should we open this link?" -msgstr "我们该如何打开此链接?" +msgstr "我们该如何打开这条链接?" #: src/view/com/modals/VerifyEmail.tsx:222 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 @@ -2350,9 +2733,10 @@ msgstr "我有验证码" msgid "I have my own domain" msgstr "我拥有自己的域名" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" -msgstr "" +msgstr "我了解" #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" @@ -2366,43 +2750,55 @@ msgstr "若不勾选,则默认为全年龄向。" msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "如果你根据你所在国家的法律定义还不是成年人,则你的父母或法定监护人必须代表你阅读这些条款。" -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "该列表删除后将无法恢复。" -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "该列表删除后将无法恢复。" -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "如果你想要更改密码,我们将向你发送一个验证码以验证这是你的账户。" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "如果你想更改你的用户识别符或电子邮件,请在停用之前进行更改。" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "违法" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "图片" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "图片替代文本" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "图片已保存到你的照片图库!" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "冒充或虚假身份及从属关系" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "不适当的消息或诱导性链接" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "输入发送到你电子邮箱的验证码以重置密码" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "输入删除用户的验证码" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "输入应用专用密码名称" @@ -2410,23 +2806,19 @@ msgstr "输入应用专用密码名称" msgid "Input new password" msgstr "输入新的密码" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "输入密码以删除账户" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "输入发送至你电子邮箱的验证码" #: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "输入与 {identifier} 关联的密码" - -#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "输入注册时使用的用户名或电子邮箱" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "输入你的密码" @@ -2434,20 +2826,24 @@ msgstr "输入你的密码" msgid "Input your preferred hosting provider" msgstr "输入你首选的托管服务提供商" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "输入你的用户识别符" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "介绍私信" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "无效的两步验证码。" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" -msgstr "帖子记录无效或不受支持" +msgstr "帖文记录无效或不受支持" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "用户名或密码无效" @@ -2455,11 +2851,11 @@ msgstr "用户名或密码无效" msgid "Invite a Friend" msgstr "邀请朋友" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "邀请码" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "邀请码无效,请检查你输入的邀请码并重试。" @@ -2471,69 +2867,85 @@ msgstr "邀请码:{0} 个可用" msgid "Invite codes: 1 available" msgstr "邀请码:1 个可用" -#: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." -msgstr "这将会显示你所关注的用户所发布的帖子。" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "邀请朋友使用此入门包!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "邀请你的朋友关注你喜欢的资讯源和用户" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "邀请,但保持私密" + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." +msgstr "现在就只有你了!通过上面的搜索将更多人添加到你的入门包中。" #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "工作" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "加入 Bluesky" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "加入对话" + +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "新闻学" -#: src/components/moderation/LabelsOnMe.tsx:59 -#~ msgid "label has been placed on this {labelTarget}" -#~ msgstr "标记已放置在 {labelTarget} 上" - -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "由 {0} 标记。" -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "由作者标记。" -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "标记" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "标记是对特定内容及用户的提示。可以针对特定内容默认隐藏内容、显示警告或直接显示。" -#: src/components/moderation/LabelsOnMe.tsx:61 -#~ msgid "labels have been placed on this {labelTarget}" -#~ msgstr "标记已放置在 {labelTarget} 上" - -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "你账户上的标记" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "你内容上的标记" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "选择语言" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "语言设置" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "语言设置" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "语言" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "最新" @@ -2541,75 +2953,92 @@ msgstr "最新" msgid "Learn More" msgstr "了解详情" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." -msgstr "了解有关应用于此内容的限制的更多详情。" +msgstr "了解更多有关审核应用于此内容的详细信息。" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "了解有关这个警告的更多详情" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "了解有关 Bluesky 公开内容的更多详情。" -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "了解详情。" -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" -msgstr "" +msgstr "离开" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "离开对话" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" -msgstr "" +msgstr "离开对话" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." -msgstr "全部留空以查看所有语言的帖子。" +msgstr "全部留空以查看所有语言的帖文。" #: src/view/com/modals/LinkWarning.tsx:65 msgid "Leaving Bluesky" msgstr "离开 Bluesky" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." -msgstr "尚未完成。" +msgstr "个人排在你前面。" -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "旧存储数据已清除,你需要立即重新启动应用。" +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "自定义" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "让我们来重置你的密码!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "让我们开始!" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "亮色" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:197 -#~ msgid "Like" -#~ msgstr "喜欢" +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "喜欢 10 条帖文" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "喜欢 10 条帖文,以训练 \"Discover\" 算法推送" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" -msgstr "喜欢这个信息流" +msgstr "喜欢这个资讯源" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" msgstr "喜欢" @@ -2619,108 +3048,116 @@ msgstr "喜欢" msgid "Liked By" msgstr "喜欢" -#: src/view/com/feeds/FeedSourceCard.tsx:268 -#~ msgid "Liked by {0} {1}" -#~ msgstr "{0} 个 {1} 喜欢" - -#: src/components/LabelingServiceCard/index.tsx:72 -#~ msgid "Liked by {count} {0}" -#~ msgstr "被 {count} {0} 喜欢" - -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:287 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:301 -#: src/view/screens/ProfileFeed.tsx:600 -#~ msgid "Liked by {likeCount} {0}" -#~ msgstr "{likeCount} 个 {0} 喜欢" - -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" -msgstr "赞了你的自定义信息流" +msgstr "喜欢了你的自定义资讯源" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" -msgstr "赞了你的帖子" +msgstr "喜欢了你的帖文" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "喜欢" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" -msgstr "这条帖子的喜欢数" +msgstr "这条帖文的喜欢数" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "列表" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "列表头像" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "列表已屏蔽" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "列表由 {0} 创建" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "列表已删除" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "列表已隐藏" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "列表名称" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "解除对列表的屏蔽" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "解除对列表的隐藏" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "列表" -#: src/view/screens/Notifications.tsx:159 +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "屏蔽该用户的列表:" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "加载更多" + +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "加载更多建议的资讯源" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "加载更多建议关注" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "加载新的通知" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" -msgstr "加载新的帖子" +msgstr "加载新的帖文" #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:99 msgid "Loading..." msgstr "加载中..." -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "日志" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "登录或注册" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "登出" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "未登录用户可见性" @@ -2728,7 +3165,7 @@ msgstr "未登录用户可见性" msgid "Login to account that is not listed" msgstr "登录未列出的账户" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" msgstr "长按来打开 #{tag} 标签菜单" @@ -2738,15 +3175,19 @@ msgstr "看起来像是 XXXXX-XXXXX" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." -msgstr "" +msgstr "看起来你似乎未保存任何资讯源!来看看我们提供的建议,或浏览下方的更多内容。" -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" -msgstr "" +msgstr "看起来你已取消固定所有资讯源。不过别担心,你仍然可以在下面添加一些😄" -#: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." -msgstr "" +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "看起来你似乎缺少\"正在关注\"资讯源。<0>点击这里来重新添加它。" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" +msgstr "帮我选择" #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" @@ -2756,144 +3197,150 @@ msgstr "请确认目标页面地址是否正确!" msgid "Manage your muted words and tags" msgstr "管理你的隐藏词和标签" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" -msgstr "" +msgstr "标记为已读" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "媒体" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "提到的用户" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "提到的用户" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "菜单" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "私信 {0}" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" -msgstr "" +msgstr "私信已删除" #: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "来自服务器的信息:{0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" -msgstr "" +msgstr "私信输入栏" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" -msgstr "" +msgstr "私信过长" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" -msgstr "" +msgstr "私信设置" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" -msgstr "" +msgstr "私信" -#: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "" - -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" msgstr "误导性账户" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" -msgstr "限制" +msgstr "内容审核" #: src/components/moderation/ModerationDetailsDialog.tsx:112 msgid "Moderation details" -msgstr "限制详情" +msgstr "内容审核详情" + +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 +msgid "Moderation list by {0}" +msgstr "由 {0} 创建的内容审核列表" + +#: src/view/screens/ProfileList.tsx:843 +msgid "Moderation list by <0/>" +msgstr "由 创建的内容审核列表" #: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 -msgid "Moderation list by {0}" -msgstr "由 {0} 创建的限制列表" - -#: src/view/screens/ProfileList.tsx:838 -msgid "Moderation list by <0/>" -msgstr "由 创建的限制列表" - -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" -msgstr "你创建的限制列表" - -#: src/view/com/modals/CreateOrEditList.tsx:199 -msgid "Moderation list created" -msgstr "限制列表已创建" +msgstr "你创建的内容审核列表" #: src/view/com/modals/CreateOrEditList.tsx:185 +msgid "Moderation list created" +msgstr "内容审核列表已创建" + +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" -msgstr "限制列表已更新" +msgstr "内容审核列表已更新" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" -msgstr "限制列表" +msgstr "内容审核列表" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" -msgstr "限制列表" +msgstr "内容审核列表" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" -msgstr "限制设置" +msgstr "内容审核设置" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" -msgstr "限制状态" +msgstr "内容审核状态" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" -msgstr "限制工具" +msgstr "内容审核工具" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." -msgstr "由限制者对内容设置的一般警告。" +msgstr "由内容审核服务提供方对这段内容设置的一般警告。" -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "更多" #: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" -msgstr "更多信息流" +msgstr "更多资讯源" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "更多选项" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "优先显示最多喜欢" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "电影" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "音乐" + #: src/components/TagMenu/index.tsx:249 msgid "Mute" msgstr "隐藏" @@ -2902,18 +3349,23 @@ msgstr "隐藏" msgid "Mute {truncatedTag}" msgstr "隐藏 {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "隐藏账户" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "隐藏账户" #: src/components/TagMenu/index.tsx:209 msgid "Mute all {displayTag} posts" -msgstr "隐藏所有 {displayTag} 的帖子" +msgstr "隐藏所有 {displayTag} 的帖文" + +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "静音对话" #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" @@ -2923,46 +3375,41 @@ msgstr "仅隐藏标签" msgid "Mute in text & tags" msgstr "隐藏词汇和标签" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "隐藏列表" -#: src/components/dms/ConvoMenu.tsx:136 -#: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "" - -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "隐藏这些账户?" #: src/components/dialogs/MutedWords.tsx:126 msgid "Mute this word in post text and tags" -msgstr "在帖子文本和标签中隐藏该词" +msgstr "在帖文文本和标签中隐藏该词" #: src/components/dialogs/MutedWords.tsx:141 msgid "Mute this word in tags only" msgstr "仅在标签中隐藏该词" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" msgstr "隐藏讨论串" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "隐藏词和标签" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "已隐藏" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "已隐藏账户" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "已隐藏账户" @@ -2971,15 +3418,15 @@ msgstr "已隐藏账户" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "已隐藏的账户将不会在你的通知或时间线中显示,被隐藏账户将不会收到通知。" -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "被 \"{0}\" 隐藏" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "隐藏词汇和标签" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "被隐藏的账户将不会得知你已将他隐藏,已隐藏的账户将不会在你的通知或时间线中显示。" @@ -2988,61 +3435,66 @@ msgstr "被隐藏的账户将不会得知你已将他隐藏,已隐藏的账户 msgid "My Birthday" msgstr "我的生日" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" -msgstr "自定义信息流" +msgstr "自定义资讯源" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" msgstr "我的个人资料" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" -msgstr "我保存的信息流" +msgstr "我保存的资讯源" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" -msgstr "我保存的信息流" +msgstr "我保存的资讯源" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "名称" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "名称是必填项" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "名称或描述违反了社群准则" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "自然" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "转到 {0}" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "转到入门包" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "转到下一页" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "转到个人资料" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "需要举报侵犯版权行为吗?" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:74 -#~ msgid "Never lose access to your followers and data." -#~ msgstr "永远不会失去对你的关注者和数据的访问。" - -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "永远不会失去对你的关注者或数据的访问。" @@ -3050,7 +3502,7 @@ msgstr "永远不会失去对你的关注者或数据的访问。" msgid "Nevermind, create a handle for me" msgstr "没关系,为我创建一个用户识别符" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "新建" @@ -3059,88 +3511,97 @@ msgstr "新建" msgid "New" msgstr "新建" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" -msgstr "" +msgstr "新私信" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "新私信" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" -msgstr "新的限制列表" +msgstr "新的内容审核列表" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "新密码" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "新密码" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" -msgstr "新帖子" +msgstr "新帖文" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" -msgstr "新帖子" +msgstr "新帖文" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" -msgstr "新帖子" +msgstr "新帖文" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "新的用户信息对话框" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "新的用户列表" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "优先显示最新回复" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "新闻" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "下一步" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:103 -#~ msgctxt "action" -#~ msgid "Next" -#~ msgstr "下一步" - #: src/view/com/lightbox/Lightbox.web.tsx:169 msgid "Next image" msgstr "下一张图片" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "停用" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "没有描述" @@ -3148,78 +3609,104 @@ msgstr "没有描述" msgid "No DNS Panel" msgstr "没有 DNS 面板" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "未找到精选 GIF,Tensor 可能存在问题。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "未找到资讯源,尝试搜索点别的。" + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "不再关注 {0}" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" msgstr "不超过 253 个字符" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" -msgstr "" +msgstr "目前还没有任何私信" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "没有更多对话可显示" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "还没有通知!" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "没有人" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "目前还没有任何帖文。" + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "没有结果" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "没有结果" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "未找到结果" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" msgstr "未找到\"{query}\"的结果" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" msgstr "未找到 {query} 的结果" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." msgstr "未找到 \"{search}\" 的搜索结果。" -#: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "" - #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "不,谢谢" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "没有人" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "没有人可以回复" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" msgstr "目前还没有人喜欢,也许你应该成为第一个!" +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "未找到用户,尝试搜索点别的。" + #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" msgstr "非性暗示裸露" -#: src/view/com/modals/SelfLabel.tsx:135 -#~ msgid "Not Applicable." -#~ msgstr "不适用。" - -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "未找到" @@ -3228,57 +3715,83 @@ msgstr "未找到" msgid "Not right now" msgstr "暂时不需要" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "分享注意事项" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." -msgstr "注意:Bluesky 是一个开放的公共网络。此设置项仅限制你的内容在 Bluesky 应用和网站上的可见性,其他应用可能不尊从此设置项,仍可能会向未登录的用户显示你的动态。" +msgstr "注意:Bluesky 是一个开放的公共网络。这个设置项仅限制你发布的内容在 Bluesky 应用和网站上的可见性,其他应用可能不遵从这个设置项,仍可能会向未登录的用户显示你的动态。" -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "这里什么也没有" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "通知提示音" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "通知提示音" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "通知" -#: src/components/dms/MessageItem.tsx:145 +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" +msgstr "现在" + +#: src/components/dms/MessageItem.tsx:169 msgid "Now" -msgstr "" +msgstr "现在" #: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "裸露" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "未标记的裸露或成人内容" -#: src/screens/Signup/index.tsx:145 -#~ msgid "of" -#~ msgstr "of" - #: src/lib/moderation/useLabelBehaviorDescription.ts:11 msgid "Off" msgstr "显示" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "糟糕!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "糟糕!发生了一些错误。" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "好的" @@ -3286,107 +3799,143 @@ msgstr "好的" msgid "Okay" msgstr "好的" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "优先显示最旧的回复" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "于" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "于 {str}" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "重新开始引导流程" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "入门指南步骤:{0}/{1}" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." -msgstr "至少有一张图片缺失了替代文字。" +msgstr "至少有一张图片缺失了替代文本。" -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" -msgstr "" +msgstr "目前只支持上传 .jpg 或 .png 格式的图片文件" -#: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." -msgstr "只有 {0} 可以回复。" +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" +msgstr "只有 {0} 可以回复" -#: src/screens/Signup/StepHandle.tsx:98 +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "仅限字母、数字和连字符" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "糟糕,发生了一些错误!" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "Oops!" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" msgstr "开启" -#: src/screens/Onboarding/StepProfile/index.tsx:280 -msgid "Open avatar creator" -msgstr "" +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "开启 {name} 个人资料快捷菜单" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Onboarding/StepProfile/index.tsx:277 +msgid "Open avatar creator" +msgstr "开启头像创建工具" + +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "开启对话选项" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "开启表情符号选择器" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" -msgstr "开启信息流选项菜单" +msgstr "开启资讯源选项菜单" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "在内置浏览器中打开链接" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "开启私信选项" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "开启隐藏词汇和标签设置" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "打开导航" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" -msgstr "开启帖子选项菜单" +msgstr "开启帖文选项菜单" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "开启入门包菜单" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "开启 Storybook 界面" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "开启系统日志" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "开启 {numItems} 个选项" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "打开对话框以选择谁可以回复此讨论串" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "开启无障碍设置" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "开启调试记录的额外详细信息" -#: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "展开此通知中的扩展用户列表" - #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "开启设备相机" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "开启私信设置" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "开启编辑器" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "开启可配置的语言设置" @@ -3394,7 +3943,7 @@ msgstr "开启可配置的语言设置" msgid "Opens device photo gallery" msgstr "开启设备相册" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "开启外部嵌入设置" @@ -3408,7 +3957,7 @@ msgstr "开启流程以创建一个新的 Bluesky 账户" msgid "Opens flow to sign into your existing Bluesky account" msgstr "开启流程以登录到你现有的 Bluesky 账户" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" msgstr "开启 GIF 选择对话框" @@ -3416,23 +3965,27 @@ msgstr "开启 GIF 选择对话框" msgid "Opens list of invite codes" msgstr "开启邀请码列表" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "开启账户停用确认界面" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "需要邮件验证以继续进行账户删除操作" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "开启密码修改界面" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" msgstr "开启创建新的用户识别符界面" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "开启你的 Bluesky 用户资料(存储库)下载页面" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "开启电子邮箱确认界面" @@ -3440,66 +3993,74 @@ msgstr "开启电子邮箱确认界面" msgid "Opens modal for using custom domain" msgstr "开启使用自定义域名的模式" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" -msgstr "开启限制设置" +msgstr "开启内容审核设置" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "开启密码重置申请" -#: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "开启用于编辑已保存信息流的界面" - -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" -msgstr "开启包含所有已保存信息流的界面" +msgstr "开启包含所有已保存资讯源的界面" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "开启应用专用密码设置界面" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" -msgstr "开启关注信息流首选项" +msgstr "开启\"正在关注\"资讯源首选项" #: src/view/com/modals/LinkWarning.tsx:93 msgid "Opens the linked website" msgstr "开启链接的网页" -#: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "" - -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "开启 Storybook 界面" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "开启系统日志界面" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" msgstr "开启讨论串首选项" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "开启此个人资料" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "开启视频选择器" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "第 {0} 个选项,共 {numItems} 个" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "可选在下方提供额外信息:" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "或者选择组合这些选项:" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "或者以其他账户继续。" + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "或者使用你的其他账户登录。" + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "其他" @@ -3507,27 +4068,31 @@ msgstr "其他" msgid "Other account" msgstr "其他账户" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "其他..." -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "内容审核服务提供方已收到举报,并决定停用你的 Bluesky 私信功能。" + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" -msgstr "无法找到此页面" +msgstr "无法找到这个页面" #: src/view/screens/NotFound.tsx:42 msgid "Page Not Found" -msgstr "无法找到此页面" +msgstr "无法找到这个页面" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "密码" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "密码已修改" @@ -3539,52 +4104,66 @@ msgstr "密码已更新" msgid "Password updated!" msgstr "密码已更新!" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "暂停" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" msgstr "用户" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "@{0} 关注的用户" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "关注 @{0} 的用户" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." -msgstr "需要相机的访问权限。" +msgstr "需要照片图库的访问权限。" -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." -msgstr "相机的访问权限已被拒绝,请在系统设置中启用。" +msgstr "照片图库的访问权限已被拒绝,请在系统设置中启用。" -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "切换用户" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "宠物" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "摄影" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "适合成年人的图像。" -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "固定到主页" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "固定到主页" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" -msgstr "固定信息流列表" +msgstr "固定资讯源列表" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "固定到你的资讯源" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" msgstr "播放" @@ -3592,7 +4171,7 @@ msgstr "播放" msgid "Play {0}" msgstr "播放 {0}" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" msgstr "播放或暂停 GIF" @@ -3605,59 +4184,71 @@ msgstr "播放视频" msgid "Plays the GIF" msgstr "播放 GIF" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "请设置你的用户识别符。" -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "请设置你的密码。" -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "请完成 Captcha 验证。" #: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." -msgstr "更改前请先确认你的电子邮箱。这是新增电子邮箱更新工具的临时要求,此限制将很快被移除。" +msgstr "更改前请先确认你的电子邮箱。这是新增电子邮箱更新工具的临时要求,这个限制将很快被移除。" -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "请输入应用专用密码的名称,不允许使用空格。" -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." -msgstr "请输入此应用专用密码的唯一名称,或使用我们提供的随机生成名称。" +msgstr "请输入这个应用专用密码的唯一名称,或使用我们提供的随机生成名称。" #: src/components/dialogs/MutedWords.tsx:67 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "请输入一个有效的词、标签或短语" -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "请输入你的电子邮箱。" -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "请输入你的邀请码。" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "请输入你的密码:" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" -msgstr "请解释为什么你认为此标记是由 {0} 错误应用的" +msgstr "请解释为什么你认为这个标记是由 {0} 错误应用的" + +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "请解释为什么你认为你的私信被错误禁用" #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" -msgstr "" +msgstr "请以 @{0} 身份登录" #: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "请验证你的电子邮箱" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "请等待你的链接卡片加载完毕" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "政治" @@ -3665,133 +4256,149 @@ msgstr "政治" msgid "Porn" msgstr "色情内容" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "发布" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" -msgstr "发布" +msgstr "帖文" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" -msgstr "{0} 的帖子" +msgstr "{0} 的帖文" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" -msgstr "@{0} 的帖子" +msgstr "@{0} 的帖文" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" -msgstr "已删除帖子" +msgstr "已删除帖文" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" -msgstr "已隐藏帖子" +msgstr "已隐藏帖文" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" -msgstr "帖子被隐藏词汇所隐藏" +msgstr "帖文已被隐藏词汇所隐藏" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" -msgstr "帖子由你隐藏" +msgstr "帖文已由你隐藏" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" -msgstr "帖子语言" +msgstr "帖文语言" #: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:75 msgid "Post Languages" -msgstr "帖子语言" +msgstr "帖文语言" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" -msgstr "无法找到帖子" +msgstr "无法找到帖文" #: src/components/TagMenu/index.tsx:253 msgid "posts" -msgstr "帖子" +msgstr "帖文" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" -msgstr "帖子" +msgstr "帖文" #: src/components/dialogs/MutedWords.tsx:89 msgid "Posts can be muted based on their text, their tags, or both." -msgstr "帖子可以根据其文本、标签或两者来隐藏。" +msgstr "帖文可以根据其文本、标签或两者来隐藏。" -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" -msgstr "帖子已隐藏" +msgstr "帖文已隐藏" #: src/view/com/modals/LinkWarning.tsx:60 msgid "Potentially Misleading Link" msgstr "潜在误导性链接" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "点击以重试连接" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "点击以变更托管提供商" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "点按重试" -#: src/screens/Messages/Conversation/MessagesList.tsx:47 -#: src/screens/Messages/Conversation/MessagesList.tsx:53 -#~ msgid "Press to Retry" -#~ msgstr "" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "点按以查看同样关注此账号的共同关注者" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "上一张图片" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "首选语言" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "优先显示关注者" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "隐私" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "隐私政策" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "与其他用户开始私信。" + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "处理中..." -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "个人资料" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "个人资料" @@ -3799,11 +4406,11 @@ msgstr "个人资料" msgid "Profile updated" msgstr "个人资料已更新" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "通过验证电子邮箱来保护你的账户。" -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" msgstr "公开内容" @@ -3811,33 +4418,42 @@ msgstr "公开内容" msgid "Public, shareable lists of users to mute or block in bulk." msgstr "公开且可共享的批量隐藏或屏蔽列表。" -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." -msgstr "公开且可共享的列表,可作为信息流使用。" +msgstr "公开且可共享的列表,可作为资讯源使用。" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" -msgstr "发布帖子" +msgstr "发布帖文" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "发布回复" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "二维码已复制到你的剪切板!" + +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "二维码已下载!" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "二维码已保存至你的照片图库!" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "小建议" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" -msgstr "引用帖子" +msgstr "引用帖文" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 -msgid "Quote post" -msgstr "引用帖子" - -#: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "引用帖子" - -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "随机显示 (手气不错)" @@ -3845,36 +4461,51 @@ msgstr "随机显示 (手气不错)" msgid "Ratios" msgstr "比率" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" -msgstr "" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" +msgstr "重新启用你的账户" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "结果:" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "最近的搜索" -#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:117 -#~ msgid "Recommended Feeds" -#~ msgstr "推荐信息流" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "重新连接" -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:181 -#~ msgid "Recommended Users" -#~ msgstr "推荐的用户" +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "重新加载对话" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "移除" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "从你的入门包中删除 {displayName}" + #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "删除账户" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "删除头像" @@ -3882,33 +4513,38 @@ msgstr "删除头像" msgid "Remove Banner" msgstr "删除横幅图片" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "删除嵌入" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" -msgstr "删除信息流" +msgstr "删除资讯源" #: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" -msgstr "删除信息流?" +msgstr "删除资讯源?" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" -msgstr "从自定义信息流中删除" +msgstr "从自定义资讯源中删除" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" -msgstr "从自定义信息流中删除?" +msgstr "从自定义资讯源中删除?" #: src/view/com/composer/photos/Gallery.tsx:174 msgid "Remove image" msgstr "删除图片" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "删除图片预览" @@ -3916,185 +4552,222 @@ msgstr "删除图片预览" msgid "Remove mute word from your list" msgstr "从你的隐藏词汇列表中删除" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 -msgid "Remove quote" -msgstr "" +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "删除个人资料" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "从搜索历史中删除个人资料" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 +msgid "Remove quote" +msgstr "删除引用" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "删除转发" #: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" -msgstr "从保存的信息流列表中删除这个信息流" +msgstr "从保存的资讯源列表中删除这个资讯源" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "从列表中删除" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" -msgstr "从自定义信息流中删除" +msgstr "已从自定义资讯源中删除" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" -msgstr "从你的自定义信息流中删除" +msgstr "从你的自定义资讯源中删除" -#: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "从 {0} 中删除默认缩略图" - -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" -msgstr "" +msgstr "删除引用的帖文" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" +msgstr "删除图片预览" + +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 msgid "Replace with Discover" -msgstr "" +msgstr "替换为 \"Discover\"" -#: src/view/screens/Profile.tsx:194 +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "回复" -#: src/view/com/threadgate/WhoCanReply.tsx:98 -msgid "Replies to this thread are disabled" -msgstr "对此讨论串的回复已被禁用" +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "回复已被禁用" -#: src/view/com/composer/Composer.tsx:435 +#: src/components/WhoCanReply.tsx:243 +msgid "Replies to this thread are disabled" +msgstr "该讨论串的回复已被禁用" + +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "回复" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "回复过滤器" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "回复 <0><1/>" -#: src/components/dms/MessageMenu.tsx:109 +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" +msgstr "回复被屏蔽的帖文" + +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "对你回复" + +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 msgid "Report" -msgstr "" +msgstr "举报" -#: src/components/dms/ConvoMenu.tsx:146 -#: src/components/dms/ConvoMenu.tsx:150 -#~ msgid "Report account" -#~ msgstr "" - -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "举报账户" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" -msgstr "" +msgstr "举报对话" #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "举报页面" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" -msgstr "举报信息流" +msgstr "举报资讯源" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "举报列表" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" -msgstr "" +msgstr "举报私信" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" -msgstr "举报帖子" +msgstr "举报帖文" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "举报入门包" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "举报此内容" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" -msgstr "举报此信息流" +msgstr "举报这个资讯源" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" -msgstr "举报此列表" +msgstr "举报这个列表" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" -msgstr "" +msgstr "举报这条私信" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" -msgstr "举报此帖子" +msgstr "举报这条帖文" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "举报此入门包" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" -msgstr "举报此用户" +msgstr "举报这个用户" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "转发" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "转发" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" -msgstr "转发或引用帖子" +msgstr "转发或引用帖文" #: src/view/screens/PostRepostedBy.tsx:27 msgid "Reposted By" msgstr "转发" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "由 {0} 转发" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "由 <0><1/> 转发" -#: src/view/com/notifications/FeedItem.tsx:160 -msgid "reposted your post" -msgstr "转发你的帖子" +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "由你转发" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/notifications/FeedItem.tsx:188 +msgid "reposted your post" +msgstr "转发你的帖文" + +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" -msgstr "转发这条帖子" +msgstr "转发这条帖文" #: src/view/com/modals/ChangeEmail.tsx:176 #: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "请求变更" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "确认码" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "发布时检查媒体是否存在替代文本" @@ -4102,7 +4775,7 @@ msgstr "发布时检查媒体是否存在替代文本" msgid "Require email code to log into your account" msgstr "需要电子邮件验证码才能登录到你的账户" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "服务提供者要求" @@ -4111,16 +4784,16 @@ msgstr "服务提供者要求" msgid "Resend email" msgstr "重新发送电子邮件" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "确认码" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "确认码" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "重置引导流程状态" @@ -4128,20 +4801,20 @@ msgstr "重置引导流程状态" msgid "Reset password" msgstr "重置密码" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "重置首选项状态" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "重置引导流程状态" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "重置首选项状态" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "重试登录" @@ -4150,26 +4823,24 @@ msgstr "重试登录" msgid "Retries the last action, which errored out" msgstr "重试上次出错的操作" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" msgstr "重试" -#: src/screens/Messages/Conversation/MessageListError.tsx:54 -#~ msgid "Retry." -#~ msgstr "" - #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "回到上一页" @@ -4178,28 +4849,30 @@ msgid "Returns to home page" msgstr "回到主页" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "回到上一页" #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "保存" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "保存" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" -msgstr "保存替代文字" +msgstr "保存替代文本" #: src/components/dialogs/BirthDateSettings.tsx:119 msgid "Save birthday" @@ -4213,31 +4886,36 @@ msgstr "保存更改" msgid "Save handle change" msgstr "保存用户识别符更改" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "保存图片" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "保存图片裁切" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "保存二维码" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" -msgstr "保存到自定义信息流" +msgstr "保存到自定义资讯源" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" -msgstr "已保存信息流" +msgstr "已保存资讯源" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" -msgstr "" +msgstr "保存到你的照片图库" -#: src/view/com/lightbox/Lightbox.tsx:81 -#~ msgid "Saved to your camera roll." -#~ msgstr "已保存到相机胶卷。" - -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" -msgstr "已保存到你的自定义信息流" +msgstr "已保存到你的自定义资讯源" #: src/view/com/modals/EditProfile.tsx:226 msgid "Saves any changes to your profile" @@ -4251,67 +4929,78 @@ msgstr "保存用户识别符更改至 {handle}" msgid "Saves image crop settings" msgstr "保存图片裁剪设置" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "说嗨!" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "科学" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "滚动到顶部" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "搜索" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "搜索 \"{query}\"" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" -msgstr "" +msgstr "搜索 \"{searchText}\"" #: src/components/TagMenu/index.tsx:145 msgid "Search for all posts by @{authorHandle} with tag {displayTag}" -msgstr "搜索 @{authorHandle} 带有 {displayTag} 的所有帖子" +msgstr "搜索 @{authorHandle} 带有 {displayTag} 的所有帖文" #: src/components/TagMenu/index.tsx:94 msgid "Search for all posts with tag {displayTag}" -msgstr "搜索所有带有 {displayTag} 的帖子" +msgstr "搜索所有带有 {displayTag} 的帖文" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." -msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." +msgstr "搜索来添加你想推荐给别人的资讯源。" -#: src/view/com/auth/LoggedOut.tsx:105 #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "搜索用户" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "搜索 GIF" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" -msgstr "" +msgstr "搜索个人资料" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "搜索 Tenor" @@ -4321,26 +5010,21 @@ msgstr "所需的安全步骤" #: src/components/TagMenu/index.web.tsx:66 msgid "See {truncatedTag} posts" -msgstr "查看 {truncatedTag} 的帖子" +msgstr "查看 {truncatedTag} 的帖文" #: src/components/TagMenu/index.web.tsx:83 msgid "See {truncatedTag} posts by user" -msgstr "按用户查看 {truncatedTag} 的帖子" +msgstr "按用户查看 {truncatedTag} 的帖文" #: src/components/TagMenu/index.tsx:128 msgid "See <0>{displayTag} posts" -msgstr "查看 <0>{displayTag} 的帖子" +msgstr "查看 <0>{displayTag} 的帖文" #: src/components/TagMenu/index.tsx:187 msgid "See <0>{displayTag} posts by this user" -msgstr "查看该用户 <0>{displayTag} 的帖子" +msgstr "查看该用户 <0>{displayTag} 的帖文" -#: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "查看个人资料" - -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "查看指南" @@ -4350,7 +5034,7 @@ msgstr "选择 {item}" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 msgid "Select a color" -msgstr "" +msgstr "选择一个颜色" #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" @@ -4358,116 +5042,107 @@ msgstr "选择账户" #: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 msgid "Select an avatar" -msgstr "" +msgstr "选择一个头像" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 msgid "Select an emoji" -msgstr "" +msgstr "选择一个表情符号" #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "从现有账户中选择" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" msgstr "选择 GIF" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" msgstr "选择 GIF \"{0}\"" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "选择语言" #: src/components/ReportDialog/SelectLabelerView.tsx:30 msgid "Select moderator" -msgstr "选择限制者" +msgstr "选择内容审核服务提供方" #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "选择 {numItems} 项中的第 {i} 项" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "选择以下一些账户进行关注" - #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" -msgstr "" +msgstr "选择 {emojiName} 表情符号作为你的头像" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" -msgstr "请选择你要向哪位限制服务提供者提交举报" +msgstr "请选择你要向哪个内容审核服务提供方提交举报" #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "选择托管你数据的服务器。" -#: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" -msgstr "从下面的列表中选择要关注的专题信息流" +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" +msgstr "选择视频" -#: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "选择你想看到(或不想看到)的内容,剩下的由我们来处理。" - -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." -msgstr "选择你希望订阅信息流中所包含的语言。如果未选择任何语言,将默认显示所有语言。" +msgstr "选择你希望订阅资讯源中所包含的语言。如果未选择任何语言,将默认显示所有语言。" -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "选择你的应用语言,以显示应用中的默认文本。" -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "输入你的出生日期" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "下面选择你感兴趣的选项" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." -msgstr "选择你在订阅信息流中希望进行翻译的目标首选语言。" +msgstr "选择你在订阅资讯源中希望进行翻译的目标首选语言。" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "选择你的信息流主要算法" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" -msgstr "选择你的信息流次要算法" +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" +msgstr "发送一个你认为很有趣的网站!" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "发送确认电子邮件" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "发送电子邮件" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "发送电子邮件" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "提交反馈" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" -msgstr "" +msgstr "发送私信" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." +msgstr "发送私信给..." + +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "提交举报" @@ -4480,7 +5155,12 @@ msgstr "给 {0} 提交举报" msgid "Send verification email" msgstr "发送验证电子邮件" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "通过私信发送" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "发送包含账户删除验证码的电子邮件" @@ -4488,7 +5168,7 @@ msgstr "发送包含账户删除验证码的电子邮件" msgid "Server address" msgstr "服务器地址" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "设置生日" @@ -4496,25 +5176,25 @@ msgstr "设置生日" msgid "Set new password" msgstr "设置新密码" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." -msgstr "停用此设置项以隐藏来自订阅信息流的所有引用帖子,转发仍将可见。" +msgstr "停用这个设置项将从资讯源中隐藏所有引用帖文,但转发仍将可见。" -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." -msgstr "停用此设置项以隐藏来自订阅信息流的所有回复。" +msgstr "停用这个设置项将从资讯源中隐藏所有回复。" -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." -msgstr "停用此设置项以隐藏来自订阅信息流的所有转发。" +msgstr "停用这个设置项将从资讯源中隐藏所有转发。" -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." -msgstr "启用此设置项以在分层视图中显示回复。这是一个实验性功能。" +msgstr "启用这个设置项将在分层视图中显示回复。这是一个实验性功能。" -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." -msgstr "启用此设置项以在关注信息流中显示已保存信息流的样例。这是一个实验性功能。" +msgstr "启用这个设置项将在\"正在关注\"资讯源中显示已保存资讯源的样例。这是一个实验性功能。" #: src/screens/Onboarding/Layout.tsx:48 msgid "Set up your account" @@ -4524,23 +5204,23 @@ msgstr "设置你的账户" msgid "Sets Bluesky username" msgstr "设置 Bluesky 用户名" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "设置主题为深色模式" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "设置主题为亮色模式" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "设置主题跟随系统设置" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "设置深色模式至深黑" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "设置深色模式至暗淡" @@ -4560,12 +5240,11 @@ msgstr "将图片纵横比设置为高" msgid "Sets image aspect ratio to wide" msgstr "将图片纵横比设置为宽" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "设置" @@ -4577,55 +5256,92 @@ msgstr "性行为或性暗示裸露。" msgid "Sexually Suggestive" msgstr "性暗示" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "分享" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "分享" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "分享" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "分享一个很酷的事!" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "分享一个有趣的事实!" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "仍然分享" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" -msgstr "分享信息流" +msgstr "分享资讯源" + +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "分享链接" #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "分享链接" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "分享链接对话框" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "分享二维码" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "分享这个入门包" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "分享这个入门包以帮助其他人加入你在 Bluesky 上的社交网络。" + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "分享你最喜欢的资讯源!" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "共享首选项测试器" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "分享链接的网站" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "显示" -#: src/view/screens/PreferencesFollowingFeed.tsx:68 -#~ msgid "Show all replies" -#~ msgstr "显示所有回复" - -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" -msgstr "" +msgstr "显示替代文本" #: src/components/moderation/ScreenHider.tsx:169 #: src/components/moderation/ScreenHider.tsx:172 @@ -4639,112 +5355,88 @@ msgstr "显示徽章" #: src/lib/moderation/useLabelBehaviorDescription.ts:61 msgid "Show badge and filter from feeds" -msgstr "显示徽章并从信息流中过滤" +msgstr "显示徽章并从资讯源中过滤" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "显示类似于 {0} 的关注者" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 -msgid "Show less like this" -msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "显示已隐藏的回复" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 +msgid "Show less like this" +msgstr "更少显示类似这样的" + +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "显示更多" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" -msgstr "" +msgstr "更多显示类似这样的" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "显示已隐藏的回复" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" -msgstr "在自定义信息流中显示帖子" +msgstr "显示来自已储存资讯源的帖文" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" -msgstr "显示引用帖子" +msgstr "显示引用帖文" -#: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "在关注信息流中显示引用" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "在关注中显示引用" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "在关注信息流中显示转发" - -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "显示回复" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "将你关注的用户的回复置于其他回复之前。" -#: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "在关注中显示回复" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "在关注信息流中显示回复" - -#: src/view/screens/PreferencesFollowingFeed.tsx:70 -#~ msgid "Show replies with at least {value} {0}" -#~ msgstr "显示至少包含 {value} 个 {0} 的回复" - -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "显示转发" -#: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "在关注中显示转发" - -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "显示内容" -#: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "显示用户" - #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" msgstr "显示警告" #: src/lib/moderation/useLabelBehaviorDescription.ts:56 msgid "Show warning and filter from feeds" -msgstr "显示警告并从信息流中过滤" +msgstr "显示警告并从资讯源中过滤" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:130 msgid "Shows posts from {0} in your feed" -msgstr "在你的信息流中显示来自 {0} 的帖子" +msgstr "在你的资讯源中显示来自 {0} 的帖文" #: src/components/dialogs/Signin.tsx:97 #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4761,23 +5453,23 @@ msgstr "登录为..." #: src/components/dialogs/Signin.tsx:75 msgid "Sign in or create your account to join the conversation!" -msgstr "登录或创建你的帐户以加入对话!" +msgstr "登录或创建你的账户以加入对话!" #: src/components/dialogs/Signin.tsx:46 msgid "Sign into Bluesky or create a new account" -msgstr "登录 Bluesky 或创建新帐户" +msgstr "登录 Bluesky 或创建新账户" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "登出" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4793,7 +5485,7 @@ msgstr "注册或登录以加入对话" msgid "Sign-in Required" msgstr "需要登录" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "登录身份" @@ -4802,56 +5494,86 @@ msgstr "登录身份" msgid "Signed in as @{0}" msgstr "以 @{0} 身份登录" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "使用你的入门包注册" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "注册但不使用入门包" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "跳过" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" -msgstr "跳过此流程" +msgstr "跳过这段流程" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "程序开发" -#: src/screens/Messages/Conversation/index.tsx:89 +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" +msgstr "其他你可能喜欢的资讯源" + +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "一些人可以回复" + +#: src/screens/Messages/Conversation/index.tsx:106 msgid "Something went wrong" -msgstr "" +msgstr "出了点问题" + +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "出了点问题,请重试" #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "出了点问题,请重试。" -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "" + +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "很抱歉,你的登录会话已过期,请重新登录。" -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "回复排序" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" -msgstr "对同一帖子的回复进行排序:" +msgstr "对同一帖文的回复进行排序:" -#: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" -msgstr "来源:" +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" +msgstr "来源:<0>{0}" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "垃圾内容" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" -msgstr "垃圾内容;过多的提及或回复" +msgstr "垃圾内容;过于频繁的提及或回复" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "运动" @@ -4859,69 +5581,94 @@ msgstr "运动" msgid "Square" msgstr "方块" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" -msgstr "" +msgstr "开始一个新私信" -#: src/view/screens/Settings/index.tsx:862 -#~ msgid "Status page" -#~ msgstr "状态页" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "与 {displayName} 开始私信" -#: src/view/screens/Settings/index.tsx:896 +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "开始私信" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "开始入门指南吧,若需获取更多选项请点击下一步,或点按跳过。" + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "入门包" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "由 {0} 创建的入门包" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "入门包无效" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "入门包" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." +msgstr "入门包能让你更轻松地与朋友分享你最中意的资讯源和关注用户。" + +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" -msgstr "" +msgstr "状态页" -#: src/screens/Signup/index.tsx:145 -#~ msgid "Step" -#~ msgstr "Step" - -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" -msgstr "" +msgstr "步骤 {1} 共 {0} 步" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "已清除存储,请立即重启应用。" -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "提交" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "订阅" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "订阅 @{0} 以使用这些标记:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "订阅标记者" -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "订阅 {0} 信息流" - -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "订阅这个标记者" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "订阅这个列表" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "推荐的关注者" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "建议的账号" +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "为你推荐" @@ -4930,7 +5677,7 @@ msgstr "为你推荐" msgid "Suggestive" msgstr "建议" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -4941,19 +5688,23 @@ msgstr "支持" msgid "Switch Account" msgstr "切换账户" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "在资讯源之间切换以刷新你的浏览体验。" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "切换到 {0}" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "切换你登录的账户" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "系统" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "系统日志" @@ -4969,29 +5720,51 @@ msgstr "标签菜单:{displayTag}" msgid "Tall" msgstr "高" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "点按关闭" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "点击查看完整内容" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "任务完成:10 个喜欢!" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "告诉我们的算法你喜欢什么" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "科技" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "讲个笑话!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "告诉我们更多" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "条款" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "服务条款" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "用词违反了社群准则" @@ -4999,12 +5772,13 @@ msgstr "用词违反了社群准则" msgid "text" msgstr "文本" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "文本输入框" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "谢谢,你的举报已提交。" @@ -5012,19 +5786,24 @@ msgstr "谢谢,你的举报已提交。" msgid "That contains the following:" msgstr "其中包含以下内容:" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "该用户识别符已被占用。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "找不到此入门包。" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "解除屏蔽后,该账户将能够与你互动。" -#: src/components/moderation/ModerationDetailsDialog.tsx:127 -#~ msgid "the author" -#~ msgstr "作者" - #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "社群准则已迁移至 <0/>" @@ -5033,15 +5812,24 @@ msgstr "社群准则已迁移至 <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "版权许可已迁移至 <0/>" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 -msgid "The feed has been replaced with Discover." -msgstr "" +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" +msgstr "现在 \"Discover\" 资讯源已了解你的喜好" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "使用 App 的体验更好。立即下载 Bluesky,我们将从你上次中断的地方继续。" + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 +msgid "The feed has been replaced with Discover." +msgstr "资讯源已替换为 \"Discover\"。" + +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "以下标记已应用到你的账户。" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "以下标记已应用到你的内容。" @@ -5049,245 +5837,248 @@ msgstr "以下标记已应用到你的内容。" msgid "The following steps will help customize your Bluesky experience." msgstr "以下步骤将帮助定制你的 Bluesky 体验。" -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." -msgstr "此帖子可能已被删除。" +msgstr "这条帖文可能已被删除。" #: src/view/screens/PrivacyPolicy.tsx:33 msgid "The Privacy Policy has been moved to <0/>" msgstr "隐私政策已迁移至 <0/>" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "你尝试查看的入门包无效,你可以删除此入门包。" + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." -msgstr "支持表单已被移除。如果你需要帮助,请点击<0/>或访问{HELP_DESK_URL}与我们联系。" +msgstr "支持表单已被移除。如果你需要帮助,请<0/>或访问{HELP_DESK_URL}与我们联系。" #: src/view/screens/TermsOfService.tsx:33 msgid "The Terms of Service have been moved to" msgstr "服务条款已迁移至" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" -msgstr "这里有些信息流你可以尝试:" +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." +msgstr "停用账户没有时间限制,你可以随时决定回来。" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "连接至服务器时出现问题,请检查你的互联网连接并重试。" -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." -msgstr "删除信息流时出现问题,请检查你的互联网连接并重试。" +msgstr "删除资讯源时出现问题,请检查你的互联网连接并重试。" #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." -msgstr "更新信息流时出现问题,请检查你的互联网连接并重试。" +msgstr "更新资讯源时出现问题,请检查你的互联网连接并重试。" -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." msgstr "连接 Tenor 时出现问题。" -#: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" - -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "连接服务器时出现问题" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "连接服务器时出现问题" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "刷新通知时出现问题,点击重试。" -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." -msgstr "刷新帖子时出现问题,点击重试。" +msgstr "刷新帖文时出现问题,点击重试。" #: src/view/com/lists/ListMembers.tsx:172 msgid "There was an issue fetching the list. Tap here to try again." msgstr "刷新列表时出现问题,点击重试。" -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "刷新列表时出现问题,点击重试。" -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "提交举报时出现问题,请检查你的网络连接。" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "与服务器同步首选项时出现问题" - -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "获取应用专用密码时出现问题" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" msgstr "出现问题了!{0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "出现问题了,请检查你的互联网连接并重试。" -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "应用发生意外错误,请联系我们进行错误反馈!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "Bluesky 迎来了大量新用户!我们将尽快激活你的账户。" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "这里是一些受欢迎的账户,你可能会喜欢:" - #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" msgstr "{screenDescription} 已被标记:" #: src/components/moderation/ScreenHider.tsx:111 msgid "This account has requested that users sign in to view their profile." -msgstr "此账户要求登录后才能查看其个人资料。" +msgstr "这个账户要求登录后才能查看其个人资料。" -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "这个账户已被你的一个或多个内容审核列表所屏蔽。要解除屏蔽,请从内容审核列表中删除这个账户。" + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." -msgstr "此申诉将发送至 <0>{0}。" +msgstr "这条申诉将发送至 <0>{0}。" -#: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." -msgstr "" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." +msgstr "此申诉将提交给 Bluesky 内容审核服务。" + +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "此私信已被断开" #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." -msgstr "此内容已被限制者隐藏。" +msgstr "此内容已被内容审核服务提供方所隐藏。" #: src/lib/moderation/useGlobalLabelStrings.ts:24 msgid "This content has received a general warning from moderators." -msgstr "此内容已受到限制者设置的一般警告。" +msgstr "内容审核服务提供方已对此内容设置一般警告。" #: src/components/dialogs/EmbedConsent.tsx:64 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "此内容由 {0} 托管。是否要启用外部媒体?" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." msgstr "由于其中一个用户屏蔽了另一个用户,此内容不可用。" -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "没有 Bluesky 账户,无法查看此内容。" -#: src/view/screens/Settings/ExportCarDialog.tsx:94 +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "此对话的参与者已停用或删除账号,点击以获取更多详情。" + +#: src/view/screens/Settings/ExportCarDialog.tsx:93 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "该功能正在测试,你可以在<0>这篇博客文章中获得关于导出数据的更多信息。" -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." -msgstr "该信息流当前使用人数较多,服务暂时不可用。请稍后再试。" - -#: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "该信息流为空!" +msgstr "该资讯源当前使用人数较多,服务暂时不可用。请稍后再试。" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." -msgstr "信息流为空!你或许需要先关注更多的用户,或检查你的语言设置。" +msgstr "这个资讯源是空的!你或许需要先关注更多的用户,或检查你的语言设置。" -#: src/view/com/posts/FeedShutdownMsg.tsx:97 +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." +msgstr "这里是空的。" + +#: src/view/com/posts/FeedShutdownMsg.tsx:99 msgid "This feed is no longer online. We are showing <0>Discover instead." -msgstr "" +msgstr "这个资讯源已离线,我们将改为显示来自 <0>Discover 资讯源的内容。" #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." -msgstr "此信息不会分享给其他用户。" +msgstr "这条信息不会分享给其他用户。" #: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "这很重要,以防你将来需要更改电子邮箱或重置密码。" -#: src/components/moderation/ModerationDetailsDialog.tsx:124 -#~ msgid "This label was applied by {0}." -#~ msgstr "此标记由 {0} 应用。" - #: src/components/moderation/ModerationDetailsDialog.tsx:127 msgid "This label was applied by <0>{0}." -msgstr "" +msgstr "这个标签是由 <0>{0} 标记的。" #: src/components/moderation/ModerationDetailsDialog.tsx:125 msgid "This label was applied by the author." -msgstr "" +msgstr "这个标签是由该作者标记的。" -#: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" -msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." +msgstr "这个标签是由你标记的。" -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." -msgstr "此标记者尚未声明他发布的标记,并且可能处于非活跃状态。" +msgstr "这个标记者尚未声明他发布的标记,并且可能处于非活跃状态。" #: src/view/com/modals/LinkWarning.tsx:72 msgid "This link is taking you to the following website:" -msgstr "此链接将带你到以下网站:" +msgstr "这条链接将带你到以下网站:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" -msgstr "此列表为空!" +msgstr "这个列表为空!" #: src/screens/Profile/ErrorState.tsx:40 msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." -msgstr "此限制提供服务不可用,请查看下方获取更多详情。如果问题持续存在,请联系我们。" +msgstr "此内容审核提供服务不可用,请查看下方获取更多详情。如果问题持续存在,请联系我们。" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "该名称已被使用" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." -msgstr "此帖子已被删除。" +msgstr "这条帖文已被删除。" -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." -msgstr "此帖子只对已登录用户可见,未登录的用户将无法看到。" +msgstr "这条帖文只对已登录用户可见,未登录的用户将无法看到。" -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." -msgstr "此帖子将从信息流中隐藏。" +msgstr "这条帖文将从资讯源中隐藏。" -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "此个人资料只对已登录用户可见,未登录的用户将无法看到。" @@ -5301,51 +6092,59 @@ msgstr "应该在以下位置创建一个域名记录:" #: src/view/com/profile/ProfileFollowers.tsx:87 msgid "This user doesn't have any followers." -msgstr "此用户目前没有任何关注者。" +msgstr "这个用户目前没有任何关注者。" + +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "这个用户屏蔽了你" #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." -msgstr "此用户已将你屏蔽,你将无法看到他所发布的内容。" +msgstr "这个用户已将你屏蔽,你将无法看到他所发布的内容。" #: src/lib/moderation/useGlobalLabelStrings.ts:30 msgid "This user has requested that their content only be shown to signed-in users." -msgstr "此用户要求其发布内容仅对已登录用户可见。" +msgstr "这个用户设置其发布的内容仅对已登录用户可见。" #: src/components/moderation/ModerationDetailsDialog.tsx:55 msgid "This user is included in the <0>{0} list which you have blocked." -msgstr "此用户包含在你已屏蔽的 <0>{0} 列表中。" +msgstr "这个用户包含在你已屏蔽的 <0>{0} 列表中。" #: src/components/moderation/ModerationDetailsDialog.tsx:84 msgid "This user is included in the <0>{0} list which you have muted." -msgstr "此用户包含在你已隐藏的 <0>{0} 列表中。" +msgstr "这个用户包含在你已隐藏的 <0>{0} 列表中。" + +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "此用户最近加入了 Bluesky,点按此处可获取其加入的具体时间。" #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." -msgstr "此账户目前没有关注任何人。" - -#: src/view/com/modals/SelfLabel.tsx:137 -#~ msgid "This warning is only available for posts with media attached." -#~ msgstr "此警告仅适用于附带媒体的帖子。" +msgstr "这个账户目前没有关注任何人。" #: src/components/dialogs/MutedWords.tsx:283 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "这将从你的隐藏词汇中删除 {0}。你随时可以重新添加。" -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" msgstr "讨论串首选项" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" msgstr "讨论串首选项" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "讨论串首选项已更新" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "讨论串模式" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" msgstr "讨论串首选项" @@ -5353,9 +6152,9 @@ msgstr "讨论串首选项" msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "在关闭电子邮件两步验证前,请先验证你的电子邮箱地址。" -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." -msgstr "" +msgstr "要举报对话,请在会话中选择一条私信并举报。这有助于使内容审核服务提供方了解有关问题的背景信息。" #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" @@ -5365,16 +6164,16 @@ msgstr "你想将举报提交给谁?" msgid "Toggle between muted word options." msgstr "在隐藏词汇选项之间切换。" -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "切换下拉式菜单" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" msgstr "切换以启用或禁用成人内容" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "热门" @@ -5382,10 +6181,12 @@ msgstr "热门" msgid "Transformations" msgstr "转换" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "翻译" @@ -5394,65 +6195,81 @@ msgctxt "action" msgid "Try again" msgstr "重试" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "电视节目" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "两步验证" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" -msgstr "" +msgstr "在这里输入你的消息" #: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "类型:" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "取消屏蔽列表" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "取消隐藏列表" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "无法连接到服务,请检查互联网连接。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "无法删除" + +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 msgid "Unblock" msgstr "取消屏蔽" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" msgstr "取消屏蔽" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "取消屏蔽账户" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" msgstr "取消屏蔽账户" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" msgstr "取消屏蔽账户?" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "取消转发" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "取消关注" @@ -5461,25 +6278,21 @@ msgstr "取消关注" msgid "Unfollow" msgstr "取消关注" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "取消关注 {0}" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "取消关注账户" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:197 -#~ msgid "Unlike" -#~ msgstr "取消喜欢" - -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" -msgstr "取消喜欢这个信息流" +msgstr "取消喜欢这个资讯源" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "取消隐藏" @@ -5487,55 +6300,55 @@ msgstr "取消隐藏" msgid "Unmute {truncatedTag}" msgstr "取消隐藏 {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "取消隐藏账户" #: src/components/TagMenu/index.tsx:208 msgid "Unmute all {displayTag} posts" -msgstr "取消隐藏所有 {displayTag} 帖子" +msgstr "取消隐藏所有 {displayTag} 帖文" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" -msgstr "" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" +msgstr "取消静音对话" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" msgstr "取消隐藏讨论串" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "取消固定" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" msgstr "从主页取消固定" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" msgstr "取消固定限制列表" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "从你的资讯源中取消固定" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "取消订阅" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" -msgstr "取消订阅此标记者" +msgstr "取消订阅这个标记者" +#: src/lib/moderation/useReportOptions.ts:72 #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" - -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "不受欢迎的性内容" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "更新列表中的 {displayName}" @@ -5547,38 +6360,38 @@ msgstr "更新至 {handle}" msgid "Updating..." msgstr "更新中..." -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" -msgstr "" +msgstr "上传图片" #: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "将文本文件上传至:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "从相机上传" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "从文件上传" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" -msgstr "从媒体库上传" +msgstr "从照片图库上传" #: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "使用你服务器上的文件" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "使用应用专用密码登录到其他 Bluesky 客户端,而无需对其授予你账户或密码的完全访问权限。" @@ -5602,13 +6415,13 @@ msgstr "使用系统默认浏览器" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 msgid "Use recommended" -msgstr "" +msgstr "使用推荐" #: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "使用 DNS 面板" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "使用这个和你的用户识别符一起登录其他应用。" @@ -5617,19 +6430,23 @@ msgid "Used by:" msgstr "使用者:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" msgstr "用户被屏蔽" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" msgstr "用户被 \"{0}\" 屏蔽" +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "用户已被列表屏蔽" + #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" -msgstr "用户被列表屏蔽" +msgstr "用户已被列表屏蔽" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "用户屏蔽了你" @@ -5637,46 +6454,53 @@ msgstr "用户屏蔽了你" msgid "User Blocks You" msgstr "用户屏蔽了你" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "{0} 的用户列表" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "<0/> 的用户列表" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "你的用户列表" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "用户列表已创建" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "用户列表已更新" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "用户列表" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "用户名或电子邮箱" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "用户" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" msgstr "关注 <0/> 的用户" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "我关注的用户" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "\"{0}\"中的用户" @@ -5688,23 +6512,19 @@ msgstr "已喜欢此内容或个人资料的账户" msgid "Value:" msgstr "值:" -#: src/view/com/modals/ChangeHandle.tsx:510 -#~ msgid "Verify {0}" -#~ msgstr "验证 {0}" - #: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" -msgstr "" +msgstr "验证 DNS 记录" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "验证邮箱" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "验证我的邮箱" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "验证我的邮箱" @@ -5715,55 +6535,66 @@ msgstr "验证新的邮箱" #: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" -msgstr "" +msgstr "验证文本文件" #: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "验证你的邮箱" -#: src/view/screens/Settings/index.tsx:852 -#~ msgid "Version {0}" -#~ msgstr "版本 {0}" - -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" -msgstr "" +msgstr "版本 {appVersion} {bundleInfo}" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "电子游戏" -#: src/screens/Profile/Header/Shell.tsx:110 +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "视频不能大于 100MB" + +#: src/screens/Profile/Header/Shell.tsx:113 msgid "View {0}'s avatar" msgstr "查看{0}的头像" -#: src/view/screens/Log.tsx:52 +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "查看{0}的个人资料" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "查看屏蔽账户的个人资料" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "查看调试入口" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "查看详情" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" msgstr "查看举报版权侵权的详情" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" msgstr "查看整个讨论串" #: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" -msgstr "查看此标记的详情" +msgstr "查看这个标记的详情" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "查看个人资料" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "查看头像" @@ -5771,9 +6602,14 @@ msgstr "查看头像" msgid "View the labeling service provided by @{0}" msgstr "查看 @{0} 提供的标记服务。" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" -msgstr "查看此信息流被谁喜欢" +msgstr "查看这个资讯源被谁喜欢" + +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "查看自定义资讯源并探索更多" #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 @@ -5783,7 +6619,6 @@ msgstr "访问网站" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "警告" @@ -5793,173 +6628,224 @@ msgstr "警告内容" #: src/lib/moderation/useLabelBehaviorDescription.ts:46 msgid "Warn content and filter from feeds" -msgstr "警告内容并从信息流中过滤" +msgstr "警告内容并从资讯源中过滤" #: src/screens/Hashtag.tsx:210 msgid "We couldn't find any results for that hashtag." msgstr "找不到任何与该标签相关的结果。" -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" -msgstr "" +msgstr "我们无法加载这个对话" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "我们估计还需要 {estimatedTime} 才能完成你的账户准备。" -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "我们希望你在此度过愉快的时光。请记住,Bluesky 是:" #: src/view/com/posts/DiscoverFallbackHeader.tsx:29 msgid "We ran out of posts from your follows. Here's the latest from <0/>." -msgstr "我们已经看完了你关注的帖子。这是来自 <0/> 的最新消息。" +msgstr "我们已经看完了你关注的帖文。这是来自 <0/> 的最新消息。" #: src/components/dialogs/MutedWords.tsx:203 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." -msgstr "不建议你添加会出现在许多帖子中的常见词汇,这可能导致你的时间线上没有帖子可显示。" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "我们推荐我们的 \"Discover\" 信息流:" +msgstr "不建议你添加会出现在许多帖文中的常见词汇,这可能导致你的时间线上没有帖文可显示。" #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "我们无法加载你的生日首选项,请重试。" -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." msgstr "我们暂时无法记载你已配置的标记者。" -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." -msgstr "我们无法连接到互联网,请重试以继续设置你的账户。如果仍继续失败,你可以选择跳过此流程。" +msgstr "我们无法连接到互联网,请重试以继续设置你的账户。如果仍继续失败,你可以选择跳过这段流程。" -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "我们会在你的账户准备好时通知你。" -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." msgstr "我们将使用这些信息来帮助定制你的体验。" -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "我们遇到了网络问题,请再试一次" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "我们非常高兴你加入我们!" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." -msgstr "很抱歉,我们无法解析此列表。如果问题持续发生,请联系列表创建者,@{handleOrDid}。" +msgstr "很抱歉,我们无法解析这个列表。如果问题持续发生,请联系列表创建者,@{handleOrDid}。" #: src/components/dialogs/MutedWords.tsx:229 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "很抱歉,我们无法加载你的隐藏词汇列表。请重试。" -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "很抱歉,无法完成你的搜索。请稍后再试。" -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "很抱歉!你所回复的帖文已被删除。" + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "很抱歉!我们找不到你正在寻找的页面。" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." -msgstr "很抱歉!你目前只能订阅 10 个标记者,你已达到 10 个的限制。" +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "很抱歉!你目前只能订阅 20 个标记者,你已达到 20 个的限制。" -#: src/view/com/auth/onboarding/WelcomeMobile.tsx:48 -#~ msgid "Welcome to <0>Bluesky" -#~ msgstr "欢迎来到 <0>Bluesky" +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" +msgstr "欢迎回来!" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "欢迎新天友!" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" msgstr "你感兴趣的是什么?" +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "你想如何命名你的入门包?" + #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "发生了什么新鲜事?" #: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:78 msgid "Which languages are used in this post?" -msgstr "这个帖子中使用了哪些语言?" +msgstr "这条帖文中使用了哪些语言?" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:77 msgid "Which languages would you like to see in your algorithmic feeds?" -msgstr "你想在算法信息流中看到哪些语言?" +msgstr "你想在算法资讯源中看到哪些语言?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "谁可以给你发送私信?" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "谁可以回复" -#: src/screens/Home/NoFeedsPinned.tsx:92 -msgid "Whoops!" -msgstr "" +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "谁可以回复对话框" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "谁可以回复?" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 +msgid "Whoops!" +msgstr "糟糕!" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "为什么应该审核此内容?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" -msgstr "为什么应该审核此信息流?" +msgstr "为什么应该审核这个资讯源?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" -msgstr "为什么应该审核此列表?" +msgstr "为什么应该审核这个列表?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" -msgstr "" +msgstr "为什么应该审核这条私信?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" -msgstr "为什么应该审核此帖子?" +msgstr "为什么应该审核这条帖文?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "为什么应该审核此入门包?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" -msgstr "为什么应该审核此用户?" +msgstr "为什么应该审核这个用户?" #: src/view/com/modals/crop-image/CropImage.web.tsx:125 msgid "Wide" msgstr "宽" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" -msgstr "" +msgstr "编写私信" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" -msgstr "撰写帖子" +msgstr "撰写帖文" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "撰写你的回复" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "作家" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "启用" -#: src/components/dms/MessageItem.tsx:158 -msgid "Yesterday, {time}" -msgstr "" +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "是的,请停用" -#: src/screens/Deactivated.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "是的,删除此入门包" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "是的,重新启用我的账户" + +#: src/components/dms/MessageItem.tsx:182 +msgid "Yesterday, {time}" +msgstr "昨天,{time}" + +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "你" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "你" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." msgstr "轮到你了。" @@ -5967,92 +6853,108 @@ msgstr "轮到你了。" msgid "You are not following anyone." msgstr "你没有关注任何账户。" -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." -msgstr "你也可以探索新的自定义信息流来关注。" +msgstr "你也可以探索新的自定义资讯源来关注。" -#: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." -msgstr "你可以稍后在设置中更改。" +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "你也可以暂时停用你的账户,并在任何时间重新激活它。" + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "你可以随时修改此设置项。" + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "无论你使用哪种设置,都不会影响已发起的对话。" #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." msgstr "你现在可以使用新密码登录。" +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "你可以重新激活你的账户以继续登录,其他用户将可以重新看到你的个人资料和帖文。" + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "你目前还没有任何关注者。" +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "您没有关注任何关注 @{name} 的用户。" + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "你目前还没有邀请码!当你持续使用 Bluesky 一段时间后,我们将提供一些新的邀请码给你。" -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." -msgstr "你目前还没有任何固定的信息流。" +msgstr "你目前还没有任何固定的资讯源。" -#: src/view/screens/Feeds.tsx:477 -#~ msgid "You don't have any saved feeds!" -#~ msgstr "你目前还没有任何保存的信息流!" - -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." -msgstr "你目前还没有任何保存的信息流。" +msgstr "你目前还没有任何保存的资讯源。" -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." -msgstr "你已屏蔽该帖子作者,或你已被该作者屏蔽。" +msgstr "你已屏蔽该帖文作者,或你已被该作者屏蔽。" + +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "你已屏蔽这个用户" #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." -msgstr "你已屏蔽了此用户,你将无法查看他们发布的内容。" +msgstr "你已屏蔽这个用户,你将无法查看他们发布的内容。" #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "你输入的确认码无效。它应该长得像这样 XXXXX-XXXXX。" -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" -msgstr "你已隐藏此帖子" +msgstr "你已隐藏这条帖文" #: src/components/moderation/ModerationDetailsDialog.tsx:101 msgid "You have hidden this post." -msgstr "你已隐藏此帖子。" +msgstr "你已隐藏这条帖文。" #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." -msgstr "你已隐藏此账户。" +msgstr "你已隐藏这个账户。" -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" -msgstr "你已隐藏此用户" +msgstr "你已隐藏这个用户" -#: src/view/com/feeds/ProfileFeedgens.tsx:144 +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "你还没有任何私信,立即与其他人展开对话吧!" + +#: src/view/com/feeds/ProfileFeedgens.tsx:137 msgid "You have no feeds." -msgstr "你没有订阅信息流。" +msgstr "你还没有建立任何资讯源。" -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." -msgstr "你没有列表。" - -#: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "" +msgstr "你还没有建立任何列表。" #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "你还没有屏蔽任何账户。要屏蔽账户,请转到其个人资料并在其账户上的菜单中选择 \"屏蔽账户\"。" -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "你尚未创建任何应用专用密码,可以通过点击下面的按钮来创建一个。" @@ -6060,35 +6962,63 @@ msgstr "你尚未创建任何应用专用密码,可以通过点击下面的按 msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "你还没有隐藏任何账户。要隐藏账户,请转到其个人资料并在其账户上的菜单中选择 \"隐藏账户\"。" +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "你已经到末尾了" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "你还没有创建任何入门包!" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "你还没有隐藏任何词或标签" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." -msgstr "" +msgstr "如果你认为由他人放置标签的标记信息有误,你可以提出申诉。" -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." -msgstr "如果你认为这些标记是错误的,你可以申诉这些标记。" +msgstr "如果你认为标签的标记信息有误,你可以提出申诉。" + +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "你最多只能添加 50 个资讯源" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "你最多只能添加 50 个用户" #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "你必须年满13岁及以上才能注册。" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" -msgstr "你必须年满18岁及以上才能启用成人内容" +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." +msgstr "你必须至少关注 7 个人以创建入门包。" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "你必须授权照片图库权限以保存二维码" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "你必须授权照片图库权限以保存图片。" + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "你必须选择至少一个标记者进行举报" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "你之前已停用 @{0}。" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 msgid "You will no longer receive notifications for this thread" msgstr "你将不再收到这条讨论串的通知" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" msgstr "你将收到这条讨论串的通知" @@ -6096,60 +7026,90 @@ msgstr "你将收到这条讨论串的通知" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "你将收到一封带有确认码的电子邮件。请在此输入该确认码,然后输入你的新密码。" -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" -msgstr "" +msgstr "你:{0}" -#: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "你尽在掌控" +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "你:{defaultEmbeddedContentMessage}" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "你:{short}" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "完成创建账户后,你将关注建议的用户和资讯源!" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "完成创建帐户后,你将关注建议的用户!" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "你将关注这些用户以及其他 {0} 位" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "你将立即关注这些人" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" +msgstr "你将通过这些资讯源接收最新动态" + +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "轮到你了" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "你已使用应用密码登录账户,请改用你的主密码登录以继续停用你的账户。" + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" msgstr "你已设置完成!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." -msgstr "你选择隐藏了此帖子中的词汇或标签。" +msgstr "你选择隐藏了这条帖文中的词汇或标签。" -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." -msgstr "你已经浏览完你的订阅信息流啦!寻找一些更多的账户关注吧。" +msgstr "你已经浏览完你的订阅资讯源啦!寻找一些更多的账户关注吧。" -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "你的账户" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "你的账户已删除" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." -msgstr "你的帐户数据库包含所有公共数据记录,它们将被导出为“CAR”文件。此文件不包括帖子中的媒体,例如图像或你的隐私数据,这些数据需要另外获取。" +msgstr "你的账户数据库包含所有公共数据记录,它们将被导出为“CAR”文件。这个文件不包括帖文中的媒体,例如图像或你的隐私数据,这些数据需要另外获取。" -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "你的生日" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "你的私信功能已被停用" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "你的选择将被保存,但可以稍后在设置中更改。" -#: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "你的默认信息流为\"关注\"" - #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "你的电子邮箱似乎无效。" @@ -6161,11 +7121,15 @@ msgstr "你的电子邮箱已更新但尚未验证。作为下一步,请验证 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "你的电子邮箱尚未验证。这是一个重要的安全步骤,我们建议你完成验证。" -#: src/view/com/posts/FollowingEmptyState.tsx:47 -msgid "Your following feed is empty! Follow more users to see what's happening." -msgstr "你的关注信息流为空!关注更多用户去看看他们发了什么。" +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "你的第一个喜欢!" -#: src/screens/Signup/StepHandle.tsx:73 +#: src/view/com/posts/FollowingEmptyState.tsx:43 +msgid "Your following feed is empty! Follow more users to see what's happening." +msgstr "你的\"正在关注\"资讯源为空!关注更多用户去看看他们发了什么。" + +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "你的完整用户识别符将修改为" @@ -6177,30 +7141,34 @@ msgstr "你的完整用户识别符将修改为 <0>@{0}" msgid "Your muted words" msgstr "你的隐藏词汇" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "你的密码已成功更改!" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" -msgstr "你的帖子已发布" +msgstr "你的帖文已发布" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." -msgstr "你的帖子、喜欢和屏蔽是公开可见的,而隐藏不可见。" +msgstr "你的帖文、喜欢和屏蔽是公开可见的,而隐藏不可见。" -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" msgstr "你的个人资料" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "其他 Bluesky 用户将无法再看到你的个人资料、帖文、列表与其他相关信息,你可以随时登录以重新激活你的账户。" + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "你的回复已发布" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" -msgstr "" +msgstr "你的举报将发送至 Bluesky 内容审核服务" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "你的用户识别符" diff --git a/src/locale/locales/zh-TW/messages.po b/src/locale/locales/zh-TW/messages.po index a1284501b7..de42c5dd5a 100644 --- a/src/locale/locales/zh-TW/messages.po +++ b/src/locale/locales/zh-TW/messages.po @@ -1,195 +1,261 @@ msgid "" msgstr "" -"POT-Creation-Date: 2024-05-06 10:30+0800\n" +"Project-Id-Version: zh-TW for bluesky-social-app\n" +"POT-Creation-Date: \n" +"Report-Msgid-Bugs-To: Kuwa Lee , Frudrax Cheng \n" +"PO-Revision-Date: 2024-07-20 08:37+0800\n" +"Last-Translator: \n" +"Language-Team: Frudrax Cheng , Kuwa Lee , noeFly, snowleo208, Kisaragi Hiu, Yi-Jyun Pan, toto6038, cirx1e\n" +"Language: zh_TW\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_TW\n" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: \n" -"Last-Translator: Kuwa Lee \n" -"Language-Team: Frudrax Cheng, Kuwa Lee, noeFly, snowleo208, Kisaragi Hiu, Yi-Jyun Pan, toto6038, cirx1e\n" "Plural-Forms: \n" +#: src/screens/Messages/List/ChatListItem.tsx:120 +msgid "(contains embedded content)" +msgstr "(含有嵌入內容)" + #: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(沒有電子郵件)" -#: src/view/com/notifications/FeedItem.tsx:239 +#: src/view/com/notifications/FeedItem.tsx:297 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" -msgstr "" +msgstr "{0, plural, one {其他 {formattedCount} 個人} other {其他 {formattedCount} 個人}}" #: src/components/moderation/LabelsOnMe.tsx:55 -msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" -msgstr "" +msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" +msgstr "{0, plural, one {該帳號有 # 個標記} other {該帳號有 # 個標記}}" #: src/components/moderation/LabelsOnMe.tsx:61 -msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" -msgstr "" +msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" +msgstr "{0, plural, one {該內容有 # 個標記} other {該內容有 # 個標記}}" -#: src/view/com/util/post-ctrls/RepostButton.tsx:62 +#: src/view/com/util/post-ctrls/RepostButton.tsx:66 msgid "{0, plural, one {# repost} other {# reposts}}" -msgstr "" +msgstr "{0, plural, one {# 個轉貼} other {# 個轉貼}}" -#: src/components/ProfileHoverCard/index.web.tsx:373 +#: src/components/ProfileHoverCard/index.web.tsx:398 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" -msgstr "" +msgstr "{0, plural, one {個跟隨者} other {個跟隨者}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:402 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" -msgstr "" +msgstr "{0, plural, one {個跟隨中} other {個跟隨中}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:245 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:266 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" -msgstr "" +msgstr "{0, plural, one {喜歡(# 個喜歡)} other {喜歡(# 個喜歡)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:382 msgid "{0, plural, one {like} other {likes}}" -msgstr "" +msgstr "{0, plural, one {喜歡} other {喜歡}}" -#: src/view/com/feeds/FeedSourceCard.tsx:269 +#: src/components/FeedCard.tsx:206 +#: src/view/com/feeds/FeedSourceCard.tsx:301 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{0, plural,one {# 個用戶表示喜歡} other {# 個用戶表示喜歡}}" #: src/screens/Profile/Header/Metrics.tsx:59 msgid "{0, plural, one {post} other {posts}}" -msgstr "" +msgstr "{0, plural, one {則貼文} other {則貼文}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:204 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:224 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" -msgstr "" +msgstr "{0, plural, one {回覆(# 個回覆)} other {回覆(# 個回覆)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:362 msgid "{0, plural, one {repost} other {reposts}}" -msgstr "" +msgstr "{0, plural, one {轉貼} other {轉貼}}" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:241 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:262 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" -msgstr "" +msgstr "{0, plural, one {撤回喜歡(# 個喜歡)} other {撤回喜歡(# 個喜歡)}}" -#: src/view/screens/ProfileList.tsx:286 -msgid "{0} your feeds" -msgstr "" +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:223 +msgid "{0} joined this week" +msgstr "本週加入了 {0} 人" + +#: src/screens/StarterPack/StarterPackScreen.tsx:456 +msgid "{0} people have used this starter pack!" +msgstr "{0} 人已使用此入門包!" + +#: src/view/com/util/UserAvatar.tsx:431 +msgid "{0}'s avatar" +msgstr "「{0}」的頭像" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:68 +msgid "{0}'s favorite feeds and people - join me!" +msgstr "「{0}」最喜歡的動態和人物 - 加入我的行列吧!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:47 +msgid "{0}'s starter pack" +msgstr "「{0}」的入門包" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{count, plural, one {# 個用戶表示喜歡} other {# 個用戶表示喜歡}}" -#: src/screens/Deactivated.tsx:207 +#: src/lib/hooks/useTimeAgo.ts:69 +msgid "{diff, plural, one {day} other {days}}" +msgstr "{diff, plural, one {天} other {天}}" + +#: src/lib/hooks/useTimeAgo.ts:64 +msgid "{diff, plural, one {hour} other {hours}}" +msgstr "{diff, plural, one {時} other {時}}" + +#: src/lib/hooks/useTimeAgo.ts:59 +msgid "{diff, plural, one {minute} other {minutes}}" +msgstr "{diff, plural, one {分} other {分}}" + +#: src/lib/hooks/useTimeAgo.ts:75 +msgid "{diff, plural, one {month} other {months}}" +msgstr "{diff, plural, one {月} other {月}}" + +#: src/lib/hooks/useTimeAgo.ts:54 +msgid "{diffSeconds, plural, one {second} other {seconds}}" +msgstr "{diffSeconds, plural, one {秒} other {秒}}" + +#: src/screens/StarterPack/Wizard/index.tsx:175 +msgid "{displayName}'s Starter Pack" +msgstr "「{displayName}」的入門包" + +#: src/screens/SignupQueued.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" -msgstr "" +msgstr "{estimatedTimeHrs, plural, one {時} other {時}}" -#: src/screens/Deactivated.tsx:213 +#: src/screens/SignupQueued.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" -msgstr "" +msgstr "{estimatedTimeMins, plural, one {分} other {分}}" -#: src/components/ProfileHoverCard/index.web.tsx:454 +#: src/components/ProfileHoverCard/index.web.tsx:505 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} 個跟隨中" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:585 -msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:405 +msgid "{handle} can't be messaged" +msgstr "無法傳送訊息給 {handle}" -#: src/view/shell/Drawer.tsx:461 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 +#: src/view/screens/ProfileFeed.tsx:590 +msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" +msgstr "{likeCount, plural, one {# 個用戶表示喜歡} other {# 個用戶表示喜歡}}" + +#: src/view/shell/Drawer.tsx:452 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} 個未讀通知" +#: src/components/NewskieDialog.tsx:116 +msgid "{profileName} joined Bluesky {0} ago" +msgstr "「{profileName}」在 {0} 前加入了 Bluesky" + +#: src/components/NewskieDialog.tsx:111 +msgid "{profileName} joined Bluesky using a starter pack {0} ago" +msgstr "「{profileName}」在 {0} 前使用入門包加入了 Bluesky" + #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" -msgstr "" +msgstr "{value, plural, =0 {顯示所有回覆} one {顯示至少 # 個喜歡的回覆} other {顯示至少 # 個喜歡的回覆}}" -#: src/view/com/threadgate/WhoCanReply.tsx:159 +#: src/components/WhoCanReply.tsx:296 msgid "<0/> members" msgstr "<0/> 個成員" -#: src/view/shell/Drawer.tsx:101 +#: src/screens/StarterPack/Wizard/index.tsx:466 +msgctxt "profiles" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}、<1>{1}和{2, plural, one {其他 # } other {其他 # }}人已在您的入門包中" + +#: src/screens/StarterPack/Wizard/index.tsx:519 +msgctxt "feeds" +msgid "<0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}} are included in your starter pack" +msgstr "<0>{0}、<1>{1}和{2, plural, one {其他 # } other {其他 # }}個動態源已在您的入門包中" + +#: src/view/shell/Drawer.tsx:100 msgid "<0>{0} {1, plural, one {follower} other {followers}}" -msgstr "" +msgstr "<0>{0} {1, plural, one {個跟隨者} other {個跟隨者}}" -#: src/view/shell/Drawer.tsx:112 +#: src/view/shell/Drawer.tsx:111 msgid "<0>{0} {1, plural, one {following} other {following}}" -msgstr "" +msgstr "<0>{0} {1, plural, one {個跟隨中} other {個跟隨中}}" -#: src/view/shell/Drawer.tsx:96 -#~ msgid "<0>{0} following" -#~ msgstr "<0>{0} 個跟隨中" +#: src/screens/StarterPack/Wizard/index.tsx:507 +msgid "<0>{0} and<1> <2>{1} are included in your starter pack" +msgstr "<0>{0} 和<1> <2>{1} 已在您的入門包中" -#: src/components/ProfileHoverCard/index.web.tsx:437 -#~ msgid "<0>{followers} <1>{pluralizedFollowers}" -#~ msgstr "<0>{followers} <1>{pluralizedFollowers}" - -#: src/components/ProfileHoverCard/index.web.tsx:449 -#: src/screens/Profile/Header/Metrics.tsx:45 -#~ msgid "<0>{following} <1>following" -#~ msgstr "<0>{following} <1>個跟隨中" +#: src/screens/StarterPack/Wizard/index.tsx:500 +msgid "<0>{0} is included in your starter pack" +msgstr "<0>{0} 已在您的入門包中" #: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." -msgstr "" +msgstr "<0>不適用。 此警告只適用於附帶媒體的貼文。" -#: src/screens/Profile/Header/Handle.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:457 +msgid "<0>You and<1> <2>{0} are included in your starter pack" +msgstr "<0>您和<1> <2>{0} 已在您的入門包中" + +#: src/screens/Profile/Header/Handle.tsx:50 msgid "⚠Invalid Handle" msgstr "⚠無效的帳號代碼" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:266 msgid "2FA Confirmation" msgstr "雙重驗證" -#: src/view/com/util/ViewHeader.tsx:91 -#: src/view/screens/Search/Search.tsx:650 +#: src/tours/Tooltip.tsx:70 +msgid "A help tooltip" +msgstr "幫助工具提示框" + +#: src/view/com/util/ViewHeader.tsx:93 +#: src/view/screens/Search/Search.tsx:684 msgid "Access navigation links and settings" msgstr "存取導覽連結和設定" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:56 msgid "Access profile and other navigation links" -msgstr "存取個人資料和其他導覽連結" +msgstr "存取個人檔案和其他導覽連結" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:509 +#: src/view/screens/Settings/index.tsx:520 msgid "Accessibility" msgstr "無障礙" -#: src/view/screens/Settings/index.tsx:500 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility settings" msgstr "無障礙設定" -#: src/Navigation.tsx:290 -#: src/view/screens/AccessibilitySettings.tsx:63 +#: src/Navigation.tsx:309 +#: src/view/screens/AccessibilitySettings.tsx:69 msgid "Accessibility Settings" msgstr "無障礙設定" -#: src/components/moderation/LabelsOnMe.tsx:42 -#~ msgid "account" -#~ msgstr "帳號" - -#: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:336 -#: src/view/screens/Settings/index.tsx:718 +#: src/screens/Login/LoginForm.tsx:190 +#: src/view/screens/Settings/index.tsx:347 +#: src/view/screens/Settings/index.tsx:754 msgid "Account" msgstr "帳號" -#: src/view/com/profile/ProfileMenu.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:144 msgid "Account blocked" msgstr "已封鎖帳號" -#: src/view/com/profile/ProfileMenu.tsx:153 +#: src/view/com/profile/ProfileMenu.tsx:158 msgid "Account followed" msgstr "已跟隨帳號" -#: src/view/com/profile/ProfileMenu.tsx:113 +#: src/view/com/profile/ProfileMenu.tsx:118 msgid "Account muted" msgstr "已靜音帳號" #: src/components/moderation/ModerationDetailsDialog.tsx:93 -#: src/lib/moderation/useModerationCauseDescription.ts:91 +#: src/lib/moderation/useModerationCauseDescription.ts:93 msgid "Account Muted" msgstr "已靜音帳號" @@ -205,37 +271,46 @@ msgstr "帳號選項" msgid "Account removed from quick access" msgstr "已從快速存取中移除帳號" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 -#: src/view/com/profile/ProfileMenu.tsx:128 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/view/com/profile/ProfileMenu.tsx:133 msgid "Account unblocked" -msgstr "已取消封鎖帳號" +msgstr "已解除封鎖帳號" -#: src/view/com/profile/ProfileMenu.tsx:166 +#: src/view/com/profile/ProfileMenu.tsx:171 msgid "Account unfollowed" msgstr "已取消跟隨帳號" -#: src/view/com/profile/ProfileMenu.tsx:102 +#: src/view/com/profile/ProfileMenu.tsx:107 msgid "Account unmuted" msgstr "已取消靜音帳號" #: src/components/dialogs/MutedWords.tsx:164 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:876 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 +#: src/view/screens/ProfileList.tsx:881 msgid "Add" msgstr "新增" +#: src/screens/StarterPack/Wizard/index.tsx:568 +msgid "Add {0} more to continue" +msgstr "再新增至少 {0} 個以繼續" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:59 +msgid "Add {displayName} to starter pack" +msgstr "新增 {displayName} 至入門包" + #: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "新增內容警告" -#: src/view/screens/ProfileList.tsx:866 +#: src/view/screens/ProfileList.tsx:871 msgid "Add a user to this list" msgstr "將用戶新增至此列表" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:413 -#: src/view/screens/Settings/index.tsx:422 +#: src/screens/Deactivated.tsx:199 +#: src/view/screens/Settings/index.tsx:424 +#: src/view/screens/Settings/index.tsx:433 msgid "Add account" msgstr "新增帳號" @@ -244,17 +319,13 @@ msgstr "新增帳號" #: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "新增替代文字" -#: src/view/com/composer/GifAltText.tsx:175 -#~ msgid "Add ALT text" -#~ msgstr "" - -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "新增應用程式專用密碼" @@ -266,87 +337,116 @@ msgstr "在已配置的設定中新增靜音文字" msgid "Add muted words and tags" msgstr "新增靜音文字及標籤" -#: src/screens/Home/NoFeedsPinned.tsx:112 +#: src/screens/Home/NoFeedsPinned.tsx:99 msgid "Add recommended feeds" -msgstr "" +msgstr "新增推薦的動態源" -#: src/screens/Feeds/NoFollowingFeed.tsx:43 +#: src/screens/StarterPack/Wizard/index.tsx:488 +msgid "Add some feeds to your starter pack!" +msgstr "新增一些動態源至您的入門包!" + +#: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" -msgstr "" +msgstr "新增預設的「Following」動態源,它只會顯示您跟隨的人" #: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "將以下 DNS 記錄新增到您的網域:" -#: src/view/com/profile/ProfileMenu.tsx:263 -#: src/view/com/profile/ProfileMenu.tsx:266 +#: src/components/FeedCard.tsx:289 +msgid "Add this feed to your feeds" +msgstr "將此新增至您的動態源" + +#: src/view/com/profile/ProfileMenu.tsx:267 +#: src/view/com/profile/ProfileMenu.tsx:270 msgid "Add to Lists" msgstr "新增至列表" -#: src/view/com/feeds/FeedSourceCard.tsx:235 +#: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "Add to my feeds" msgstr "加入到我的動態源" -#: src/view/com/modals/ListAddRemoveUsers.tsx:191 -#: src/view/com/modals/UserAddRemoveLists.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:192 +#: src/view/com/modals/UserAddRemoveLists.tsx:157 msgid "Added to list" msgstr "新增至列表" -#: src/view/com/feeds/FeedSourceCard.tsx:112 +#: src/view/com/feeds/FeedSourceCard.tsx:126 msgid "Added to my feeds" msgstr "加入到我的動態源" -#: src/view/screens/PreferencesFollowingFeed.tsx:172 +#: src/view/screens/PreferencesFollowingFeed.tsx:171 msgid "Adjust the number of likes a reply must have to be shown in your feed." -msgstr "調整在「Following」動態中顯示屬於回復貼文的最低喜歡數門檻。" +msgstr "調整回覆貼文在您的動態中顯示所需的最低喜歡數量。" #: src/lib/moderation/useGlobalLabelStrings.ts:34 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 #: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "成人內容" +#: src/screens/Moderation/index.tsx:356 +msgid "Adult content can only be enabled via the Web at <0>bsky.app." +msgstr "成人內容只能透過網頁版 (<0>bsky.app) 啟用。" + #: src/components/moderation/LabelPreference.tsx:242 msgid "Adult content is disabled." msgstr "成人內容已停用。" -#: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:652 +#: src/screens/Moderation/index.tsx:399 +#: src/view/screens/Settings/index.tsx:688 msgid "Advanced" -msgstr "詳細設定" +msgstr "進階設定" -#: src/view/screens/Feeds.tsx:797 +#: src/state/shell/progress-guide.tsx:176 +msgid "Algorithm training complete!" +msgstr "演算法訓練完成!" + +#: src/screens/StarterPack/StarterPackScreen.tsx:360 +msgid "All accounts have been followed!" +msgstr "已跟隨所有帳號!" + +#: src/view/screens/Feeds.tsx:734 msgid "All the feeds you've saved, right in one place." -msgstr "以下是您保存的動態源。" +msgstr "以下是您儲存的動態源。" + +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "允許存取您的私人訊息" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "允許這些人向您發起對話:" #: src/screens/Login/ForgotPasswordForm.tsx:178 -#: src/view/com/modals/ChangePassword.tsx:172 +#: src/view/com/modals/ChangePassword.tsx:171 msgid "Already have a code?" -msgstr "已經有重置碼了?" +msgstr "已經有重設碼了?" #: src/screens/Login/ChooseAccountForm.tsx:49 msgid "Already signed in as @{0}" -msgstr "已以@{0}身份登入" +msgstr "已以 @{0} 身份登入" #: src/view/com/composer/GifAltText.tsx:93 #: src/view/com/composer/photos/Gallery.tsx:144 -#: src/view/com/util/post-embeds/GifEmbed.tsx:173 +#: src/view/com/util/post-embeds/GifEmbed.tsx:183 msgid "ALT" -msgstr "ALT" +msgstr "替代文字" #: src/view/com/composer/GifAltText.tsx:144 #: src/view/com/modals/EditImage.tsx:316 -#: src/view/screens/AccessibilitySettings.tsx:77 +#: src/view/screens/AccessibilitySettings.tsx:83 msgid "Alt text" msgstr "替代文字" -#: src/view/com/util/post-embeds/GifEmbed.tsx:179 +#: src/view/com/util/post-embeds/GifEmbed.tsx:189 msgid "Alt Text" -msgstr "" +msgstr "替代文字" #: src/view/com/composer/photos/Gallery.tsx:224 msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." -msgstr "替代文字為盲人和視障人士描述圖片及提供情境。" +msgstr "替代文字可為盲人和視障人士描述圖片,並有助於為每個人提供背景資訊。" #: src/view/com/modals/VerifyEmail.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 @@ -357,117 +457,149 @@ msgstr "一封電子郵件已發送至 {0}。請查閱郵件並在下方輸入 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "一封電子郵件已發送至先前填寫的電子郵件地址 {0}。請查閱郵件並在下方輸入驗證碼。" -#: src/components/dialogs/GifSelect.tsx:284 +#: src/components/dialogs/GifSelect.tsx:252 msgid "An error occured" msgstr "發生錯誤" -#: src/components/dms/MessageMenu.tsx:134 -msgid "An error occurred while trying to delete the message. Please try again." -msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:315 +msgid "An error occurred while generating your starter pack. Want to try again?" +msgstr "建立您的入門包時發生錯誤。是否要重試?" -#: src/lib/moderation/useReportOptions.ts:27 +#: src/components/StarterPack/QrCodeDialog.tsx:71 +#: src/components/StarterPack/ShareDialog.tsx:79 +msgid "An error occurred while saving the QR code!" +msgstr "儲存 QR Code 時發生錯誤!" + +#: src/screens/StarterPack/StarterPackScreen.tsx:362 +msgid "An error occurred while trying to follow all" +msgstr "跟隨所有帳號時發生錯誤" + +#: src/lib/moderation/useReportOptions.ts:28 msgid "An issue not included in these options" msgstr "問題不在上述選項" +#: src/components/dms/dialogs/NewChatDialog.tsx:36 +msgid "An issue occurred starting the chat" +msgstr "" + +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:49 +msgid "An issue occurred while trying to open the chat" +msgstr "" + #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 -#: src/view/com/profile/FollowButton.tsx:35 -#: src/view/com/profile/FollowButton.tsx:45 +#: src/components/ProfileCard.tsx:311 +#: src/components/ProfileCard.tsx:331 +#: src/view/com/profile/FollowButton.tsx:36 +#: src/view/com/profile/FollowButton.tsx:46 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:188 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:198 msgid "An issue occurred, please try again." msgstr "出現問題,請再試一次。" -#: src/screens/Onboarding/StepInterests/index.tsx:204 +#: src/screens/Onboarding/StepInterests/index.tsx:218 msgid "an unknown error occurred" -msgstr "" +msgstr "出現未知錯誤" -#: src/view/com/notifications/FeedItem.tsx:236 -#: src/view/com/threadgate/WhoCanReply.tsx:180 +#: src/components/WhoCanReply.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:294 msgid "and" msgstr "和" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/state.ts:79 msgid "Animals" msgstr "動物" -#: src/view/com/util/post-embeds/GifEmbed.tsx:148 +#: src/view/com/util/post-embeds/GifEmbed.tsx:155 msgid "Animated GIF" msgstr "GIF 動畫" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Anti-Social Behavior" msgstr "反社會行為" -#: src/view/screens/LanguageSettings.tsx:95 +#: src/view/screens/LanguageSettings.tsx:96 msgid "App Language" msgstr "應用程式語言" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "應用程式專用密碼已刪除" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:138 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "應用程式專用密碼只能包含字母、數字、空格、破折號及底線。" -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:103 msgid "App Password names must be at least 4 characters long." -msgstr "應用程式專用密碼名稱必須至少為 4 個字元。" +msgstr "應用程式專用密碼名稱必須至少有 4 個字元。" -#: src/view/screens/Settings/index.tsx:663 +#: src/view/screens/Settings/index.tsx:699 msgid "App password settings" msgstr "應用程式專用密碼設定" -#: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:672 +#: src/Navigation.tsx:277 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:708 msgid "App Passwords" msgstr "應用程式專用密碼" -#: src/components/moderation/LabelsOnMeDialog.tsx:150 -#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:152 +#: src/components/moderation/LabelsOnMeDialog.tsx:155 msgid "Appeal" msgstr "申訴" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Appeal \"{0}\" label" msgstr "申訴「{0}」標記" -#: src/components/moderation/LabelsOnMeDialog.tsx:219 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" -msgstr "" +msgstr "已提交申訴" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 -#~ msgid "Appeal submitted." -#~ msgstr "申訴已提交。" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:51 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:53 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:99 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:101 +msgid "Appeal this decision" +msgstr "對此決定提出上訴" -#: src/view/screens/Settings/index.tsx:430 +#: src/view/screens/Settings/index.tsx:441 msgid "Appearance" msgstr "外觀" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 -#: src/screens/Home/NoFeedsPinned.tsx:106 +#: src/screens/Home/NoFeedsPinned.tsx:93 msgid "Apply default recommended feeds" -msgstr "" +msgstr "使用預設推薦的動態源" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "您確定要刪除這個應用程式專用密碼「{name}」嗎?" -#: src/components/dms/MessageMenu.tsx:123 -msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." -msgstr "" +#: src/components/dms/MessageMenu.tsx:149 +msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." +msgstr "您確定要刪除這則訊息嗎?該訊息將為您刪除,但不會為其他參與者刪除。" -#: src/components/dms/ConvoMenu.tsx:189 -msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." -msgstr "" +#: src/screens/StarterPack/StarterPackScreen.tsx:610 +msgid "Are you sure you want to delete this starter pack?" +msgstr "您確定要刪除這個入門包嗎?" -#: src/view/com/feeds/FeedSourceCard.tsx:282 +#: src/components/dms/LeaveConvoPrompt.tsx:48 +msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." +msgstr "您確定要離開此對話嗎?您的訊息將為您刪除,但不會為其他參與者刪除。" + +#: src/view/com/feeds/FeedSourceCard.tsx:314 msgid "Are you sure you want to remove {0} from your feeds?" -msgstr "您確定要從您的動態源中移除 {0} 嗎?" +msgstr "您確定要從您的動態中移除 {0} 嗎?" -#: src/view/com/composer/Composer.tsx:573 +#: src/components/FeedCard.tsx:306 +msgid "Are you sure you want to remove this from your feeds?" +msgstr "您確定要將此從您的動態源中移除嗎?" + +#: src/view/com/composer/Composer.tsx:680 msgid "Are you sure you'd like to discard this draft?" msgstr "您確定要捨棄此草稿嗎?" @@ -477,42 +609,42 @@ msgstr "您確定嗎?" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}?" -msgstr "您正在使用 <0>{0} 書寫嗎?" +msgstr "您正在使用 <0>{0} 撰寫嗎?" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/state.ts:80 msgid "Art" msgstr "藝術" #: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." -msgstr "藝術作品或非情色的裸露。" +msgstr "藝術作品或非色情的裸露。" -#: src/screens/Signup/StepHandle.tsx:119 +#: src/screens/Signup/StepHandle.tsx:170 msgid "At least 3 characters" msgstr "至少 3 個字元" -#: src/components/moderation/LabelsOnMeDialog.tsx:273 -#: src/components/moderation/LabelsOnMeDialog.tsx:274 +#: src/components/dms/MessagesListHeader.tsx:75 +#: src/components/moderation/LabelsOnMeDialog.tsx:302 +#: src/components/moderation/LabelsOnMeDialog.tsx:303 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:298 +#: src/screens/Login/LoginForm.tsx:304 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:179 -#: src/screens/Profile/Header/Shell.tsx:99 -#: src/screens/Signup/index.tsx:193 -#: src/view/com/util/ViewHeader.tsx:89 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:133 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:134 +#: src/screens/Profile/Header/Shell.tsx:102 +#: src/screens/Signup/BackNextButtons.tsx:40 +#: src/screens/StarterPack/Wizard/index.tsx:299 +#: src/view/com/util/ViewHeader.tsx:91 msgid "Back" msgstr "返回" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:144 -msgid "Based on your interest in {interestsText}" -msgstr "因為您對 {interestsText} 感興趣" - -#: src/view/screens/Settings/index.tsx:487 +#: src/view/screens/Settings/index.tsx:498 msgid "Basics" msgstr "基本設定" @@ -520,56 +652,56 @@ msgstr "基本設定" msgid "Birthday" msgstr "生日" -#: src/view/screens/Settings/index.tsx:368 +#: src/view/screens/Settings/index.tsx:379 msgid "Birthday:" msgstr "生日:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 msgid "Block" msgstr "封鎖" -#: src/components/dms/ConvoMenu.tsx:152 -#: src/components/dms/ConvoMenu.tsx:156 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 msgid "Block account" -msgstr "" +msgstr "封鎖帳號" -#: src/view/com/profile/ProfileMenu.tsx:300 -#: src/view/com/profile/ProfileMenu.tsx:307 +#: src/view/com/profile/ProfileMenu.tsx:304 +#: src/view/com/profile/ProfileMenu.tsx:311 msgid "Block Account" msgstr "封鎖帳號" -#: src/view/com/profile/ProfileMenu.tsx:344 +#: src/view/com/profile/ProfileMenu.tsx:348 msgid "Block Account?" msgstr "封鎖帳號?" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:584 msgid "Block accounts" msgstr "封鎖帳號" -#: src/view/screens/ProfileList.tsx:683 +#: src/view/screens/ProfileList.tsx:688 msgid "Block list" msgstr "封鎖列表" -#: src/view/screens/ProfileList.tsx:678 +#: src/view/screens/ProfileList.tsx:683 msgid "Block these accounts?" msgstr "封鎖這些帳號?" -#: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 +#: src/view/com/lists/ListCard.tsx:112 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:75 msgid "Blocked" -msgstr "已封鎖" +msgstr "已被封鎖" -#: src/screens/Moderation/index.tsx:267 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "已封鎖帳號" -#: src/Navigation.tsx:141 +#: src/Navigation.tsx:148 #: src/view/screens/ModerationBlockedAccounts.tsx:109 msgid "Blocked Accounts" msgstr "已封鎖帳號" -#: src/view/com/profile/ProfileMenu.tsx:356 +#: src/view/com/profile/ProfileMenu.tsx:360 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "被封鎖的帳號無法在您的討論串中回覆、提及您,或以其他方式與您互動。" @@ -577,21 +709,21 @@ msgstr "被封鎖的帳號無法在您的討論串中回覆、提及您,或以 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "被封鎖的帳號無法在您的討論串中回覆、提及您,或以其他方式與您互動。您將看不到他們的內容,他們也會被阻止看到您的內容。" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:367 msgid "Blocked post." msgstr "已封鎖貼文。" -#: src/screens/Profile/Sections/Labels.tsx:166 +#: src/screens/Profile/Sections/Labels.tsx:173 msgid "Blocking does not prevent this labeler from placing labels on your account." -msgstr "封鎖此帳戶不會阻止被貼上標記。" +msgstr "封鎖此帳號不會阻止被貼上標記。" -#: src/view/screens/ProfileList.tsx:680 +#: src/view/screens/ProfileList.tsx:685 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "封鎖資訊是公開的。被封鎖的帳號無法在您的討論串中回覆、提及您,或以其他方式與您互動。" -#: src/view/com/profile/ProfileMenu.tsx:353 +#: src/view/com/profile/ProfileMenu.tsx:357 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." -msgstr "封鎖此帳戶不會阻止被貼上標記,但它會阻止此帳戶在您的討論串中回覆或與您進行互動。" +msgstr "封鎖此帳號不會阻止被貼上標記,但它會阻止此帳號在您的討論串中回覆或與您進行互動。" #: src/view/com/auth/SplashScreen.web.tsx:154 msgid "Blog" @@ -606,9 +738,17 @@ msgstr "Bluesky" msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." msgstr "Bluesky 是一個開放的網路,您可以自行挑選託管服務供應商。自定義託管服務現已為開發人員推出測試版。" -#: src/screens/Moderation/index.tsx:533 +#: src/components/ProgressGuide/List.tsx:55 +msgid "Bluesky is better with friends!" +msgstr "Bluesky 因朋友而更好!" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:282 +msgid "Bluesky will choose a set of recommended accounts from people in your network." +msgstr "Bluesky 將從您的個人社群網路中選擇一組推薦的帳號。" + +#: src/screens/Moderation/index.tsx:557 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." -msgstr "Bluesky 的官方程式將不會向未登入的使用者顯示您的個人資料和貼文。但其他應用程式可能不會遵循這個要求,這不會使您的帳號變成非公開的。" +msgstr "Bluesky 的官方程式將不會向未登入的使用者顯示您的個人檔案和貼文。但其他應用程式可能不會遵循這個要求,這不會使您的帳號轉為非公開狀態。" #: src/lib/moderation/useLabelBehaviorDescription.ts:53 msgid "Blur images" @@ -616,42 +756,57 @@ msgstr "模糊圖片" #: src/lib/moderation/useLabelBehaviorDescription.ts:51 msgid "Blur images and filter from feeds" -msgstr "從動態中模糊圖片並過濾" +msgstr "模糊圖片並從動態中過濾" -#: src/screens/Onboarding/index.tsx:45 +#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/state.ts:81 msgid "Books" msgstr "書籍" -#: src/screens/Home/NoFeedsPinned.tsx:116 -#: src/screens/Home/NoFeedsPinned.tsx:123 +#: src/components/FeedInterstitials.tsx:285 +msgid "Browse more accounts on the Explore page" +msgstr "在探索頁面瀏覽更多帳號" + +#: src/components/FeedInterstitials.tsx:415 +msgid "Browse more feeds on the Explore page" +msgstr "在探索頁面瀏覽更多動態源" + +#: src/components/FeedInterstitials.tsx:270 +#: src/components/FeedInterstitials.tsx:400 +msgid "Browse more suggestions" +msgstr "瀏覽更多建議" + +#: src/components/FeedInterstitials.tsx:293 +#: src/components/FeedInterstitials.tsx:424 +msgid "Browse more suggestions on the Explore page" +msgstr "在探索頁面瀏覽更多建議" + +#: src/screens/Home/NoFeedsPinned.tsx:103 +#: src/screens/Home/NoFeedsPinned.tsx:109 msgid "Browse other feeds" -msgstr "" +msgstr "瀏覽其他動態源" #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "商務" -#: src/view/com/profile/ProfileSubpageHeader.tsx:157 +#: src/view/com/profile/ProfileSubpageHeader.tsx:162 msgid "by —" -msgstr "來自 ——" +msgstr "來自 —" #: src/components/LabelingServiceCard/index.tsx:56 msgid "By {0}" msgstr "來自 {0}" -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 -msgid "by @{0}" -msgstr "" - -#: src/view/com/profile/ProfileSubpageHeader.tsx:161 +#: src/view/com/profile/ProfileSubpageHeader.tsx:166 msgid "by <0/>" msgstr "來自 <0/>" #: src/screens/Signup/StepInfo/Policies.tsx:74 msgid "By creating an account you agree to the {els}." -msgstr "建立帳戶即表示您同意 {els}。" +msgstr "建立帳號即表示您同意 {els}。" -#: src/view/com/profile/ProfileSubpageHeader.tsx:159 +#: src/view/com/profile/ProfileSubpageHeader.tsx:164 msgid "by you" msgstr "來自您" @@ -659,22 +814,23 @@ msgstr "來自您" msgid "Camera" msgstr "相機" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." -msgstr "只能包含字母、數字、空格、破折號及底線。長度必須至少 4 個字元,但不超過 32 個字元。" +msgstr "只能包含字母、數字、空格、破折號及底線。長度必須至少有 4 個字元,但不超過 32 個字元。" #: src/components/Menu/index.tsx:215 #: src/components/Prompt.tsx:119 #: src/components/Prompt.tsx:121 #: src/components/TagMenu/index.tsx:268 -#: src/view/com/composer/Composer.tsx:387 -#: src/view/com/composer/Composer.tsx:392 +#: src/screens/Deactivated.tsx:161 +#: src/view/com/composer/Composer.tsx:460 +#: src/view/com/composer/Composer.tsx:475 #: src/view/com/modals/ChangeEmail.tsx:213 #: src/view/com/modals/ChangeEmail.tsx:215 #: src/view/com/modals/ChangeHandle.tsx:148 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/modals/CreateOrEditList.tsx:358 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/modals/CreateOrEditList.tsx:344 #: src/view/com/modals/crop-image/CropImage.web.tsx:162 #: src/view/com/modals/EditImage.tsx:324 #: src/view/com/modals/EditProfile.tsx:250 @@ -682,23 +838,23 @@ msgstr "只能包含字母、數字、空格、破折號及底線。長度必須 #: src/view/com/modals/InAppBrowserConsent.tsx:80 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 -#: src/view/com/modals/Repost.tsx:88 #: src/view/com/modals/VerifyEmail.tsx:255 #: src/view/com/modals/VerifyEmail.tsx:261 -#: src/view/screens/Search/Search.tsx:674 -#: src/view/shell/desktop/Search.tsx:218 +#: src/view/com/util/post-ctrls/RepostButton.tsx:139 +#: src/view/screens/Search/Search.tsx:704 +#: src/view/shell/desktop/Search.tsx:219 msgid "Cancel" msgstr "取消" -#: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:155 -#: src/view/com/modals/DeleteAccount.tsx:233 +#: src/view/com/modals/CreateOrEditList.tsx:349 +#: src/view/com/modals/DeleteAccount.tsx:174 +#: src/view/com/modals/DeleteAccount.tsx:296 msgctxt "action" msgid "Cancel" msgstr "取消" -#: src/view/com/modals/DeleteAccount.tsx:151 -#: src/view/com/modals/DeleteAccount.tsx:229 +#: src/view/com/modals/DeleteAccount.tsx:170 +#: src/view/com/modals/DeleteAccount.tsx:292 msgid "Cancel account deletion" msgstr "取消刪除帳號" @@ -712,14 +868,18 @@ msgstr "取消圖片裁剪" #: src/view/com/modals/EditProfile.tsx:245 msgid "Cancel profile editing" -msgstr "取消編輯個人資料" +msgstr "取消編輯個人檔案" -#: src/view/com/modals/Repost.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.tsx:133 msgid "Cancel quote post" msgstr "取消引用貼文" -#: src/view/com/modals/ListAddRemoveUsers.tsx:87 -#: src/view/shell/desktop/Search.tsx:214 +#: src/screens/Deactivated.tsx:155 +msgid "Cancel reactivation and log out" +msgstr "取消重新啟用並登出" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:88 +#: src/view/shell/desktop/Search.tsx:215 msgid "Cancel search" msgstr "取消搜尋" @@ -731,17 +891,17 @@ msgstr "取消開啟網站連結" msgid "Change" msgstr "變更" -#: src/view/screens/Settings/index.tsx:362 +#: src/view/screens/Settings/index.tsx:373 msgctxt "action" msgid "Change" msgstr "變更" -#: src/view/screens/Settings/index.tsx:684 +#: src/view/screens/Settings/index.tsx:720 msgid "Change handle" msgstr "變更帳號代碼" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:695 +#: src/view/screens/Settings/index.tsx:731 msgid "Change Handle" msgstr "變更帳號代碼" @@ -749,12 +909,12 @@ msgstr "變更帳號代碼" msgid "Change my email" msgstr "變更我的電子郵件地址" -#: src/view/screens/Settings/index.tsx:729 +#: src/view/screens/Settings/index.tsx:765 msgid "Change password" msgstr "變更密碼" -#: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:740 +#: src/view/com/modals/ChangePassword.tsx:142 +#: src/view/screens/Settings/index.tsx:776 msgid "Change Password" msgstr "變更密碼" @@ -766,90 +926,113 @@ msgstr "變更貼文的發佈語言為 {0}" msgid "Change Your Email" msgstr "變更您的電子郵件地址" -#: src/Navigation.tsx:302 +#: src/Navigation.tsx:321 +#: src/view/shell/bottom-bar/BottomBar.tsx:204 +#: src/view/shell/desktop/LeftNav.tsx:302 msgid "Chat" -msgstr "私訊" +msgstr "對話" -#: src/components/dms/ConvoMenu.tsx:63 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Chat muted" -msgstr "" +msgstr "對話已靜音" -#: src/components/dms/ConvoMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:112 +#: src/components/dms/MessageMenu.tsx:81 +#: src/Navigation.tsx:326 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:640 msgid "Chat settings" -msgstr "" +msgstr "對話設定" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:649 +msgid "Chat Settings" +msgstr "對話設定" + +#: src/components/dms/ConvoMenu.tsx:84 msgid "Chat unmuted" -msgstr "" +msgstr "對話已解除靜音" -#: src/screens/Messages/Conversation/index.tsx:26 -#~ msgid "Chat with {chatId}" -#~ msgstr "與 {chatId} 對話" - -#: src/screens/Deactivated.tsx:78 -#: src/screens/Deactivated.tsx:82 +#: src/screens/SignupQueued.tsx:78 +#: src/screens/SignupQueued.tsx:82 msgid "Check my status" msgstr "檢查我的狀態" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:291 msgid "Check your email for a login code and enter it here." msgstr "在此輸入寄送至您電子郵件地址的驗證碼。" -#: src/view/com/modals/DeleteAccount.tsx:168 +#: src/view/com/modals/DeleteAccount.tsx:231 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "在下方輸入寄送至您電子郵件地址的驗證碼:" -#: src/view/com/modals/Threadgate.tsx:72 -msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "選擇「所有人」或「沒有人」" +#: src/screens/Onboarding/StepInterests/index.tsx:190 +msgid "Choose 3 or more:" +msgstr "選擇至少 3 個:" + +#: src/screens/Onboarding/StepInterests/index.tsx:325 +msgid "Choose at least {0} more" +msgstr "選擇至少 {0} 個" + +#: src/screens/StarterPack/Wizard/index.tsx:191 +msgid "Choose Feeds" +msgstr "選擇動態源" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:290 +msgid "Choose for me" +msgstr "為我選擇" + +#: src/screens/StarterPack/Wizard/index.tsx:187 +msgid "Choose People" +msgstr "選擇人物" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" msgstr "選擇服務" -#: src/screens/Onboarding/StepFinished.tsx:238 +#: src/screens/Onboarding/StepFinished.tsx:281 msgid "Choose the algorithms that power your custom feeds." msgstr "選擇提供您自定義動態的演算法。" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 msgid "Choose this color as your avatar" -msgstr "" +msgstr "選擇這個顏色作為您的頭像" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 -msgid "Choose your main feeds" -msgstr "選擇您的主要動態源" +#: src/components/dialogs/ThreadgateEditor.tsx:91 +#: src/components/dialogs/ThreadgateEditor.tsx:95 +msgid "Choose who can reply" +msgstr "選擇哪些人可以回覆" -#: src/screens/Signup/StepInfo/index.tsx:114 +#: src/screens/Signup/StepInfo/index.tsx:171 msgid "Choose your password" msgstr "選擇您的密碼" -#: src/view/screens/Settings/index.tsx:843 +#: src/view/screens/Settings/index.tsx:912 msgid "Clear all legacy storage data" -msgstr "清除所有殘存資料" +msgstr "清除所有遺留資料" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:915 msgid "Clear all legacy storage data (restart after this)" -msgstr "清除所有殘存資料(並重啟)" +msgstr "清除所有遺留資料(並重啟)" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:924 msgid "Clear all storage data" msgstr "清除所有資料" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:927 msgid "Clear all storage data (restart after this)" msgstr "清除所有資料(並重啟)" #: src/view/com/util/forms/SearchInput.tsx:88 -#: src/view/screens/Search/Search.tsx:796 +#: src/view/screens/Search/Search.tsx:824 msgid "Clear search query" msgstr "清除搜尋記錄" -#: src/view/screens/Settings/index.tsx:844 +#: src/view/screens/Settings/index.tsx:913 msgid "Clears all legacy storage data" msgstr "清除所有遺留資料" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:925 msgid "Clears all storage data" msgstr "清除所有資料" @@ -857,27 +1040,45 @@ msgstr "清除所有資料" msgid "click here" msgstr "點擊這裡" -#: src/screens/Feeds/NoFollowingFeed.tsx:46 -msgid "Click here to add one." -msgstr "" +#: src/view/com/modals/DeleteAccount.tsx:208 +msgid "Click here for more information on deactivating your account" +msgstr "點擊這裡以瞭解有關停用帳號的詳細資訊" + +#: src/view/com/modals/DeleteAccount.tsx:216 +msgid "Click here for more information." +msgstr "點擊這裡以瞭解更多資訊。" #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "點擊這裡以開啟 {tag} 的標籤選單" -#: src/screens/Onboarding/index.tsx:47 +#: src/components/dms/MessageItem.tsx:231 +msgid "Click to retry failed message" +msgstr "點擊以重試傳送訊息" + +#: src/screens/Onboarding/index.tsx:32 msgid "Climate" msgstr "氣象" -#: src/components/dialogs/GifSelect.tsx:300 -#: src/view/com/modals/ChangePassword.tsx:269 -#: src/view/com/modals/ChangePassword.tsx:272 -#: src/view/com/util/post-embeds/GifEmbed.tsx:185 +#: src/components/dms/ChatEmptyPill.tsx:39 +msgid "Clip 🐴 clop 🐴" +msgstr "達達的馬蹄🐴是美麗的錯誤🐴" + +#: src/components/dialogs/GifSelect.ios.tsx:250 +#: src/components/dialogs/GifSelect.tsx:268 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:261 +#: src/components/NewskieDialog.tsx:146 +#: src/components/NewskieDialog.tsx:153 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:129 +#: src/view/com/modals/ChangePassword.tsx:268 +#: src/view/com/modals/ChangePassword.tsx:271 +#: src/view/com/util/post-embeds/GifEmbed.tsx:195 msgid "Close" msgstr "關閉" -#: src/components/Dialog/index.web.tsx:111 -#: src/components/Dialog/index.web.tsx:246 +#: src/components/Dialog/index.web.tsx:116 +#: src/components/Dialog/index.web.tsx:254 msgid "Close active dialog" msgstr "關閉打開的對話框" @@ -889,11 +1090,12 @@ msgstr "關閉警告" msgid "Close bottom drawer" msgstr "關閉底欄" -#: src/components/dialogs/GifSelect.tsx:294 +#: src/components/dialogs/GifSelect.ios.tsx:244 +#: src/components/dialogs/GifSelect.tsx:262 msgid "Close dialog" msgstr "關閉對話框" -#: src/components/dialogs/GifSelect.tsx:150 +#: src/components/dialogs/GifSelect.tsx:161 msgid "Close GIF dialog" msgstr "關閉 GIF 對話框" @@ -905,6 +1107,10 @@ msgstr "關閉圖片" msgid "Close image viewer" msgstr "關閉圖片檢視器" +#: src/components/dms/MessagesNUX.tsx:162 +msgid "Close modal" +msgstr "關閉視窗" + #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" msgstr "關閉導覽頁腳" @@ -922,7 +1128,7 @@ msgstr "關閉底部導覽列" msgid "Closes password update alert" msgstr "關閉密碼更新警告" -#: src/view/com/composer/Composer.tsx:389 +#: src/view/com/composer/Composer.tsx:472 msgid "Closes post composer and discards post draft" msgstr "關閉貼文編輯頁並捨棄草稿" @@ -930,58 +1136,58 @@ msgstr "關閉貼文編輯頁並捨棄草稿" msgid "Closes viewer for header image" msgstr "關閉標題圖片檢視器" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:238 +msgid "Collapse list of users" +msgstr "折疊用戶清單" + +#: src/view/com/notifications/FeedItem.tsx:440 msgid "Collapses list of users for a given notification" msgstr "折疊指定通知的用戶清單" -#: src/screens/Onboarding/index.tsx:53 +#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/state.ts:82 msgid "Comedy" msgstr "喜劇" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/state.ts:83 msgid "Comics" msgstr "漫畫" -#: src/Navigation.tsx:248 +#: src/Navigation.tsx:267 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "社群守則" -#: src/screens/Onboarding/StepFinished.tsx:251 +#: src/screens/Onboarding/StepFinished.tsx:294 msgid "Complete onboarding and start using your account" msgstr "完成初始設定並開始使用您的帳號" -#: src/screens/Signup/index.tsx:168 +#: src/screens/Signup/index.tsx:139 msgid "Complete the challenge" msgstr "完成驗證" -#: src/view/com/composer/Composer.tsx:507 +#: src/view/com/composer/Composer.tsx:582 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "撰寫貼文的長度最多為 {MAX_GRAPHEME_LENGTH} 個字元" -#: src/view/com/composer/Prompt.tsx:24 +#: src/view/com/composer/Prompt.tsx:26 msgid "Compose reply" msgstr "撰寫回覆" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 -msgid "Configure content filtering setting for category: {0}" -msgstr "為以下類別配置內容過濾設定:{0}" - #: src/components/moderation/LabelPreference.tsx:81 msgid "Configure content filtering setting for category: {name}" msgstr "為 {name} 配置內容過濾設定" #: src/components/moderation/LabelPreference.tsx:244 msgid "Configured in <0>moderation settings." -msgstr "已在<0>限制設定中配置。" +msgstr "已在<0>內容管理設定中配置。" -#: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 +#: src/components/Prompt.tsx:165 #: src/view/com/modals/SelfLabel.tsx:155 #: src/view/com/modals/VerifyEmail.tsx:239 #: src/view/com/modals/VerifyEmail.tsx:241 -#: src/view/screens/PreferencesFollowingFeed.tsx:307 -#: src/view/screens/PreferencesThreads.tsx:159 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" @@ -996,66 +1202,62 @@ msgstr "確認更改" msgid "Confirm content language settings" msgstr "確認內容語言設定" -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:282 msgid "Confirm delete account" msgstr "確認刪除帳號" -#: src/screens/Moderation/index.tsx:301 +#: src/screens/Moderation/index.tsx:304 msgid "Confirm your age:" msgstr "確認您的年齡:" -#: src/screens/Moderation/index.tsx:292 +#: src/screens/Moderation/index.tsx:295 msgid "Confirm your birthdate" msgstr "確認您的出生日期" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:272 #: src/view/com/modals/ChangeEmail.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:175 -#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/DeleteAccount.tsx:238 +#: src/view/com/modals/DeleteAccount.tsx:244 #: src/view/com/modals/VerifyEmail.tsx:173 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "驗證碼" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:325 msgid "Connecting..." msgstr "連線中…" -#: src/screens/Signup/index.tsx:238 +#: src/screens/Signup/index.tsx:171 msgid "Contact support" msgstr "聯繫支援" -#: src/components/moderation/LabelsOnMe.tsx:42 -#~ msgid "content" -#~ msgstr "內容" - #: src/lib/moderation/useGlobalLabelStrings.ts:18 msgid "Content Blocked" msgstr "已封鎖內容" -#: src/screens/Moderation/index.tsx:285 +#: src/screens/Moderation/index.tsx:288 msgid "Content filters" msgstr "內容過濾" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 -#: src/view/screens/LanguageSettings.tsx:278 +#: src/view/screens/LanguageSettings.tsx:280 msgid "Content Languages" msgstr "內容語言" #: src/components/moderation/ModerationDetailsDialog.tsx:75 -#: src/lib/moderation/useModerationCauseDescription.ts:75 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "Content Not Available" -msgstr "內容不可用" +msgstr "無法查看此內容" #: src/components/moderation/ModerationDetailsDialog.tsx:46 #: src/components/moderation/ScreenHider.tsx:99 #: src/lib/moderation/useGlobalLabelStrings.ts:22 -#: src/lib/moderation/useModerationCauseDescription.ts:38 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Content Warning" msgstr "內容警告" -#: src/view/com/composer/labels/LabelsBtn.tsx:31 +#: src/view/com/composer/labels/LabelsBtn.tsx:32 msgid "Content warnings" msgstr "內容警告" @@ -1063,12 +1265,8 @@ msgstr "內容警告" msgid "Context menu backdrop, click to close the menu." msgstr "彈出式選單背景,點擊以關閉選單。" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 -#: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:263 -#: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:272 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:118 +#: src/screens/Onboarding/StepInterests/index.tsx:277 +#: src/screens/Onboarding/StepProfile/index.tsx:269 msgid "Continue" msgstr "繼續" @@ -1076,41 +1274,39 @@ msgstr "繼續" msgid "Continue as {0} (currently signed in)" msgstr "以 {0} 繼續 (目前已登入)" -#: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:260 -#: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:269 -#: src/screens/Onboarding/StepTopicalFeeds.tsx:115 -#: src/screens/Signup/index.tsx:213 +#: src/view/com/post-thread/PostThreadLoadMore.tsx:52 +msgid "Continue thread..." +msgstr "繼續載入討論串…" + +#: src/screens/Onboarding/StepInterests/index.tsx:274 +#: src/screens/Onboarding/StepProfile/index.tsx:266 +#: src/screens/Signup/BackNextButtons.tsx:59 msgid "Continue to next step" msgstr "繼續下一步" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:158 -msgid "Continue to the next step" -msgstr "繼續下一步" +#: src/screens/Messages/List/ChatListItem.tsx:154 +msgid "Conversation deleted" +msgstr "對話已刪除" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:199 -msgid "Continue to the next step without following any accounts" -msgstr "繼續下一步,不跟隨任何帳號" - -#: src/screens/Onboarding/index.tsx:56 +#: src/screens/Onboarding/index.tsx:41 msgid "Cooking" msgstr "烹飪" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "已複製" -#: src/view/screens/Settings/index.tsx:260 +#: src/view/screens/Settings/index.tsx:265 msgid "Copied build version to clipboard" msgstr "已複製建構版本號至剪貼簿" -#: src/components/dms/MessageMenu.tsx:53 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/components/dms/MessageMenu.tsx:57 +#: src/view/com/modals/AddAppPasswords.tsx:80 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 -#: src/view/com/util/forms/PostDropdownBtn.tsx:172 +#: src/view/com/util/forms/PostDropdownBtn.tsx:192 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:357 msgid "Copied to clipboard" msgstr "已複製至剪貼簿" @@ -1118,81 +1314,108 @@ msgstr "已複製至剪貼簿" msgid "Copied!" msgstr "已複製!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "複製應用程式專用密碼" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "複製" #: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" -msgstr "複製 {0}" +msgstr "複製{0}" #: src/components/dialogs/Embed.tsx:120 #: src/components/dialogs/Embed.tsx:139 msgid "Copy code" msgstr "複製程式碼" -#: src/view/screens/ProfileList.tsx:423 +#: src/components/StarterPack/ShareDialog.tsx:124 +msgid "Copy link" +msgstr "複製連結" + +#: src/components/StarterPack/ShareDialog.tsx:131 +msgid "Copy Link" +msgstr "複製連結" + +#: src/view/screens/ProfileList.tsx:428 msgid "Copy link to list" msgstr "複製列表連結" -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 msgid "Copy link to post" msgstr "複製貼文連結" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:110 +#: src/components/dms/MessageMenu.tsx:112 msgid "Copy message text" -msgstr "" +msgstr "複製訊息文字" -#: src/view/com/util/forms/PostDropdownBtn.tsx:256 -#: src/view/com/util/forms/PostDropdownBtn.tsx:258 +#: src/view/com/util/forms/PostDropdownBtn.tsx:288 +#: src/view/com/util/forms/PostDropdownBtn.tsx:290 msgid "Copy post text" msgstr "複製貼文文字" -#: src/Navigation.tsx:253 +#: src/components/StarterPack/QrCodeDialog.tsx:171 +msgid "Copy QR code" +msgstr "複製 QR Code" + +#: src/Navigation.tsx:272 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "著作權政策" -#: src/components/dms/ConvoMenu.tsx:80 +#: src/view/com/composer/videos/state.ts:31 +msgid "Could not compress video" +msgstr "無法壓縮影片" + +#: src/components/dms/LeaveConvoPrompt.tsx:39 msgid "Could not leave chat" -msgstr "" +msgstr "無法離開對話" -#: src/view/screens/ProfileFeed.tsx:102 +#: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" -msgstr "無法加載動態" +msgstr "無法載入動態" -#: src/view/screens/ProfileList.tsx:956 +#: src/view/screens/ProfileList.tsx:961 msgid "Could not load list" msgstr "無法載入列表" -#: src/components/dms/NewChat.tsx:241 -msgid "Could not load profiles. Please try again later." -msgstr "" - -#: src/components/dms/ConvoMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:88 msgid "Could not mute chat" -msgstr "" +msgstr "無法靜音對話" -#: src/components/dms/ConvoMenu.tsx:68 -#~ msgid "Could not unmute chat" -#~ msgstr "" +#: src/components/StarterPack/ProfileStarterPacks.tsx:272 +msgid "Create" +msgstr "建立" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 msgid "Create a new account" msgstr "建立新帳號" -#: src/view/screens/Settings/index.tsx:414 +#: src/view/screens/Settings/index.tsx:425 msgid "Create a new Bluesky account" msgstr "建立新的 Bluesky 帳號" -#: src/screens/Signup/index.tsx:141 +#: src/components/StarterPack/QrCodeDialog.tsx:154 +msgid "Create a QR code for a starter pack" +msgstr "為入門包建立 QR Code" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:165 +#: src/components/StarterPack/ProfileStarterPacks.tsx:259 +#: src/Navigation.tsx:351 +msgid "Create a starter pack" +msgstr "選擇一個入門包" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:246 +msgid "Create a starter pack for me" +msgstr "為我建立一個入門包" + +#: src/screens/Signup/index.tsx:88 msgid "Create Account" msgstr "建立帳號" @@ -1201,11 +1424,15 @@ msgstr "建立帳號" msgid "Create an account" msgstr "建立一個帳號" -#: src/screens/Onboarding/StepProfile/index.tsx:286 +#: src/screens/Onboarding/StepProfile/index.tsx:283 msgid "Create an avatar instead" -msgstr "" +msgstr "或是建立一個頭像" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/components/StarterPack/ProfileStarterPacks.tsx:172 +msgid "Create another" +msgstr "建立另外一個" + +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "建立應用程式專用密碼" @@ -1214,15 +1441,16 @@ msgstr "建立應用程式專用密碼" msgid "Create new account" msgstr "建立新帳號" -#: src/components/ReportDialog/SelectReportOptionView.tsx:100 +#: src/components/ReportDialog/SelectReportOptionView.tsx:101 msgid "Create report for {0}" msgstr "建立 {0} 的檢舉" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0} 已建立" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/state.ts:84 msgid "Culture" msgstr "文化" @@ -1235,17 +1463,17 @@ msgstr "自訂" msgid "Custom domain" msgstr "自訂網域" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:823 +#: src/view/screens/Feeds.tsx:760 +#: src/view/screens/Search/Explore.tsx:392 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." -msgstr "由社群打造的自訂動態帶來全新體驗,協助您找到所愛的內容。" +msgstr "由社群打造的自訂動態源帶來全新體驗,幫助您找到所愛的內容。" #: src/view/screens/PreferencesExternalEmbeds.tsx:56 msgid "Customize media from external sites." msgstr "自訂外部網站的媒體。" -#: src/view/screens/Settings/index.tsx:449 -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:460 +#: src/view/screens/Settings/index.tsx:486 msgid "Dark" msgstr "深色" @@ -1253,96 +1481,122 @@ msgstr "深色" msgid "Dark mode" msgstr "深色模式" -#: src/view/screens/Settings/index.tsx:462 +#: src/view/screens/Settings/index.tsx:473 msgid "Dark Theme" msgstr "深色主題" -#: src/screens/Signup/StepInfo/index.tsx:134 +#: src/screens/Signup/StepInfo/index.tsx:191 msgid "Date of birth" msgstr "出生日期" -#: src/view/screens/Settings/index.tsx:816 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:73 +#: src/view/screens/Settings/index.tsx:808 +msgid "Deactivate account" +msgstr "停用帳號" + +#: src/view/screens/Settings/index.tsx:820 +msgid "Deactivate my account" +msgstr "停用我的帳號" + +#: src/view/screens/Settings/index.tsx:875 msgid "Debug Moderation" -msgstr "限制偵錯" +msgstr "內容管理偵錯" #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "偵錯面板" -#: src/components/dms/MessageMenu.tsx:125 -#: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:662 +#: src/components/dms/MessageMenu.tsx:151 +#: src/screens/StarterPack/StarterPackScreen.tsx:562 +#: src/screens/StarterPack/StarterPackScreen.tsx:641 +#: src/screens/StarterPack/StarterPackScreen.tsx:721 +#: src/view/com/util/forms/PostDropdownBtn.tsx:436 +#: src/view/screens/AppPasswords.tsx:285 +#: src/view/screens/ProfileList.tsx:667 msgid "Delete" msgstr "刪除" -#: src/view/screens/Settings/index.tsx:771 +#: src/view/screens/Settings/index.tsx:830 msgid "Delete account" msgstr "刪除帳號" -#: src/view/com/modals/DeleteAccount.tsx:87 -#~ msgid "Delete Account" -#~ msgstr "刪除帳號" - -#: src/view/com/modals/DeleteAccount.tsx:86 +#: src/view/com/modals/DeleteAccount.tsx:105 msgid "Delete Account <0>\"<1>{0}<2>\"" -msgstr "" +msgstr "刪除帳號 <0>「<1>{0}<2>」" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "刪除應用程式專用密碼" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "刪除應用程式專用密碼?" -#: src/components/dms/MessageMenu.tsx:101 -msgid "Delete for me" -msgstr "" +#: src/view/screens/Settings/index.tsx:892 +#: src/view/screens/Settings/index.tsx:895 +msgid "Delete chat declaration record" +msgstr "刪除對話聲明紀錄" -#: src/view/screens/ProfileList.tsx:466 +#: src/components/dms/MessageMenu.tsx:124 +msgid "Delete for me" +msgstr "為我刪除" + +#: src/view/screens/ProfileList.tsx:471 msgid "Delete List" msgstr "刪除列表" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:147 msgid "Delete message" -msgstr "" +msgstr "刪除訊息" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:122 msgid "Delete message for me" -msgstr "" +msgstr "為我刪除訊息" -#: src/view/com/modals/DeleteAccount.tsx:222 +#: src/view/com/modals/DeleteAccount.tsx:285 msgid "Delete my account" msgstr "刪除我的帳號" -#: src/view/screens/Settings/index.tsx:783 +#: src/view/screens/Settings/index.tsx:842 msgid "Delete My Account…" msgstr "刪除我的帳號…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:375 +#: src/view/com/util/forms/PostDropdownBtn.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:419 msgid "Delete post" msgstr "刪除貼文" -#: src/view/screens/ProfileList.tsx:657 +#: src/screens/StarterPack/StarterPackScreen.tsx:556 +#: src/screens/StarterPack/StarterPackScreen.tsx:712 +msgid "Delete starter pack" +msgstr "刪除入門包" + +#: src/screens/StarterPack/StarterPackScreen.tsx:607 +msgid "Delete starter pack?" +msgstr "刪除入門包?" + +#: src/view/screens/ProfileList.tsx:662 msgid "Delete this list?" msgstr "刪除此列表?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:387 +#: src/view/com/util/forms/PostDropdownBtn.tsx:431 msgid "Delete this post?" msgstr "刪除這條貼文?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:80 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:84 msgid "Deleted" msgstr "已刪除" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:353 msgid "Deleted post." -msgstr "已刪除貼文。" +msgstr "已刪除的貼文。" -#: src/view/com/modals/CreateOrEditList.tsx:303 -#: src/view/com/modals/CreateOrEditList.tsx:324 +#: src/view/screens/Settings/index.tsx:893 +msgid "Deletes the chat declaration record" +msgstr "刪除對話聲明紀錄" + +#: src/view/com/modals/CreateOrEditList.tsx:289 +#: src/view/com/modals/CreateOrEditList.tsx:310 #: src/view/com/modals/EditProfile.tsx:199 #: src/view/com/modals/EditProfile.tsx:211 msgid "Description" @@ -1350,17 +1604,21 @@ msgstr "描述" #: src/view/com/composer/GifAltText.tsx:140 msgid "Descriptive alt text" -msgstr "" +msgstr "生動的替代文字" -#: src/view/com/composer/Composer.tsx:248 +#: src/view/com/composer/Composer.tsx:295 msgid "Did you want to say anything?" msgstr "有什麼想說的嗎?" -#: src/view/screens/Settings/index.tsx:468 +#: src/view/screens/Settings/index.tsx:479 msgid "Dim" msgstr "昏暗" -#: src/view/screens/AccessibilitySettings.tsx:94 +#: src/components/dms/MessagesNUX.tsx:88 +msgid "Direct messages are here!" +msgstr "私人訊息已推出!" + +#: src/view/screens/AccessibilitySettings.tsx:107 msgid "Disable autoplay for GIFs" msgstr "關閉 GIF 自動播放" @@ -1368,39 +1626,57 @@ msgstr "關閉 GIF 自動播放" msgid "Disable Email 2FA" msgstr "關閉電子郵件雙重驗證" -#: src/view/screens/AccessibilitySettings.tsx:108 +#: src/view/screens/AccessibilitySettings.tsx:121 msgid "Disable haptic feedback" msgstr "關閉觸覺回饋" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Moderation/index.tsx:341 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 +#: src/screens/Moderation/index.tsx:346 msgid "Disabled" msgstr "停用" -#: src/view/com/composer/Composer.tsx:575 +#: src/view/com/composer/Composer.tsx:682 msgid "Discard" msgstr "捨棄" -#: src/view/com/composer/Composer.tsx:572 +#: src/view/com/composer/Composer.tsx:679 msgid "Discard draft?" msgstr "捨棄草稿?" -#: src/screens/Moderation/index.tsx:518 -#: src/screens/Moderation/index.tsx:522 +#: src/screens/Moderation/index.tsx:542 +#: src/screens/Moderation/index.tsx:546 msgid "Discourage apps from showing my account to logged-out users" msgstr "阻撓應用程式向未登入用戶顯示我的帳號" -#: src/view/com/posts/FollowingEmptyState.tsx:74 -#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +#: src/tours/HomeTour.tsx:70 +msgid "Discover learns which posts you like as you browse." +msgstr "「Discover」動態源會在您瀏覽時瞭解您喜歡哪些貼文。" + +#: src/view/com/posts/FollowingEmptyState.tsx:70 +#: src/view/com/posts/FollowingEndOfFeed.tsx:71 msgid "Discover new custom feeds" msgstr "探索新的自訂動態源" -#: src/view/screens/Feeds.tsx:820 +#: src/view/screens/Search/Explore.tsx:390 +msgid "Discover new feeds" +msgstr "探索新的動態源" + +#: src/view/screens/Feeds.tsx:757 msgid "Discover New Feeds" msgstr "探索新的動態源" +#: src/components/ProgressGuide/List.tsx:40 +msgid "Dismiss getting started guide" +msgstr "跳過入門指南" + +#: src/view/screens/AccessibilitySettings.tsx:95 +msgid "Display larger alt text badges" +msgstr "顯示較大的替代文字標誌" + #: src/view/com/modals/EditProfile.tsx:193 msgid "Display name" msgstr "顯示名稱" @@ -1417,7 +1693,7 @@ msgstr "DNS 控制台" msgid "Does not include nudity." msgstr "不包含裸露內容。" -#: src/screens/Signup/StepHandle.tsx:105 +#: src/screens/Signup/StepHandle.tsx:156 msgid "Doesn't begin or end with a hyphen" msgstr "不以連字符開頭或結尾" @@ -1431,30 +1707,27 @@ msgstr "網域已驗證!" #: src/components/dialogs/BirthDateSettings.tsx:119 #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/components/forms/DateField/index.tsx:74 -#: src/components/forms/DateField/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/forms/DateField/index.tsx:77 +#: src/components/forms/DateField/index.tsx:83 +#: src/screens/Onboarding/StepProfile/index.tsx:322 #: src/screens/Onboarding/StepProfile/index.tsx:325 -#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 -#: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:310 +#: src/view/com/modals/ListAddRemoveUsers.tsx:143 msgid "Done" msgstr "完成" #: src/view/com/modals/EditImage.tsx:334 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/ListAddRemoveUsers.tsx:145 #: src/view/com/modals/SelfLabel.tsx:158 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 +#: src/view/com/modals/UserAddRemoveLists.tsx:108 +#: src/view/com/modals/UserAddRemoveLists.tsx:111 msgctxt "action" msgid "Done" msgstr "完成" @@ -1463,19 +1736,19 @@ msgstr "完成" msgid "Done{extraText}" msgstr "完成{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:78 -#: src/view/screens/Settings/ExportCarDialog.tsx:82 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:319 +msgid "Download Bluesky" +msgstr "下載 Bluesky" + +#: src/view/screens/Settings/ExportCarDialog.tsx:77 +#: src/view/screens/Settings/ExportCarDialog.tsx:81 msgid "Download CAR file" msgstr "下載 CAR 檔案" -#: src/view/com/composer/text-input/TextInput.web.tsx:261 +#: src/view/com/composer/text-input/TextInput.web.tsx:271 msgid "Drop to add images" msgstr "拖放即可新增圖片" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:120 -msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "受 Apple 政策限制,成人內容只能在完成註冊後在網頁端啟用。" - #: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "例如:alice" @@ -1496,19 +1769,19 @@ msgstr "例如:藝術家、愛狗人士和狂熱讀者。" msgid "E.g. artistic nudes." msgstr "例如:藝術裸露。" -#: src/view/com/modals/CreateOrEditList.tsx:286 +#: src/view/com/modals/CreateOrEditList.tsx:272 msgid "e.g. Great Posters" msgstr "例如:優秀的發文者" -#: src/view/com/modals/CreateOrEditList.tsx:287 +#: src/view/com/modals/CreateOrEditList.tsx:273 msgid "e.g. Spammers" msgstr "例如:垃圾內容製造者" -#: src/view/com/modals/CreateOrEditList.tsx:315 +#: src/view/com/modals/CreateOrEditList.tsx:301 msgid "e.g. The posters who never miss." msgstr "例如:絕對不容錯過的發文者。" -#: src/view/com/modals/CreateOrEditList.tsx:316 +#: src/view/com/modals/CreateOrEditList.tsx:302 msgid "e.g. Users that repeatedly reply with ads." msgstr "例如:多次張貼廣告的用戶。" @@ -1516,58 +1789,78 @@ msgstr "例如:多次張貼廣告的用戶。" msgid "Each code works once. You'll receive more invite codes periodically." msgstr "每個邀請碼僅能使用一次。您將定期收到更多的邀請碼。" +#: src/screens/StarterPack/StarterPackScreen.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:551 +#: src/screens/StarterPack/Wizard/index.tsx:558 +#: src/view/screens/Feeds.tsx:386 +#: src/view/screens/Feeds.tsx:454 +msgid "Edit" +msgstr "編輯" + #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" msgstr "編輯" -#: src/view/com/util/UserAvatar.tsx:310 +#: src/view/com/util/UserAvatar.tsx:337 #: src/view/com/util/UserBanner.tsx:92 msgid "Edit avatar" msgstr "編輯頭像" +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117 +msgid "Edit Feeds" +msgstr "編輯動態源" + #: src/view/com/composer/photos/Gallery.tsx:151 #: src/view/com/modals/EditImage.tsx:208 msgid "Edit image" msgstr "編輯圖片" -#: src/view/screens/ProfileList.tsx:454 +#: src/view/screens/ProfileList.tsx:459 msgid "Edit list details" msgstr "編輯列表詳情" -#: src/view/com/modals/CreateOrEditList.tsx:253 +#: src/view/com/modals/CreateOrEditList.tsx:239 msgid "Edit Moderation List" -msgstr "編輯限制列表" +msgstr "編輯內容管理列表" -#: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:494 -#: src/view/screens/SavedFeeds.tsx:92 +#: src/Navigation.tsx:282 +#: src/view/screens/Feeds.tsx:384 +#: src/view/screens/Feeds.tsx:452 +#: src/view/screens/SavedFeeds.tsx:93 msgid "Edit My Feeds" msgstr "編輯我的動態源" #: src/view/com/modals/EditProfile.tsx:153 msgid "Edit my profile" -msgstr "編輯我的個人資料" +msgstr "編輯我的個人檔案" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:168 +#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:115 +msgid "Edit People" +msgstr "編輯人物" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit profile" -msgstr "編輯個人資料" +msgstr "編輯個人檔案" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:187 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:182 msgid "Edit Profile" -msgstr "編輯個人資料" +msgstr "編輯個人檔案" -#: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:415 -msgid "Edit Saved Feeds" -msgstr "編輯已儲存的動態源" +#: src/screens/StarterPack/StarterPackScreen.tsx:543 +msgid "Edit starter pack" +msgstr "編輯入門包" -#: src/view/com/modals/CreateOrEditList.tsx:248 +#: src/view/com/modals/CreateOrEditList.tsx:234 msgid "Edit User List" msgstr "編輯用戶列表" +#: src/components/WhoCanReply.tsx:128 +msgid "Edit who can reply" +msgstr "編輯「誰可以回覆」" + #: src/view/com/modals/EditProfile.tsx:194 msgid "Edit your display name" msgstr "編輯您的顯示名稱" @@ -1576,11 +1869,20 @@ msgstr "編輯您的顯示名稱" msgid "Edit your profile description" msgstr "編輯您的帳號描述" -#: src/screens/Onboarding/index.tsx:46 +#: src/Navigation.tsx:356 +msgid "Edit your starter pack" +msgstr "編輯您的入門包" + +#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/state.ts:86 msgid "Education" msgstr "教育" -#: src/screens/Signup/StepInfo/index.tsx:80 +#: src/components/dialogs/ThreadgateEditor.tsx:98 +msgid "Either choose \"Everybody\" or \"Nobody\"" +msgstr "選擇「所有人」或「沒有人」" + +#: src/screens/Signup/StepInfo/index.tsx:143 #: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "電子郵件" @@ -1606,7 +1908,7 @@ msgstr "電子郵件已更新" msgid "Email verified" msgstr "電子郵件已驗證" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:351 msgid "Email:" msgstr "電子郵件:" @@ -1615,8 +1917,8 @@ msgid "Embed HTML code" msgstr "嵌入 HTML 程式碼" #: src/components/dialogs/Embed.tsx:97 -#: src/view/com/util/forms/PostDropdownBtn.tsx:283 -#: src/view/com/util/forms/PostDropdownBtn.tsx:285 +#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:329 msgid "Embed post" msgstr "嵌入貼文" @@ -1628,29 +1930,25 @@ msgstr "將這則貼文嵌入到您的網站。只需複製以下程式碼片段 msgid "Enable {0} only" msgstr "僅啟用 {0}" -#: src/screens/Moderation/index.tsx:329 +#: src/screens/Moderation/index.tsx:333 msgid "Enable adult content" msgstr "顯示成人內容" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:94 -msgid "Enable Adult Content" -msgstr "顯示成人內容" - -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 -msgid "Enable adult content in your feeds" -msgstr "允許在您的動態中出現成人內容" - #: src/components/dialogs/EmbedConsent.tsx:82 #: src/components/dialogs/EmbedConsent.tsx:89 msgid "Enable external media" msgstr "啟用外部媒體" -#: src/view/screens/PreferencesExternalEmbeds.tsx:76 +#: src/view/screens/PreferencesExternalEmbeds.tsx:73 msgid "Enable media players for" msgstr "啟用媒體播放器" -#: src/view/screens/PreferencesFollowingFeed.tsx:146 +#: src/view/screens/NotificationsSettings.tsx:65 +#: src/view/screens/NotificationsSettings.tsx:68 +msgid "Enable priority notifications" +msgstr "" + +#: src/view/screens/PreferencesFollowingFeed.tsx:145 msgid "Enable this setting to only see replies between people you follow." msgstr "啟用此設定將只顯示您跟隨的人之間的回覆。" @@ -1658,7 +1956,9 @@ msgstr "啟用此設定將只顯示您跟隨的人之間的回覆。" msgid "Enable this source only" msgstr "僅啟用此來源" -#: src/screens/Moderation/index.tsx:339 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 +#: src/screens/Moderation/index.tsx:344 msgid "Enabled" msgstr "啟用" @@ -1666,7 +1966,11 @@ msgstr "啟用" msgid "End of feed" msgstr "已經到底部啦!" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/tours/Tooltip.tsx:159 +msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip." +msgstr "入門指南已結束,沒有進一步的選項。若仍需取得更多選項請返回上一步,或點擊跳過。" + +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "輸入此應用程式專用密碼的名稱" @@ -1683,7 +1987,7 @@ msgstr "輸入文字或標籤" msgid "Enter Confirmation Code" msgstr "輸入驗證碼" -#: src/view/com/modals/ChangePassword.tsx:155 +#: src/view/com/modals/ChangePassword.tsx:154 msgid "Enter the code you received to change your password." msgstr "輸入您收到的驗證碼以更改密碼。" @@ -1700,7 +2004,7 @@ msgid "Enter your birth date" msgstr "輸入您的出生日期" #: src/screens/Login/ForgotPasswordForm.tsx:105 -#: src/screens/Signup/StepInfo/index.tsx:92 +#: src/screens/Signup/StepInfo/index.tsx:152 msgid "Enter your email address" msgstr "輸入您的電子郵件地址" @@ -1716,32 +2020,45 @@ msgstr "請在下方輸入您的新電子郵件地址。" msgid "Enter your username and password" msgstr "輸入您的用戶名稱和密碼" -#: src/view/screens/Settings/ExportCarDialog.tsx:47 +#: src/view/screens/Settings/ExportCarDialog.tsx:46 msgid "Error occurred while saving file" -msgstr "" +msgstr "儲存檔案時發生錯誤" -#: src/screens/Signup/StepCaptcha/index.tsx:51 +#: src/screens/Signup/StepCaptcha/index.tsx:54 msgid "Error receiving captcha response." msgstr "Captcha 給出了錯誤的回應。" -#: src/screens/Onboarding/StepInterests/index.tsx:202 -#: src/view/screens/Search/Search.tsx:108 +#: src/screens/Onboarding/StepInterests/index.tsx:216 +#: src/view/screens/Search/Search.tsx:116 msgid "Error:" msgstr "錯誤:" -#: src/view/com/modals/Threadgate.tsx:76 +#: src/components/dialogs/ThreadgateEditor.tsx:102 msgid "Everybody" msgstr "所有人" -#: src/lib/moderation/useReportOptions.ts:67 +#: src/components/WhoCanReply.tsx:69 +#: src/components/WhoCanReply.tsx:241 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Everybody can reply" +msgstr "所有人都可以回覆" + +#: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 +msgid "Everyone" +msgstr "所有人" + +#: src/lib/moderation/useReportOptions.ts:68 msgid "Excessive mentions or replies" msgstr "過多的提及或回覆" -#: src/lib/moderation/useReportOptions.ts:80 +#: src/lib/moderation/useReportOptions.ts:81 msgid "Excessive or unwanted messages" -msgstr "" +msgstr "過多或不受歡迎的訊息" -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:293 msgid "Exits account deletion process" msgstr "離開刪除帳號流程" @@ -1757,8 +2074,8 @@ msgstr "離開圖片裁剪流程" msgid "Exits image view" msgstr "離開圖片檢視器" -#: src/view/com/modals/ListAddRemoveUsers.tsx:88 -#: src/view/shell/desktop/Search.tsx:215 +#: src/view/com/modals/ListAddRemoveUsers.tsx:89 +#: src/view/shell/desktop/Search.tsx:216 msgid "Exits inputting search query" msgstr "退出輸入搜索查詢" @@ -1766,25 +2083,33 @@ msgstr "退出輸入搜索查詢" msgid "Expand alt text" msgstr "展開替代文字" +#: src/view/com/notifications/FeedItem.tsx:239 +msgid "Expand list of users" +msgstr "展開用戶清單" + #: src/view/com/composer/ComposerReplyTo.tsx:82 #: src/view/com/composer/ComposerReplyTo.tsx:85 msgid "Expand or collapse the full post you are replying to" msgstr "展開或摺疊您正在回覆的完整貼文" +#: src/view/screens/NotificationsSettings.tsx:83 +msgid "Experimental: When this preference is enabled, you'll only receive reply and quote notifications from users you follow. We'll continue to add more controls here over time." +msgstr "" + #: src/lib/moderation/useGlobalLabelStrings.ts:47 msgid "Explicit or potentially disturbing media." msgstr "露骨或可能令人不安的媒體內容。" #: src/lib/moderation/useGlobalLabelStrings.ts:35 msgid "Explicit sexual images." -msgstr "露骨的情色圖片。" +msgstr "露骨的色情圖片。" -#: src/view/screens/Settings/index.tsx:752 +#: src/view/screens/Settings/index.tsx:788 msgid "Export my data" msgstr "匯出我的資料" -#: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:763 +#: src/view/screens/Settings/ExportCarDialog.tsx:62 +#: src/view/screens/Settings/index.tsx:799 msgid "Export My Data" msgstr "匯出我的資料" @@ -1794,128 +2119,188 @@ msgid "External Media" msgstr "外部媒體" #: src/components/dialogs/EmbedConsent.tsx:71 -#: src/view/screens/PreferencesExternalEmbeds.tsx:67 +#: src/view/screens/PreferencesExternalEmbeds.tsx:64 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "外部媒體可能允許網站收集有關您和您裝置的資料。在您按下「播放」按鈕之前,不會傳送或請求任何資料。" -#: src/Navigation.tsx:282 +#: src/Navigation.tsx:301 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:645 +#: src/view/screens/Settings/index.tsx:681 msgid "External Media Preferences" msgstr "外部媒體偏好" -#: src/view/screens/Settings/index.tsx:636 +#: src/view/screens/Settings/index.tsx:672 msgid "External media settings" msgstr "外部媒體設定" -#: src/view/com/modals/AddAppPasswords.tsx:116 -#: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:119 +#: src/view/com/modals/AddAppPasswords.tsx:123 msgid "Failed to create app password." -msgstr "建立應用程式專用密碼失敗。" +msgstr "無法建立應用程式專用密碼。" -#: src/view/com/modals/CreateOrEditList.tsx:208 +#: src/screens/StarterPack/Wizard/index.tsx:230 +#: src/screens/StarterPack/Wizard/index.tsx:238 +msgid "Failed to create starter pack" +msgstr "無法建立入門包" + +#: src/view/com/modals/CreateOrEditList.tsx:194 msgid "Failed to create the list. Check your internet connection and try again." msgstr "無法建立列表。請檢查您的網路連線並重試。" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:73 msgid "Failed to delete message" -msgstr "" +msgstr "無法刪除訊息" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:152 msgid "Failed to delete post, please try again" -msgstr "無法刪除貼文,請重試" +msgstr "無法刪除貼文,請再試一次" -#: src/components/dialogs/GifSelect.tsx:200 +#: src/screens/StarterPack/StarterPackScreen.tsx:675 +msgid "Failed to delete starter pack" +msgstr "無法刪除入門包" + +#: src/view/screens/Search/Explore.tsx:428 +#: src/view/screens/Search/Explore.tsx:456 +msgid "Failed to load feeds preferences" +msgstr "無法載入動態源偏好" + +#: src/components/dialogs/GifSelect.ios.tsx:196 +#: src/components/dialogs/GifSelect.tsx:212 msgid "Failed to load GIFs" msgstr "無法載入 GIF" -#: src/screens/Messages/Conversation/MessageListError.tsx:28 -msgid "Failed to load past messages." -msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:23 +msgid "Failed to load past messages" +msgstr "無法載入過去的訊息" -#: src/view/com/lightbox/Lightbox.tsx:84 +#: src/view/screens/Search/Explore.tsx:421 +#: src/view/screens/Search/Explore.tsx:449 +msgid "Failed to load suggested feeds" +msgstr "無法載入建議的動態源" + +#: src/view/screens/Search/Explore.tsx:379 +msgid "Failed to load suggested follows" +msgstr "無法載入建議的跟隨者" + +#: src/view/com/lightbox/Lightbox.tsx:90 msgid "Failed to save image: {0}" msgstr "無法儲存圖片:{0}" -#: src/screens/Messages/Conversation/MessageListError.tsx:29 -msgid "Failed to send message(s)." +#: src/state/queries/notifications/settings.ts:39 +msgid "Failed to save notification preferences, please try again" msgstr "" -#: src/Navigation.tsx:203 +#: src/components/dms/MessageItem.tsx:224 +msgid "Failed to send" +msgstr "無法傳送" + +#: src/components/moderation/LabelsOnMeDialog.tsx:244 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:87 +msgid "Failed to submit appeal, please try again." +msgstr "無法提交申訴,請再試一次。" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:181 +msgid "Failed to toggle thread mute, please try again" +msgstr "無法將討論串設為靜音,請再試一次" + +#: src/components/FeedCard.tsx:269 +msgid "Failed to update feeds" +msgstr "無法更新動態" + +#: src/components/dms/MessagesNUX.tsx:60 +#: src/screens/Messages/Settings.tsx:35 +msgid "Failed to update settings" +msgstr "無法更新設定" + +#: src/Navigation.tsx:217 msgid "Feed" msgstr "動態" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/components/FeedCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:251 msgid "Feed by {0}" msgstr "{0} 建立的動態源" -#: src/view/screens/Feeds.tsx:735 -msgid "Feed offline" -msgstr "動態源已離線" +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Feed toggle" +msgstr "切換動態源" -#: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:344 +#: src/view/shell/desktop/RightNav.tsx:70 +#: src/view/shell/Drawer.tsx:332 msgid "Feedback" msgstr "意見回饋" -#: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:479 -#: src/view/screens/Feeds.tsx:595 -#: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:245 -#: src/view/shell/desktop/LeftNav.tsx:361 -#: src/view/shell/Drawer.tsx:492 -#: src/view/shell/Drawer.tsx:493 +#: src/Navigation.tsx:336 +#: src/screens/StarterPack/StarterPackScreen.tsx:171 +#: src/view/screens/Feeds.tsx:446 +#: src/view/screens/Feeds.tsx:551 +#: src/view/screens/Profile.tsx:213 +#: src/view/screens/Search/Search.tsx:375 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:483 +#: src/view/shell/Drawer.tsx:484 msgid "Feeds" msgstr "動態源" -#: src/view/screens/SavedFeeds.tsx:179 +#: src/view/screens/SavedFeeds.tsx:180 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." -msgstr "動態源是一種自訂演算法,使用者只需掌握一點開發技巧即可輕鬆構建。更多資訊請見 <0/>。" +msgstr "動態源是一種自訂演算法,使用者只需掌握一點開發技巧即可輕鬆構建。更多資訊請<0/>。" -#: src/screens/Onboarding/StepTopicalFeeds.tsx:80 -msgid "Feeds can be topical as well!" -msgstr "動態源也可以圍繞某些話題!" +#: src/components/FeedCard.tsx:266 +msgid "Feeds updated!" +msgstr "動態已更新!" #: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "檔案內容" -#: src/view/screens/Settings/ExportCarDialog.tsx:43 +#: src/view/screens/Settings/ExportCarDialog.tsx:42 msgid "File saved successfully!" -msgstr "" +msgstr "文件儲存成功!" #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" -msgstr "從動態源中篩選" +msgstr "動態源中的篩選" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 msgid "Finalizing" msgstr "正在完成" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 -#: src/view/com/posts/FollowingEmptyState.tsx:57 -#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +#: src/view/com/posts/FollowingEmptyState.tsx:53 +#: src/view/com/posts/FollowingEndOfFeed.tsx:54 msgid "Find accounts to follow" msgstr "尋找一些帳號來跟隨" -#: src/view/screens/Search/Search.tsx:462 +#: src/tours/HomeTour.tsx:88 +msgid "Find more feeds and accounts to follow in the Explore page." +msgstr "在探索頁面中尋找更多想要跟隨的動態源和帳號。" + +#: src/view/screens/Search/Search.tsx:439 msgid "Find posts and users on Bluesky" msgstr "在 Bluesky 上尋找貼文和用戶" -#: src/view/screens/PreferencesFollowingFeed.tsx:110 +#: src/view/screens/PreferencesFollowingFeed.tsx:108 msgid "Fine-tune the content you see on your Following feed." -msgstr "對跟隨的動態源中的內容進行微調。" +msgstr "調整您在「Following」動態源中所看到的內容。" -#: src/view/screens/PreferencesThreads.tsx:60 +#: src/view/screens/PreferencesThreads.tsx:54 msgid "Fine-tune the discussion threads." msgstr "微調討論串。" -#: src/screens/Onboarding/index.tsx:50 +#: src/screens/StarterPack/Wizard/index.tsx:192 +msgid "Finish" +msgstr "完成" + +#: src/tours/Tooltip.tsx:149 +msgid "Finish tour and begin using the application" +msgstr "完成導覽並開始使用程式" + +#: src/screens/Onboarding/index.tsx:35 msgid "Fitness" msgstr "健康" -#: src/screens/Onboarding/StepFinished.tsx:234 +#: src/screens/Onboarding/StepFinished.tsx:277 msgid "Flexible" msgstr "靈活" @@ -1928,108 +2313,152 @@ msgstr "水平翻轉" msgid "Flip vertically" msgstr "垂直翻轉" -#: src/components/ProfileHoverCard/index.web.tsx:409 -#: src/components/ProfileHoverCard/index.web.tsx:420 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#. User is not following this account, click to follow +#: src/components/ProfileCard.tsx:343 +#: src/components/ProfileHoverCard/index.web.tsx:446 +#: src/components/ProfileHoverCard/index.web.tsx:457 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:252 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" msgstr "跟隨" -#: src/view/com/profile/FollowButton.tsx:69 +#: src/view/com/profile/FollowButton.tsx:70 msgctxt "action" msgid "Follow" msgstr "跟隨" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:221 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:238 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "跟隨 {0}" -#: src/view/com/profile/ProfileMenu.tsx:242 -#: src/view/com/profile/ProfileMenu.tsx:253 +#: src/view/com/posts/AviFollowButton.tsx:71 +msgid "Follow {name}" +msgstr "跟隨 {name}" + +#: src/components/ProgressGuide/List.tsx:54 +msgid "Follow 7 accounts" +msgstr "跟隨 7 個帳號" + +#: src/view/com/profile/ProfileMenu.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:257 msgid "Follow Account" msgstr "跟隨帳號" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:187 -msgid "Follow All" -msgstr "跟隨所有" +#: src/screens/StarterPack/StarterPackScreen.tsx:405 +#: src/screens/StarterPack/StarterPackScreen.tsx:412 +msgid "Follow all" +msgstr "全部跟隨" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:144 msgid "Follow Back" -msgstr "回追蹤" +msgstr "回跟" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:182 -msgid "Follow selected accounts and continue to the next step" -msgstr "跟隨選擇的用戶並繼續下一步" +#: src/view/screens/Search/Explore.tsx:335 +msgid "Follow more accounts to get connected to your interests and build your network." +msgstr "跟隨更多帳號以瞭解您的興趣,並建立您的社群網路。" -#: src/view/com/profile/ProfileCard.tsx:226 -msgid "Followed by {0}" -msgstr "由 {0} 跟隨" +#: src/components/KnownFollowers.tsx:231 +msgid "Followed by <0>{0}" +msgstr "已被您跟隨的 <0>{0} 跟隨" -#: src/view/com/modals/Threadgate.tsx:98 +#: src/components/KnownFollowers.tsx:217 +msgid "Followed by <0>{0} and {1, plural, one {# other} other {# others}}" +msgstr "已被您跟隨的 <0>{0} 和{1, plural, one {其他 # 人跟隨} other {其他 # 人跟}}" + +#: src/components/KnownFollowers.tsx:204 +msgid "Followed by <0>{0} and <1>{1}" +msgstr "已被您跟隨的 <0>{0} 和 <1>{1} 跟隨" + +#: src/components/KnownFollowers.tsx:186 +msgid "Followed by <0>{0}, <1>{1}, and {2, plural, one {# other} other {# others}}" +msgstr "已被您跟隨的 <0>{0}, <1>{1} 和{2, plural, one {其他 # 人跟隨} other {其他 # 人跟隨}}" + +#: src/components/dialogs/ThreadgateEditor.tsx:124 msgid "Followed users" -msgstr "已跟隨的用戶" +msgstr "您跟隨的用戶" -#: src/view/screens/PreferencesFollowingFeed.tsx:153 +#: src/view/screens/PreferencesFollowingFeed.tsx:152 msgid "Followed users only" msgstr "僅限已跟隨的用戶" -#: src/view/com/notifications/FeedItem.tsx:164 +#: src/view/com/notifications/FeedItem.tsx:198 msgid "followed you" msgstr "已跟隨您" +#: src/view/com/notifications/FeedItem.tsx:196 +msgid "followed you back" +msgstr "已回跟您" + #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "跟隨者" -#: src/components/ProfileHoverCard/index.web.tsx:408 -#: src/components/ProfileHoverCard/index.web.tsx:419 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 +#: src/Navigation.tsx:185 +msgid "Followers of @{0} that you know" +msgstr "您所認識的這些人也跟隨了 @{0}" + +#: src/screens/Profile/KnownFollowers.tsx:108 +#: src/screens/Profile/KnownFollowers.tsx:118 +msgid "Followers you know" +msgstr "您也認識的跟隨者" + +#. User is following this account, click to unfollow +#: src/components/ProfileCard.tsx:337 +#: src/components/ProfileHoverCard/index.web.tsx:445 +#: src/components/ProfileHoverCard/index.web.tsx:456 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:250 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 -#: src/view/screens/Feeds.tsx:682 +#: src/view/screens/Feeds.tsx:631 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:413 +#: src/view/screens/SavedFeeds.tsx:415 msgid "Following" msgstr "跟隨中" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:91 +#: src/components/ProfileCard.tsx:303 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 msgid "Following {0}" -msgstr "跟隨中:{0}" +msgstr "已跟隨 {0}" -#: src/view/screens/Settings/index.tsx:564 +#: src/view/com/posts/AviFollowButton.tsx:53 +msgid "Following {name}" +msgstr "已跟隨 {name}" + +#: src/view/screens/Settings/index.tsx:575 msgid "Following feed preferences" -msgstr "跟隨動態源偏好" +msgstr "「Following」動態源偏好" -#: src/Navigation.tsx:269 -#: src/view/com/home/HomeHeaderLayout.web.tsx:64 -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:573 +#: src/Navigation.tsx:288 +#: src/view/screens/PreferencesFollowingFeed.tsx:105 +#: src/view/screens/Settings/index.tsx:584 msgid "Following Feed Preferences" -msgstr "跟隨動態源偏好" +msgstr "「Following」動態源偏好" -#: src/screens/Profile/Header/Handle.tsx:24 +#: src/tours/HomeTour.tsx:59 +msgid "Following shows the latest posts from people you follow." +msgstr "「Following」動態源顯示您跟隨用戶的最新貼文。" + +#: src/screens/Profile/Header/Handle.tsx:31 msgid "Follows you" msgstr "跟隨您" -#: src/view/com/profile/ProfileCard.tsx:151 +#: src/components/Pills.tsx:165 msgid "Follows You" msgstr "跟隨您" -#: src/screens/Onboarding/index.tsx:55 +#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/state.ts:87 msgid "Food" msgstr "食物" -#: src/view/com/modals/DeleteAccount.tsx:110 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "為了保護您的帳號安全,我們需要將驗證碼發送到您的電子郵件地址。" -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "為了保護您的帳號安全,您將無法再次查看此內容。如果您丟失了此密碼,您將需要再產生一個新的密碼。" @@ -2038,15 +2467,15 @@ msgstr "為了保護您的帳號安全,您將無法再次查看此內容。如 msgid "Forgot Password" msgstr "忘記密碼" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:246 msgid "Forgot password?" msgstr "忘記密碼?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:257 msgid "Forgot?" -msgstr "忘記?" +msgstr "忘記了?" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Frequently Posts Unwanted Content" msgstr "頻繁發佈不當內容" @@ -2054,7 +2483,7 @@ msgstr "頻繁發佈不當內容" msgid "From @{sanitizedAuthor}" msgstr "來自 @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:242 msgctxt "from-feed" msgid "From <0/>" msgstr "來自 <0/>" @@ -2063,48 +2492,73 @@ msgstr "來自 <0/>" msgid "Gallery" msgstr "相簿" +#: src/components/StarterPack/ProfileStarterPacks.tsx:279 +msgid "Generate a starter pack" +msgstr "建立入門包" + +#: src/view/shell/Drawer.tsx:336 +msgid "Get help" +msgstr "取得幫助" + +#: src/components/dms/MessagesNUX.tsx:168 +msgid "Get started" +msgstr "開始" + #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "開始" -#: src/screens/Onboarding/StepProfile/index.tsx:228 -msgid "Give your profile a face" -msgstr "" +#: src/components/ProgressGuide/List.tsx:33 +msgid "Getting started" +msgstr "開始吧" -#: src/lib/moderation/useReportOptions.ts:38 +#: src/view/com/util/images/ImageHorzList.tsx:35 +msgid "GIF" +msgstr "GIF" + +#: src/screens/Onboarding/StepProfile/index.tsx:225 +msgid "Give your profile a face" +msgstr "為您的個人檔案增添新顏" + +#: src/lib/moderation/useReportOptions.ts:39 msgid "Glaring violations of law or terms of service" msgstr "明顯違反法律或服務條款" #: src/components/moderation/ScreenHider.tsx:151 #: src/components/moderation/ScreenHider.tsx:160 -#: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/auth/LoggedOut.tsx:83 +#: src/view/com/auth/LoggedOut.tsx:80 +#: src/view/com/auth/LoggedOut.tsx:81 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:965 -#: src/view/shell/desktop/LeftNav.tsx:126 +#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileList.tsx:970 +#: src/view/shell/desktop/LeftNav.tsx:134 msgid "Go back" msgstr "返回" #: src/components/Error.tsx:103 #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 +#: src/screens/StarterPack/StarterPackScreen.tsx:734 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:116 -#: src/view/screens/ProfileList.tsx:970 +#: src/view/screens/ProfileFeed.tsx:117 +#: src/view/screens/ProfileList.tsx:975 msgid "Go Back" msgstr "返回" -#: src/components/dms/MessageReportDialog.tsx:130 -#: src/components/ReportDialog/SelectReportOptionView.tsx:79 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/dms/ReportDialog.tsx:154 +#: src/components/ReportDialog/SelectReportOptionView.tsx:80 +#: src/components/ReportDialog/SubmitView.tsx:121 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 -#: src/screens/Signup/index.tsx:187 +#: src/screens/Signup/BackNextButtons.tsx:34 msgid "Go back to previous step" msgstr "返回上一步" +#: src/screens/StarterPack/Wizard/index.tsx:300 +msgid "Go back to the previous step" +msgstr "返回上一步" + #: src/view/screens/NotFound.tsx:55 msgid "Go home" msgstr "前往首頁" @@ -2113,141 +2567,140 @@ msgstr "前往首頁" msgid "Go Home" msgstr "前往首頁" +#: src/screens/Messages/List/ChatListItem.tsx:211 +msgid "Go to conversation with {0}" +msgstr "與 {0} 對話" + #: src/screens/Login/ForgotPasswordForm.tsx:172 -#: src/view/com/modals/ChangePassword.tsx:169 +#: src/view/com/modals/ChangePassword.tsx:168 msgid "Go to next" msgstr "前往下一步" -#: src/components/dms/ConvoMenu.tsx:131 +#: src/components/dms/ConvoMenu.tsx:167 msgid "Go to profile" -msgstr "" +msgstr "前往個人檔案" -#: src/components/dms/ConvoMenu.tsx:128 +#: src/tours/Tooltip.tsx:138 +msgid "Go to the next step of the tour" +msgstr "前往導覽的下一步" + +#: src/components/dms/ConvoMenu.tsx:164 msgid "Go to user's profile" -msgstr "" +msgstr "前往用戶的個人檔案" #: src/lib/moderation/useGlobalLabelStrings.ts:46 msgid "Graphic Media" -msgstr "影像媒體" +msgstr "敏感媒體" + +#: src/state/shell/progress-guide.tsx:166 +msgid "Half way there!" +msgstr "已經完成一半了!" #: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "帳號代碼" -#: src/view/screens/AccessibilitySettings.tsx:103 +#: src/view/screens/AccessibilitySettings.tsx:116 msgid "Haptics" msgstr "觸覺" -#: src/lib/moderation/useReportOptions.ts:33 +#: src/lib/moderation/useReportOptions.ts:34 msgid "Harassment, trolling, or intolerance" msgstr "騷擾、惡作劇或其他無法容忍的行為" -#: src/Navigation.tsx:297 +#: src/Navigation.tsx:316 msgid "Hashtag" msgstr "標籤" -#: src/components/RichText.tsx:217 +#: src/components/RichText.tsx:218 msgid "Hashtag: #{tag}" msgstr "標籤:#{tag}" -#: src/screens/Signup/index.tsx:234 +#: src/screens/Signup/index.tsx:167 msgid "Having trouble?" msgstr "遇到問題?" -#: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:354 +#: src/view/shell/desktop/RightNav.tsx:99 +#: src/view/shell/Drawer.tsx:345 msgid "Help" msgstr "幫助" -#: src/screens/Onboarding/StepProfile/index.tsx:231 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." -msgstr "" +msgstr "透過上傳圖片或建立頭像來幫助人們知道您不是機器人。" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 -msgid "Here are some accounts for you to follow" -msgstr "這裡有一些您可以跟隨的帳號" - -#: src/screens/Onboarding/StepTopicalFeeds.tsx:89 -msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "這裡有一些熱門的話題動態源。跟隨的動態源數量沒有限制。" - -#: src/screens/Onboarding/StepTopicalFeeds.tsx:84 -msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "這裡有一些根據您的興趣({interestsText})所推薦的熱門話題動態源。跟隨的動態源數量沒有限制。" - -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "這是您的應用程式專用密碼。" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:122 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 #: src/lib/moderation/useLabelBehaviorDescription.ts:30 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 -#: src/view/com/util/forms/PostDropdownBtn.tsx:401 +#: src/view/com/util/forms/PostDropdownBtn.tsx:445 msgid "Hide" msgstr "隱藏" -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:447 msgctxt "action" msgid "Hide" msgstr "隱藏" -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -#: src/view/com/util/forms/PostDropdownBtn.tsx:348 +#: src/view/com/util/forms/PostDropdownBtn.tsx:390 +#: src/view/com/util/forms/PostDropdownBtn.tsx:392 msgid "Hide post" msgstr "隱藏貼文" -#: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:79 msgid "Hide the content" msgstr "隱藏內容" -#: src/view/com/util/forms/PostDropdownBtn.tsx:398 +#: src/view/com/util/forms/PostDropdownBtn.tsx:442 msgid "Hide this post?" msgstr "隱藏這則貼文?" -#: src/view/com/notifications/FeedItem.tsx:317 +#: src/view/com/notifications/FeedItem.tsx:438 msgid "Hide user list" msgstr "隱藏用戶列表" -#: src/view/com/posts/FeedErrorMessage.tsx:118 +#: src/view/com/posts/FeedErrorMessage.tsx:117 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." -msgstr "唔,與動態源的伺服器連線時發生了某種問題。請告訴該動態源的擁有者這個問題。" +msgstr "抱歉,與動態源的伺服器連線時發生了某種問題。請向該動態源的擁有者報告這個問題。" -#: src/view/com/posts/FeedErrorMessage.tsx:106 +#: src/view/com/posts/FeedErrorMessage.tsx:105 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." -msgstr "唔,動態源的伺服器似乎設定錯誤。請告訴該動態源的擁有者這個問題。" +msgstr "抱歉,動態源的伺服器似乎設定錯誤。請向該動態源的擁有者報告這個問題。" -#: src/view/com/posts/FeedErrorMessage.tsx:112 +#: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." -msgstr "唔,動態源的伺服器似乎已離線。請告訴該動態源的擁有者這個問題。" +msgstr "抱歉,動態源的伺服器似乎已離線。請向該動態源的擁有者報告這個問題。" -#: src/view/com/posts/FeedErrorMessage.tsx:109 +#: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." -msgstr "唔,動態源的伺服器給出了錯誤的回應。請告訴該動態源的擁有者這個問題。" +msgstr "抱歉,動態源的伺服器給出了錯誤的回應。請向該動態源的擁有者報告這個問題。" -#: src/view/com/posts/FeedErrorMessage.tsx:103 +#: src/view/com/posts/FeedErrorMessage.tsx:102 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." -msgstr "唔,我們無法找到這個動態源,它可能已被刪除。" +msgstr "抱歉,我們無法找到這個動態源,它可能已被刪除。" -#: src/screens/Moderation/index.tsx:59 +#: src/screens/Moderation/index.tsx:60 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." -msgstr "唔,看起來我們在載入這些資料時遇到了問題,請參閱下方詳情。如果問題持續存在,請聯繫我們。" +msgstr "抱歉,看起來我們在載入這些資料時遇到了問題,請參閱下方詳情。如果問題持續存在,請聯繫我們。" #: src/screens/Profile/ErrorState.tsx:31 msgid "Hmmmm, we couldn't load that moderation service." -msgstr "唔,我們無法載入該限制服務。" +msgstr "抱歉,我們無法載入該內容管理服務。" -#: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:176 -#: src/view/shell/desktop/LeftNav.tsx:321 -#: src/view/shell/Drawer.tsx:424 -#: src/view/shell/Drawer.tsx:425 +#: src/Navigation.tsx:532 +#: src/Navigation.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:160 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:415 +#: src/view/shell/Drawer.tsx:416 msgid "Home" msgstr "首頁" @@ -2256,8 +2709,8 @@ msgid "Host:" msgstr "主機:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 -#: src/screens/Signup/StepInfo/index.tsx:40 +#: src/screens/Login/LoginForm.tsx:180 +#: src/screens/Signup/StepInfo/index.tsx:106 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "託管服務供應商" @@ -2280,9 +2733,10 @@ msgstr "我有驗證碼" msgid "I have my own domain" msgstr "我擁有自己的網域" -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/BlockedByListDialog.tsx:56 +#: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" -msgstr "" +msgstr "我瞭解" #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" @@ -2296,43 +2750,55 @@ msgstr "若不勾選,則預設為全年齡向。" msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "如果根據您所在國家的法律,您尚未成年,則您的父母或法定監護人必須代表您閱讀這些條款。" -#: src/view/screens/ProfileList.tsx:659 +#: src/view/screens/ProfileList.tsx:664 msgid "If you delete this list, you won't be able to recover it." msgstr "如果刪除這個列表,您將無法恢復它。" -#: src/view/com/util/forms/PostDropdownBtn.tsx:389 +#: src/view/com/util/forms/PostDropdownBtn.tsx:433 msgid "If you remove this post, you won't be able to recover it." msgstr "如果刪除這則貼文,您將無法恢復它。" -#: src/view/com/modals/ChangePassword.tsx:150 +#: src/view/com/modals/ChangePassword.tsx:149 msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "如果您想更改密碼,我們將向您發送一個驗證碼以確認這是您的帳號。" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:92 +msgid "If you're trying to change your handle or email, do so before you deactivate." +msgstr "如果您想更改帳號代碼或電子郵件,請在停用帳號前更改。" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Illegal and Urgent" msgstr "違法" -#: src/view/com/util/images/Gallery.tsx:39 +#: src/view/com/util/images/Gallery.tsx:42 msgid "Image" msgstr "圖片" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "圖片替代文字" -#: src/lib/moderation/useReportOptions.ts:48 +#: src/components/StarterPack/ShareDialog.tsx:76 +msgid "Image saved to your camera roll!" +msgstr "圖片已儲存至您的圖片庫!" + +#: src/lib/moderation/useReportOptions.ts:49 msgid "Impersonation or false claims about identity or affiliation" msgstr "冒充或虛假聲明身份或隸屬關係" +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Inappropriate messages or explicit links" +msgstr "不當訊息或露骨連結" + #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" msgstr "輸入發送到您電子郵件地址的重設碼以重設密碼" -#: src/view/com/modals/DeleteAccount.tsx:183 +#: src/view/com/modals/DeleteAccount.tsx:246 msgid "Input confirmation code for account deletion" msgstr "輸入刪除帳號的驗證碼" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "輸入應用程式專用密碼名稱" @@ -2340,23 +2806,19 @@ msgstr "輸入應用程式專用密碼名稱" msgid "Input new password" msgstr "輸入新密碼" -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:265 msgid "Input password for account deletion" msgstr "輸入密碼以刪除帳號" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:286 msgid "Input the code which has been emailed to you" msgstr "輸入寄送至您電子郵件地址的驗證碼" #: src/screens/Login/LoginForm.tsx:215 -msgid "Input the password tied to {identifier}" -msgstr "輸入與 {identifier} 關聯的密碼" - -#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "輸入註冊時使用的用戶名稱或電子郵件地址" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:241 msgid "Input your password" msgstr "輸入您的密碼" @@ -2364,20 +2826,24 @@ msgstr "輸入您的密碼" msgid "Input your preferred hosting provider" msgstr "輸入您的託管服務供應商" -#: src/screens/Signup/StepHandle.tsx:63 +#: src/screens/Signup/StepHandle.tsx:111 msgid "Input your user handle" msgstr "輸入您的帳號代碼" -#: src/screens/Login/LoginForm.tsx:129 +#: src/components/dms/MessagesNUX.tsx:82 +msgid "Introducing Direct Messages" +msgstr "為您隆重介紹「私人訊息」" + +#: src/screens/Login/LoginForm.tsx:140 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "無效的雙重驗證碼。" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:236 msgid "Invalid or unsupported post record" msgstr "無效或不支援的貼文紀錄" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:145 msgid "Invalid username or password" msgstr "用戶名稱或密碼無效" @@ -2385,11 +2851,11 @@ msgstr "用戶名稱或密碼無效" msgid "Invite a Friend" msgstr "邀請朋友" -#: src/screens/Signup/StepInfo/index.tsx:58 +#: src/screens/Signup/StepInfo/index.tsx:124 msgid "Invite code" msgstr "邀請碼" -#: src/screens/Signup/state.ts:272 +#: src/screens/Signup/state.ts:251 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "邀請碼無效。請檢查您輸入的內容是否正確,然後重試。" @@ -2401,69 +2867,85 @@ msgstr "邀請碼:{0} 個可用" msgid "Invite codes: 1 available" msgstr "邀請碼:1 個可用" -#: src/screens/Onboarding/StepFollowingFeed.tsx:65 -msgid "It shows posts from the people you follow as they happen." -msgstr "它會即時顯示您所跟隨的人發佈的貼文。" +#: src/components/StarterPack/ShareDialog.tsx:97 +msgid "Invite people to this starter pack!" +msgstr "用這個入門包來邀請他人!" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:35 +msgid "Invite your friends to follow your favorite feeds and people" +msgstr "邀請您的朋友跟隨您喜歡的動態源和人物" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:32 +msgid "Invites, but personal" +msgstr "邀請,但僅限個人" + +#: src/screens/StarterPack/Wizard/index.tsx:452 +msgid "It's just you right now! Add more people to your starter pack by searching above." +msgstr "現在只有您一個人!使用上面的搜尋功能,將更多人加入到您的入門包中。" #: src/view/com/auth/SplashScreen.web.tsx:157 msgid "Jobs" msgstr "工作" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:201 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:207 +#: src/screens/StarterPack/StarterPackScreen.tsx:432 +#: src/screens/StarterPack/StarterPackScreen.tsx:443 +msgid "Join Bluesky" +msgstr "加入 Bluesky" + +#: src/components/StarterPack/QrCode.tsx:56 +msgid "Join the conversation" +msgstr "加入對話" + +#: src/screens/Onboarding/index.tsx:21 +#: src/screens/Onboarding/state.ts:89 msgid "Journalism" msgstr "新聞學" -#: src/components/moderation/LabelsOnMe.tsx:59 -#~ msgid "label has been placed on this {labelTarget}" -#~ msgstr "此標記已放置於 {labelTarget} 上" - -#: src/components/moderation/ContentHider.tsx:144 +#: src/components/moderation/ContentHider.tsx:147 msgid "Labeled by {0}." msgstr "由 {0} 標記。" -#: src/components/moderation/ContentHider.tsx:142 +#: src/components/moderation/ContentHider.tsx:145 msgid "Labeled by the author." msgstr "由作者標記。" -#: src/view/screens/Profile.tsx:191 +#: src/view/screens/Profile.tsx:207 msgid "Labels" msgstr "標記" -#: src/screens/Profile/Sections/Labels.tsx:156 +#: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "標記是對用戶和內容的標註,可用於隱藏、警告和對網路進行分類。" -#: src/components/moderation/LabelsOnMe.tsx:61 -#~ msgid "labels have been placed on this {labelTarget}" -#~ msgstr "此標記已放置於 {labelTarget} 上" - -#: src/components/moderation/LabelsOnMeDialog.tsx:77 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" -msgstr "您帳戶上的標記" +msgstr "您帳號上的標記" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "您內容上的標記" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:105 msgid "Language selection" msgstr "語言選擇" -#: src/view/screens/Settings/index.tsx:521 +#: src/view/screens/Settings/index.tsx:532 msgid "Language settings" msgstr "語言設定" -#: src/Navigation.tsx:151 -#: src/view/screens/LanguageSettings.tsx:89 +#: src/Navigation.tsx:158 +#: src/view/screens/LanguageSettings.tsx:90 msgid "Language Settings" msgstr "語言設定" -#: src/view/screens/Settings/index.tsx:530 +#: src/view/screens/Settings/index.tsx:541 msgid "Languages" msgstr "語言" #: src/screens/Hashtag.tsx:99 -#: src/view/screens/Search/Search.tsx:369 +#: src/view/screens/Search/Search.tsx:359 msgid "Latest" msgstr "最新" @@ -2471,33 +2953,40 @@ msgstr "最新" msgid "Learn More" msgstr "瞭解詳情" -#: src/components/moderation/ContentHider.tsx:65 -#: src/components/moderation/ContentHider.tsx:128 +#: src/components/moderation/ContentHider.tsx:66 +#: src/components/moderation/ContentHider.tsx:131 msgid "Learn more about the moderation applied to this content." -msgstr "詳細了解套用於此內容的限制。" +msgstr "詳細瞭解套用於此內容的內容管理。" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:100 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "瞭解有關此警告的更多資訊" -#: src/screens/Moderation/index.tsx:549 +#: src/screens/Moderation/index.tsx:573 msgid "Learn more about what is public on Bluesky." msgstr "瞭解有關 Bluesky 上公開內容的更多資訊。" -#: src/components/moderation/ContentHider.tsx:152 +#: src/components/moderation/ContentHider.tsx:155 msgid "Learn more." msgstr "瞭解詳情。" -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" -msgstr "" +msgstr "離開" -#: src/components/dms/ConvoMenu.tsx:174 -#: src/components/dms/ConvoMenu.tsx:177 -#: src/components/dms/ConvoMenu.tsx:187 +#: src/components/dms/MessagesListBlockedFooter.tsx:66 +#: src/components/dms/MessagesListBlockedFooter.tsx:73 +msgid "Leave chat" +msgstr "離開對話" + +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:141 +#: src/components/dms/ConvoMenu.tsx:208 +#: src/components/dms/ConvoMenu.tsx:211 +#: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" -msgstr "" +msgstr "離開對話" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." @@ -2507,131 +2996,144 @@ msgstr "全部留空以查看所有語言。" msgid "Leaving Bluesky" msgstr "離開 Bluesky" -#: src/screens/Deactivated.tsx:134 +#: src/screens/SignupQueued.tsx:134 msgid "left to go." -msgstr "尚未完成。" +msgstr "個人在排在您前面。" -#: src/view/screens/Settings/index.tsx:305 +#: src/view/screens/Settings/index.tsx:310 msgid "Legacy storage cleared, you need to restart the app now." msgstr "遺留資料已清除,您需要立即重新啟動應用程式。" +#: src/components/StarterPack/ProfileStarterPacks.tsx:295 +msgid "Let me choose" +msgstr "讓我選擇" + #: src/screens/Login/index.tsx:130 #: src/screens/Login/index.tsx:145 msgid "Let's get your password reset!" msgstr "讓我們來重設您的密碼吧!" -#: src/screens/Onboarding/StepFinished.tsx:254 +#: src/screens/Onboarding/StepFinished.tsx:297 +#: src/tours/Tooltip.tsx:151 msgid "Let's go!" msgstr "讓我們開始吧!" -#: src/view/screens/Settings/index.tsx:443 +#: src/view/screens/Settings/index.tsx:454 msgid "Light" msgstr "亮色" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:197 -#~ msgid "Like" -#~ msgstr "喜歡" +#: src/components/ProgressGuide/List.tsx:48 +msgid "Like 10 posts" +msgstr "喜歡 10 個貼文" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:570 +#: src/state/shell/progress-guide.tsx:162 +#: src/state/shell/progress-guide.tsx:167 +msgid "Like 10 posts to train the Discover feed" +msgstr "喜歡 10 個貼文以訓練「Discover」動態源" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Like this feed" -msgstr "對這個動態源按喜歡" +msgstr "對這個動態源表示喜歡" #: src/components/LikesDialog.tsx:87 -#: src/Navigation.tsx:208 -#: src/Navigation.tsx:213 +#: src/Navigation.tsx:222 +#: src/Navigation.tsx:227 msgid "Liked by" -msgstr "按喜歡的用戶" +msgstr "表示喜歡的用戶" #: src/screens/Profile/ProfileLabelerLikedBy.tsx:29 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" -msgstr "按喜歡的用戶" +msgstr "表示喜歡的用戶" -#: src/view/com/feeds/FeedSourceCard.tsx:268 -#~ msgid "Liked by {0} {1}" -#~ msgstr "{0} 個 {1} 喜歡" - -#: src/components/LabelingServiceCard/index.tsx:72 -#~ msgid "Liked by {count} {0}" -#~ msgstr "{count} 個 {0} 喜歡" - -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:287 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:301 -#: src/view/screens/ProfileFeed.tsx:600 -#~ msgid "Liked by {likeCount} {0}" -#~ msgstr "{likeCount} 個 {0} 喜歡" - -#: src/view/com/notifications/FeedItem.tsx:168 +#: src/view/com/notifications/FeedItem.tsx:202 msgid "liked your custom feed" -msgstr "已按喜歡您的自訂動態流" +msgstr "對您的自訂動態源表示喜歡" -#: src/view/com/notifications/FeedItem.tsx:153 +#: src/view/com/notifications/FeedItem.tsx:186 msgid "liked your post" -msgstr "已按喜歡您的貼文" +msgstr "表示喜歡您的貼文" -#: src/view/screens/Profile.tsx:196 +#: src/view/screens/Profile.tsx:212 msgid "Likes" msgstr "喜歡" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:197 msgid "Likes on this post" msgstr "這條貼文的喜歡數" -#: src/Navigation.tsx:177 +#: src/Navigation.tsx:191 msgid "List" msgstr "列表" -#: src/view/com/modals/CreateOrEditList.tsx:264 +#: src/view/com/modals/CreateOrEditList.tsx:250 msgid "List Avatar" msgstr "列表頭像" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:358 msgid "List blocked" msgstr "列表已封鎖" -#: src/view/com/feeds/FeedSourceCard.tsx:221 +#: src/components/ListCard.tsx:113 +#: src/view/com/feeds/FeedSourceCard.tsx:253 msgid "List by {0}" msgstr "列表由 {0} 建立" -#: src/view/screens/ProfileList.tsx:392 +#: src/view/screens/ProfileList.tsx:397 msgid "List deleted" msgstr "列表已刪除" -#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:330 msgid "List muted" msgstr "列表已靜音" -#: src/view/com/modals/CreateOrEditList.tsx:278 +#: src/view/com/modals/CreateOrEditList.tsx:264 msgid "List Name" msgstr "列表名稱" -#: src/view/screens/ProfileList.tsx:367 +#: src/view/screens/ProfileList.tsx:372 msgid "List unblocked" msgstr "已解除封鎖的列表" -#: src/view/screens/ProfileList.tsx:339 +#: src/view/screens/ProfileList.tsx:344 msgid "List unmuted" msgstr "已解除靜音的列表" -#: src/Navigation.tsx:121 -#: src/view/screens/Profile.tsx:192 -#: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:367 -#: src/view/shell/Drawer.tsx:508 -#: src/view/shell/Drawer.tsx:509 +#: src/Navigation.tsx:128 +#: src/view/screens/Profile.tsx:208 +#: src/view/screens/Profile.tsx:215 +#: src/view/shell/desktop/LeftNav.tsx:385 +#: src/view/shell/Drawer.tsx:499 +#: src/view/shell/Drawer.tsx:500 msgid "Lists" msgstr "列表" -#: src/view/screens/Notifications.tsx:159 +#: src/components/dms/BlockedByListDialog.tsx:39 +msgid "Lists blocking this user:" +msgstr "封鎖此用戶的列表:" + +#: src/view/screens/Search/Explore.tsx:131 +msgid "Load more" +msgstr "載入更多" + +#: src/view/screens/Search/Explore.tsx:219 +msgid "Load more suggested feeds" +msgstr "載入更多推薦動態" + +#: src/view/screens/Search/Explore.tsx:217 +msgid "Load more suggested follows" +msgstr "載入更多推薦跟隨者" + +#: src/view/screens/Notifications.tsx:219 msgid "Load new notifications" msgstr "載入新的通知" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 -#: src/view/screens/ProfileFeed.tsx:492 -#: src/view/screens/ProfileList.tsx:744 +#: src/view/com/feeds/FeedPage.tsx:136 +#: src/view/screens/ProfileFeed.tsx:495 +#: src/view/screens/ProfileList.tsx:749 msgid "Load new posts" msgstr "載入新的貼文" @@ -2639,18 +3141,23 @@ msgstr "載入新的貼文" msgid "Loading..." msgstr "載入中…" -#: src/Navigation.tsx:228 +#: src/Navigation.tsx:247 msgid "Log" msgstr "日誌" -#: src/screens/Deactivated.tsx:155 -#: src/screens/Deactivated.tsx:158 -#: src/screens/Deactivated.tsx:184 -#: src/screens/Deactivated.tsx:187 +#: src/screens/Deactivated.tsx:214 +#: src/screens/Deactivated.tsx:220 +msgid "Log in or sign up" +msgstr "登入或註冊" + +#: src/screens/SignupQueued.tsx:155 +#: src/screens/SignupQueued.tsx:158 +#: src/screens/SignupQueued.tsx:184 +#: src/screens/SignupQueued.tsx:187 msgid "Log out" msgstr "登出" -#: src/screens/Moderation/index.tsx:442 +#: src/screens/Moderation/index.tsx:466 msgid "Logged-out visibility" msgstr "登出可見性" @@ -2658,7 +3165,7 @@ msgstr "登出可見性" msgid "Login to account that is not listed" msgstr "登入未列出的帳號" -#: src/components/RichText.tsx:218 +#: src/components/RichText.tsx:219 msgid "Long press to open tag menu for #{tag}" msgstr "長按開啟 #{tag} 的標籤選單" @@ -2668,15 +3175,19 @@ msgstr "看起來像是 XXXXX-XXXXX" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." -msgstr "" +msgstr "您似乎尚未儲存任何動態源!參考我們的建議或瀏覽下面的更多內容。" -#: src/screens/Home/NoFeedsPinned.tsx:96 +#: src/screens/Home/NoFeedsPinned.tsx:83 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" -msgstr "" +msgstr "看起來您已取消釘選所有動態源。但不用擔心,您可以在下面新增一些😄" -#: src/screens/Feeds/NoFollowingFeed.tsx:38 -msgid "Looks like you're missing a following feed." -msgstr "" +#: src/screens/Feeds/NoFollowingFeed.tsx:37 +msgid "Looks like you're missing a following feed. <0>Click here to add one." +msgstr "您看起來需要「Following」動態源,<0>點選這裡來新增。" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:254 +msgid "Make one for me" +msgstr "為我製作一個" #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" @@ -2686,129 +3197,127 @@ msgstr "請確認這是您想要去的的地方!" msgid "Manage your muted words and tags" msgstr "管理您靜音的文字和標籤" -#: src/components/dms/ConvoMenu.tsx:115 -#: src/components/dms/ConvoMenu.tsx:122 +#: src/components/dms/ConvoMenu.tsx:151 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Mark as read" -msgstr "" +msgstr "標記為已讀" -#: src/view/screens/AccessibilitySettings.tsx:89 -#: src/view/screens/Profile.tsx:195 +#: src/view/screens/AccessibilitySettings.tsx:102 +#: src/view/screens/Profile.tsx:211 msgid "Media" msgstr "媒體" -#: src/view/com/threadgate/WhoCanReply.tsx:139 +#: src/components/WhoCanReply.tsx:276 msgid "mentioned users" msgstr "被提及的用戶" -#: src/view/com/modals/Threadgate.tsx:93 +#: src/components/dialogs/ThreadgateEditor.tsx:119 msgid "Mentioned users" msgstr "被提及的用戶" -#: src/view/com/util/ViewHeader.tsx:89 -#: src/view/screens/Search/Search.tsx:649 +#: src/view/com/util/ViewHeader.tsx:91 +#: src/view/screens/Search/Search.tsx:683 msgid "Menu" msgstr "選單" -#: src/components/dms/MessageMenu.tsx:60 -#: src/screens/Messages/List/ChatListItem.tsx:44 +#: src/components/dms/MessageProfileButton.tsx:67 +msgid "Message {0}" +msgstr "給 {0} 傳送訊息" + +#: src/components/dms/MessageMenu.tsx:72 +#: src/screens/Messages/List/ChatListItem.tsx:155 msgid "Message deleted" -msgstr "" +msgstr "訊息已刪除" #: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "來自伺服器的訊息:{0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:93 +#: src/screens/Messages/Conversation/MessageInput.tsx:138 msgid "Message input field" -msgstr "" +msgstr "訊息輸入欄位" -#: src/screens/Messages/Conversation/MessageInput.tsx:50 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +#: src/screens/Messages/Conversation/MessageInput.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:49 msgid "Message is too long" -msgstr "" +msgstr "訊息太長了" -#: src/screens/Messages/List/index.tsx:85 -#: src/screens/Messages/List/index.tsx:283 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "訊息設定" -#: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:187 -#: src/screens/Messages/List/index.tsx:214 -#: src/screens/Messages/List/index.tsx:279 -#: src/view/shell/bottom-bar/BottomBar.tsx:219 -#: src/view/shell/desktop/LeftNav.tsx:344 +#: src/Navigation.tsx:547 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "訊息" -#: src/Navigation.tsx:307 -msgid "Messaging settings" -msgstr "訊息設定" - -#: src/lib/moderation/useReportOptions.ts:46 +#: src/lib/moderation/useReportOptions.ts:47 msgid "Misleading Account" -msgstr "誤導性帳戶" +msgstr "誤導性帳號" -#: src/Navigation.tsx:126 -#: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:552 +#: src/Navigation.tsx:133 +#: src/screens/Moderation/index.tsx:105 +#: src/view/screens/Settings/index.tsx:563 msgid "Moderation" -msgstr "限制" +msgstr "內容管理" #: src/components/moderation/ModerationDetailsDialog.tsx:112 msgid "Moderation details" -msgstr "限制詳情" +msgstr "內容管理詳情" + +#: src/components/ListCard.tsx:109 +#: src/view/com/lists/ListCard.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:217 +msgid "Moderation list by {0}" +msgstr "由 {0} 建立的內容管理列表" + +#: src/view/screens/ProfileList.tsx:843 +msgid "Moderation list by <0/>" +msgstr "由 建立的內容管理列表" #: src/view/com/lists/ListCard.tsx:93 -#: src/view/com/modals/UserAddRemoveLists.tsx:206 -msgid "Moderation list by {0}" -msgstr "由 {0} 建立的限制列表" - -#: src/view/screens/ProfileList.tsx:838 -msgid "Moderation list by <0/>" -msgstr "由 建立的限制列表" - -#: src/view/com/lists/ListCard.tsx:91 -#: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:836 +#: src/view/com/modals/UserAddRemoveLists.tsx:215 +#: src/view/screens/ProfileList.tsx:841 msgid "Moderation list by you" -msgstr "您建立的限制列表" - -#: src/view/com/modals/CreateOrEditList.tsx:199 -msgid "Moderation list created" -msgstr "已建立限制列表" +msgstr "您建立的內容管理列表" #: src/view/com/modals/CreateOrEditList.tsx:185 +msgid "Moderation list created" +msgstr "已建立內容管理列表" + +#: src/view/com/modals/CreateOrEditList.tsx:171 msgid "Moderation list updated" -msgstr "限制列表已更新" +msgstr "內容管理列表已更新" -#: src/screens/Moderation/index.tsx:243 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" -msgstr "限制列表" +msgstr "內容管理列表" -#: src/Navigation.tsx:131 +#: src/Navigation.tsx:138 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" -msgstr "限制列表" +msgstr "內容管理列表" -#: src/view/screens/Settings/index.tsx:546 +#: src/view/screens/Settings/index.tsx:557 msgid "Moderation settings" -msgstr "限制設定" +msgstr "內容管理設定" -#: src/Navigation.tsx:223 +#: src/Navigation.tsx:237 msgid "Moderation states" -msgstr "限制狀態" +msgstr "內容管理狀態" -#: src/screens/Moderation/index.tsx:215 +#: src/screens/Moderation/index.tsx:218 msgid "Moderation tools" -msgstr "限制工具" +msgstr "內容管理工具" #: src/components/moderation/ModerationDetailsDialog.tsx:48 -#: src/lib/moderation/useModerationCauseDescription.ts:40 +#: src/lib/moderation/useModerationCauseDescription.ts:42 msgid "Moderator has chosen to set a general warning on the content." -msgstr "限制者已選擇對內容設定普通警告。" +msgstr "內容管理者已將此內容標記為普通警告。" -#: src/view/com/post-thread/PostThreadItem.tsx:542 +#: src/view/com/post-thread/PostThreadItem.tsx:564 msgid "More" msgstr "更多" @@ -2816,14 +3325,22 @@ msgstr "更多" msgid "More feeds" msgstr "更多動態源" -#: src/view/screens/ProfileList.tsx:648 +#: src/view/screens/ProfileList.tsx:653 msgid "More options" msgstr "更多選項" -#: src/view/screens/PreferencesThreads.tsx:82 +#: src/view/screens/PreferencesThreads.tsx:76 msgid "Most-liked replies first" msgstr "最多喜歡數優先" +#: src/screens/Onboarding/state.ts:90 +msgid "Movies" +msgstr "電影" + +#: src/screens/Onboarding/state.ts:91 +msgid "Music" +msgstr "音樂" + #: src/components/TagMenu/index.tsx:249 msgid "Mute" msgstr "靜音" @@ -2832,12 +3349,12 @@ msgstr "靜音" msgid "Mute {truncatedTag}" msgstr "靜音 {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:279 -#: src/view/com/profile/ProfileMenu.tsx:286 +#: src/view/com/profile/ProfileMenu.tsx:283 +#: src/view/com/profile/ProfileMenu.tsx:290 msgid "Mute Account" msgstr "靜音帳號" -#: src/view/screens/ProfileList.tsx:567 +#: src/view/screens/ProfileList.tsx:572 msgid "Mute accounts" msgstr "靜音帳號" @@ -2845,6 +3362,11 @@ msgstr "靜音帳號" msgid "Mute all {displayTag} posts" msgstr "將所有 {displayTag} 貼文靜音" +#: src/components/dms/ConvoMenu.tsx:172 +#: src/components/dms/ConvoMenu.tsx:178 +msgid "Mute conversation" +msgstr "靜音對話" + #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" msgstr "僅靜音標籤" @@ -2853,16 +3375,11 @@ msgstr "僅靜音標籤" msgid "Mute in text & tags" msgstr "靜音文字和標籤" -#: src/view/screens/ProfileList.tsx:673 +#: src/view/screens/ProfileList.tsx:678 msgid "Mute list" msgstr "靜音列表" -#: src/components/dms/ConvoMenu.tsx:136 -#: src/components/dms/ConvoMenu.tsx:142 -msgid "Mute notifications" -msgstr "" - -#: src/view/screens/ProfileList.tsx:668 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute these accounts?" msgstr "靜音這些帳號?" @@ -2874,108 +3391,118 @@ msgstr "在貼文內容和話題標籤中隱藏該文字" msgid "Mute this word in tags only" msgstr "僅在話題標籤中隱藏該文字" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:327 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:371 msgid "Mute thread" -msgstr "靜音對話串" +msgstr "靜音討論串" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:339 +#: src/view/com/util/forms/PostDropdownBtn.tsx:381 +#: src/view/com/util/forms/PostDropdownBtn.tsx:383 msgid "Mute words & tags" msgstr "靜音文字和標籤" -#: src/view/com/lists/ListCard.tsx:102 +#: src/view/com/lists/ListCard.tsx:104 msgid "Muted" msgstr "已靜音" -#: src/screens/Moderation/index.tsx:255 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "已靜音帳號" -#: src/Navigation.tsx:136 +#: src/Navigation.tsx:143 #: src/view/screens/ModerationMutedAccounts.tsx:109 msgid "Muted Accounts" msgstr "已靜音帳號" #: src/view/screens/ModerationMutedAccounts.tsx:117 msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." -msgstr "已靜音的帳號將不會在您的通知或動態中顯示,靜音資訊是完全非公開的。" +msgstr "已靜音的帳號將不會在您的通知或動態中顯示,靜音資訊完全只有您可以查看。" -#: src/lib/moderation/useModerationCauseDescription.ts:85 +#: src/lib/moderation/useModerationCauseDescription.ts:87 msgid "Muted by \"{0}\"" msgstr "被「{0}」靜音" -#: src/screens/Moderation/index.tsx:231 +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" msgstr "靜音文字和標籤" -#: src/view/screens/ProfileList.tsx:670 +#: src/view/screens/ProfileList.tsx:675 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." -msgstr "封鎖是私人的。被封鎖的帳號可以與您互動,但您將無法看到他們的貼文或收到來自他們的通知。" +msgstr "靜音資訊只有您可以查看。被靜音的帳號仍可以與您互動,但您將無法看到他們的貼文或收到來自他們的通知。" #: src/components/dialogs/BirthDateSettings.tsx:35 #: src/components/dialogs/BirthDateSettings.tsx:38 msgid "My Birthday" msgstr "我的生日" -#: src/view/screens/Feeds.tsx:794 +#: src/view/screens/Feeds.tsx:731 msgid "My Feeds" msgstr "我的動態源" -#: src/view/shell/desktop/LeftNav.tsx:83 +#: src/view/shell/desktop/LeftNav.tsx:85 msgid "My Profile" -msgstr "我的個人資料" +msgstr "我的個人檔案" -#: src/view/screens/Settings/index.tsx:607 +#: src/view/screens/Settings/index.tsx:618 msgid "My saved feeds" -msgstr "我儲存的動態源" +msgstr "儲存的動態源" -#: src/view/screens/Settings/index.tsx:613 +#: src/view/screens/Settings/index.tsx:624 msgid "My Saved Feeds" -msgstr "我儲存的動態源" +msgstr "儲存的動態源" -#: src/view/com/modals/AddAppPasswords.tsx:180 -#: src/view/com/modals/CreateOrEditList.tsx:293 +#: src/view/com/modals/AddAppPasswords.tsx:174 +#: src/view/com/modals/CreateOrEditList.tsx:279 msgid "Name" msgstr "名稱" -#: src/view/com/modals/CreateOrEditList.tsx:147 +#: src/view/com/modals/CreateOrEditList.tsx:143 msgid "Name is required" msgstr "名稱是必填項" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:92 -#: src/lib/moderation/useReportOptions.ts:100 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:109 msgid "Name or Description Violates Community Standards" msgstr "名稱或描述違反社群標準" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:22 +#: src/screens/Onboarding/state.ts:92 msgid "Nature" msgstr "自然" +#: src/components/StarterPack/StarterPackCard.tsx:118 +msgid "Navigate to {0}" +msgstr "跳至 {0}" + +#: src/view/com/util/post-embeds/ExternalLinkEmbed.tsx:73 +msgid "Navigate to starter pack" +msgstr "切換到入門包" + #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 -#: src/view/com/modals/ChangePassword.tsx:170 +#: src/screens/Login/LoginForm.tsx:332 +#: src/view/com/modals/ChangePassword.tsx:169 msgid "Navigates to the next screen" msgstr "切換到下一畫面" -#: src/view/shell/Drawer.tsx:79 +#: src/view/shell/Drawer.tsx:78 msgid "Navigates to your profile" msgstr "切換到您的個人檔案" -#: src/components/ReportDialog/SelectReportOptionView.tsx:129 +#: src/components/ReportDialog/SelectReportOptionView.tsx:130 msgid "Need to report a copyright violation?" msgstr "需要檢舉侵權嗎?" -#: src/screens/Onboarding/StepFinished.tsx:222 +#: src/screens/Onboarding/StepFinished.tsx:265 msgid "Never lose access to your followers or data." msgstr "永遠不會失去對您的跟隨者或資料的存取權。" #: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" -msgstr "沒關係,為我創建一個帳號代碼" +msgstr "不用了,為我建立一個帳號代碼" -#: src/view/screens/Lists.tsx:76 +#: src/view/screens/Lists.tsx:81 msgctxt "action" msgid "New" msgstr "新增" @@ -2984,65 +3511,79 @@ msgstr "新增" msgid "New" msgstr "新增" -#: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:293 -#: src/screens/Messages/List/index.tsx:301 +#: src/components/dms/dialogs/NewChatDialog.tsx:54 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" -msgstr "" +msgstr "新對話" -#: src/view/com/modals/CreateOrEditList.tsx:255 +#: src/components/dms/NewMessagesPill.tsx:92 +msgid "New messages" +msgstr "新訊息" + +#: src/view/com/modals/CreateOrEditList.tsx:241 msgid "New Moderation List" -msgstr "新的限制列表" +msgstr "新的內容管理列表" -#: src/view/com/modals/ChangePassword.tsx:214 +#: src/view/com/modals/ChangePassword.tsx:213 msgid "New password" msgstr "新密碼" -#: src/view/com/modals/ChangePassword.tsx:219 +#: src/view/com/modals/ChangePassword.tsx:218 msgid "New Password" msgstr "新密碼" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:147 msgctxt "action" msgid "New post" msgstr "新貼文" -#: src/view/screens/Feeds.tsx:626 -#: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:426 -#: src/view/screens/ProfileList.tsx:200 -#: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:270 +#: src/view/screens/Feeds.tsx:581 +#: src/view/screens/Notifications.tsx:228 +#: src/view/screens/Profile.tsx:478 +#: src/view/screens/ProfileFeed.tsx:429 +#: src/view/screens/ProfileList.tsx:201 +#: src/view/screens/ProfileList.tsx:229 +#: src/view/shell/desktop/LeftNav.tsx:278 msgid "New post" msgstr "新貼文" -#: src/view/shell/desktop/LeftNav.tsx:276 +#: src/view/shell/desktop/LeftNav.tsx:284 msgctxt "action" msgid "New Post" msgstr "新貼文" -#: src/view/com/modals/CreateOrEditList.tsx:250 +#: src/components/NewskieDialog.tsx:83 +msgid "New user info dialog" +msgstr "新用戶資訊對話框" + +#: src/view/com/modals/CreateOrEditList.tsx:236 msgid "New User List" msgstr "新的用戶列表" -#: src/view/screens/PreferencesThreads.tsx:79 +#: src/view/screens/PreferencesThreads.tsx:73 msgid "Newest replies first" msgstr "最新回覆優先" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:20 +#: src/screens/Onboarding/state.ts:93 msgid "News" msgstr "新聞" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:331 +#: src/screens/Login/LoginForm.tsx:338 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 -#: src/screens/Signup/index.tsx:220 -#: src/view/com/modals/ChangePassword.tsx:255 -#: src/view/com/modals/ChangePassword.tsx:257 +#: src/screens/Signup/BackNextButtons.tsx:66 +#: src/screens/StarterPack/Wizard/index.tsx:184 +#: src/screens/StarterPack/Wizard/index.tsx:188 +#: src/screens/StarterPack/Wizard/index.tsx:359 +#: src/screens/StarterPack/Wizard/index.tsx:366 +#: src/tours/Tooltip.tsx:139 +#: src/view/com/modals/ChangePassword.tsx:254 +#: src/view/com/modals/ChangePassword.tsx:256 msgid "Next" msgstr "下一個" @@ -3050,17 +3591,17 @@ msgstr "下一個" msgid "Next image" msgstr "下一張圖片" -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:271 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:198 +#: src/view/screens/PreferencesFollowingFeed.tsx:233 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "No" msgstr "關" -#: src/view/screens/ProfileFeed.tsx:559 -#: src/view/screens/ProfileList.tsx:818 +#: src/view/screens/ProfileFeed.tsx:564 +#: src/view/screens/ProfileList.tsx:823 msgid "No description" msgstr "沒有描述" @@ -3068,78 +3609,104 @@ msgstr "沒有描述" msgid "No DNS Panel" msgstr "無 DNS 控制台" -#: src/components/dialogs/GifSelect.tsx:206 +#: src/components/dialogs/GifSelect.ios.tsx:202 +#: src/components/dialogs/GifSelect.tsx:218 msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "未找到精選 GIF,Tenor 可能發生問題。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:116 +#: src/screens/StarterPack/Wizard/StepFeeds.tsx:120 +msgid "No feeds found. Try searching for something else." +msgstr "沒有找到任何動態。請嘗試以其他關鍵字搜尋。" + +#: src/components/ProfileCard.tsx:323 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 msgid "No longer following {0}" msgstr "不再跟隨 {0}" -#: src/screens/Signup/StepHandle.tsx:115 +#: src/screens/Signup/StepHandle.tsx:166 msgid "No longer than 253 characters" -msgstr "不超過 253 個字符" +msgstr "不超過 253 個字元" -#: src/screens/Messages/List/ChatListItem.tsx:33 -#: src/screens/Messages/List/index.tsx:198 +#: src/screens/Messages/List/ChatListItem.tsx:106 msgid "No messages yet" -msgstr "" +msgstr "還沒有訊息" -#: src/view/com/notifications/Feed.tsx:110 +#: src/screens/Messages/List/index.tsx:274 +msgid "No more conversations to show" +msgstr "已經沒有對話啦!" + +#: src/view/com/notifications/Feed.tsx:122 msgid "No notifications yet!" msgstr "還沒有通知!" +#: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 +msgid "No one" +msgstr "沒有人" + +#: src/screens/Profile/Sections/Feed.tsx:59 +msgid "No posts yet." +msgstr "目前還沒有貼文。" + #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 msgid "No result" msgstr "沒有結果" -#: src/components/Lists.tsx:195 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:202 +msgid "No results" +msgstr "沒有結果" + +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "未找到結果" -#: src/view/screens/Feeds.tsx:555 +#: src/view/screens/Feeds.tsx:512 msgid "No results found for \"{query}\"" -msgstr "未找到「{query}」的結果" +msgstr "未找到符合「{query}」的結果" -#: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:289 -#: src/view/screens/Search/Search.tsx:328 +#: src/view/com/modals/ListAddRemoveUsers.tsx:128 +#: src/view/screens/Search/Search.tsx:233 +#: src/view/screens/Search/Search.tsx:272 +#: src/view/screens/Search/Search.tsx:318 msgid "No results found for {query}" -msgstr "未找到 {query} 的結果" +msgstr "未找到符合 {query} 的結果" -#: src/components/dialogs/GifSelect.tsx:204 +#: src/components/dialogs/GifSelect.ios.tsx:200 +#: src/components/dialogs/GifSelect.tsx:216 msgid "No search results found for \"{search}\"." -msgstr "未找到「{search}」的搜尋結果。" - -#: src/components/dms/NewChat.tsx:240 -msgid "No search results found for \"{searchText}\"." -msgstr "" +msgstr "未找到符合「{search}」的搜尋結果。" #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" msgstr "不,謝謝" -#: src/view/com/modals/Threadgate.tsx:82 +#: src/components/dialogs/ThreadgateEditor.tsx:108 msgid "Nobody" msgstr "沒有人" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:46 +msgid "Nobody can reply" +msgstr "沒有人可以回覆" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" -msgstr "還沒有人按喜歡,也許您應該成為第一個!" +msgstr "還沒有人對此表示喜歡,也許您可以成為第一個!" + +#: src/screens/StarterPack/Wizard/StepProfiles.tsx:103 +msgid "Nobody was found. Try searching for someone else." +msgstr "沒有找到任何人。請嘗試以其他關鍵字搜尋。" #: src/lib/moderation/useGlobalLabelStrings.ts:42 msgid "Non-sexual Nudity" -msgstr "非情色內容裸體" +msgstr "非色情裸露" -#: src/view/com/modals/SelfLabel.tsx:135 -#~ msgid "Not Applicable." -#~ msgstr "不適用。" - -#: src/Navigation.tsx:116 -#: src/view/screens/Profile.tsx:100 +#: src/Navigation.tsx:123 +#: src/view/screens/Profile.tsx:108 msgid "Not Found" msgstr "未找到" @@ -3148,57 +3715,83 @@ msgstr "未找到" msgid "Not right now" msgstr "暫時不需要" -#: src/view/com/profile/ProfileMenu.tsx:368 -#: src/view/com/util/forms/PostDropdownBtn.tsx:415 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:372 +#: src/view/com/util/forms/PostDropdownBtn.tsx:459 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:322 msgid "Note about sharing" msgstr "關於分享的注意事項" -#: src/screens/Moderation/index.tsx:540 +#: src/screens/Moderation/index.tsx:564 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." -msgstr "注意:Bluesky 是一個開放且公開的網路。此設定僅限制您在 Bluesky 應用程式和網站上的內容可見性,其他應用程式可能不尊遵循這樣的規則。您的內容仍可能由其他應用程式和網站顯示給未登入的使用者。" +msgstr "注意:Bluesky 是一個開放且公開的網路。此設定僅限制您在 Bluesky 應用程式和網站上的內容可見性,其他應用程式可能不會遵循這個規則。您的內容仍可能由其他應用程式和網站顯示給未登入的使用者。" -#: src/Navigation.tsx:512 -#: src/view/screens/Notifications.tsx:124 -#: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:268 -#: src/view/shell/desktop/LeftNav.tsx:336 -#: src/view/shell/Drawer.tsx:456 -#: src/view/shell/Drawer.tsx:457 +#: src/screens/Messages/List/index.tsx:215 +msgid "Nothing here" +msgstr "這裡什麼也沒有" + +#: src/view/screens/NotificationsSettings.tsx:54 +msgid "Notification filters" +msgstr "" + +#: src/Navigation.tsx:331 +#: src/view/screens/Notifications.tsx:119 +msgid "Notification settings" +msgstr "" + +#: src/view/screens/NotificationsSettings.tsx:39 +msgid "Notification Settings" +msgstr "" + +#: src/screens/Messages/Settings.tsx:124 +msgid "Notification sounds" +msgstr "通知音效" + +#: src/screens/Messages/Settings.tsx:121 +msgid "Notification Sounds" +msgstr "通知音效" + +#: src/Navigation.tsx:542 +#: src/view/screens/Notifications.tsx:145 +#: src/view/screens/Notifications.tsx:155 +#: src/view/screens/Notifications.tsx:203 +#: src/view/shell/bottom-bar/BottomBar.tsx:230 +#: src/view/shell/desktop/LeftNav.tsx:362 +#: src/view/shell/Drawer.tsx:447 +#: src/view/shell/Drawer.tsx:448 msgid "Notifications" msgstr "通知" -#: src/components/dms/MessageItem.tsx:145 +#: src/lib/hooks/useTimeAgo.ts:51 +msgid "now" +msgstr "現在" + +#: src/components/dms/MessageItem.tsx:169 msgid "Now" -msgstr "" +msgstr "現在" #: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "裸露" -#: src/lib/moderation/useReportOptions.ts:72 +#: src/lib/moderation/useReportOptions.ts:73 msgid "Nudity or adult content not labeled as such" msgstr "未貼上此類標記的裸露或成人內容" -#: src/screens/Signup/index.tsx:145 -#~ msgid "of" -#~ msgstr "的" - #: src/lib/moderation/useLabelBehaviorDescription.ts:11 msgid "Off" msgstr "顯示" -#: src/components/dialogs/GifSelect.tsx:287 +#: src/components/dialogs/GifSelect.ios.tsx:237 +#: src/components/dialogs/GifSelect.tsx:255 #: src/view/com/util/ErrorBoundary.tsx:55 msgid "Oh no!" msgstr "糟糕!" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:152 msgid "Oh no! Something went wrong." msgstr "糟糕!發生了一些錯誤。" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:339 msgid "OK" msgstr "好的" @@ -3206,107 +3799,143 @@ msgstr "好的" msgid "Okay" msgstr "好的" -#: src/view/screens/PreferencesThreads.tsx:78 +#: src/view/screens/PreferencesThreads.tsx:72 msgid "Oldest replies first" msgstr "最舊的回覆優先" -#: src/view/screens/Settings/index.tsx:253 +#: src/components/StarterPack/QrCode.tsx:69 +msgid "on" +msgstr "在" + +#: src/lib/hooks/useTimeAgo.ts:81 +msgid "on {str}" +msgstr "在 {str}" + +#: src/view/screens/Settings/index.tsx:258 msgid "Onboarding reset" msgstr "重新開始引導流程" -#: src/view/com/composer/Composer.tsx:462 +#: src/tours/Tooltip.tsx:118 +msgid "Onboarding tour step {0}: {1}" +msgstr "入門指南步驟 {0}:{1}" + +#: src/view/com/composer/Composer.tsx:534 msgid "One or more images is missing alt text." msgstr "至少有一張圖片缺失了替代文字。" -#: src/screens/Onboarding/StepProfile/index.tsx:120 +#: src/screens/Onboarding/StepProfile/index.tsx:117 msgid "Only .jpg and .png files are supported" -msgstr "" +msgstr "僅支援 .jpg 或 .png 格式的圖片" -#: src/view/com/threadgate/WhoCanReply.tsx:100 -msgid "Only {0} can reply." -msgstr "只有 {0} 可以回覆。" +#: src/components/WhoCanReply.tsx:245 +msgid "Only {0} can reply" +msgstr "只有{0}可以回覆" -#: src/screens/Signup/StepHandle.tsx:98 +#: src/screens/Signup/StepHandle.tsx:149 msgid "Only contains letters, numbers, and hyphens" msgstr "只包含字母、數字和連字符" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "糟糕,發生了錯誤!" -#: src/components/Lists.tsx:179 -#: src/view/screens/AppPasswords.tsx:67 -#: src/view/screens/Profile.tsx:100 +#: src/components/Lists.tsx:191 +#: src/components/StarterPack/ProfileStarterPacks.tsx:304 +#: src/components/StarterPack/ProfileStarterPacks.tsx:313 +#: src/view/screens/AppPasswords.tsx:69 +#: src/view/screens/NotificationsSettings.tsx:45 +#: src/view/screens/Profile.tsx:108 msgid "Oops!" msgstr "糟糕!" -#: src/screens/Onboarding/StepFinished.tsx:218 +#: src/screens/Onboarding/StepFinished.tsx:261 msgid "Open" -msgstr "開啟" +msgstr "開放" -#: src/screens/Onboarding/StepProfile/index.tsx:280 +#: src/view/com/posts/AviFollowButton.tsx:89 +msgid "Open {name} profile shortcut menu" +msgstr "開啟 {name} 個人檔案快捷選單" + +#: src/screens/Onboarding/StepProfile/index.tsx:277 msgid "Open avatar creator" -msgstr "" +msgstr "開啟頭像建立工具" -#: src/view/com/composer/Composer.tsx:555 -#: src/view/com/composer/Composer.tsx:556 +#: src/screens/Messages/List/ChatListItem.tsx:219 +#: src/screens/Messages/List/ChatListItem.tsx:220 +msgid "Open conversation options" +msgstr "開啟對話選項" + +#: src/view/com/composer/Composer.tsx:663 +#: src/view/com/composer/Composer.tsx:664 msgid "Open emoji picker" msgstr "開啟表情符號選擇器" -#: src/view/screens/ProfileFeed.tsx:295 +#: src/view/screens/ProfileFeed.tsx:297 msgid "Open feed options menu" msgstr "開啟動態選項選單" -#: src/view/screens/Settings/index.tsx:702 +#: src/view/screens/Settings/index.tsx:738 msgid "Open links with in-app browser" msgstr "在內建瀏覽器中開啟連結" -#: src/screens/Moderation/index.tsx:227 +#: src/components/dms/ActionsWrapper.tsx:87 +msgid "Open message options" +msgstr "開啟訊息選項" + +#: src/screens/Moderation/index.tsx:230 msgid "Open muted words and tags settings" msgstr "開啟靜音文字和標籤設定" -#: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:54 msgid "Open navigation" msgstr "開啟導覽" -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/util/forms/PostDropdownBtn.tsx:250 msgid "Open post options menu" msgstr "開啟貼文選項選單" -#: src/view/screens/Settings/index.tsx:803 -#: src/view/screens/Settings/index.tsx:813 +#: src/screens/StarterPack/StarterPackScreen.tsx:529 +msgid "Open starter pack menu" +msgstr "開啟入門包選單" + +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:872 msgid "Open storybook page" msgstr "開啟故事書頁面" -#: src/view/screens/Settings/index.tsx:791 +#: src/view/screens/Settings/index.tsx:850 msgid "Open system log" msgstr "開啟系統日誌" -#: src/view/com/util/forms/DropdownButton.tsx:154 +#: src/view/com/util/forms/DropdownButton.tsx:159 msgid "Opens {numItems} options" msgstr "開啟 {numItems} 個選項" -#: src/view/screens/Settings/index.tsx:501 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:60 +msgid "Opens a dialog to choose who can reply to this thread" +msgstr "開啟對話窗來選擇哪些人可以回覆此討論串" + +#: src/view/screens/Settings/index.tsx:512 msgid "Opens accessibility settings" msgstr "開啟無障礙設定" -#: src/view/screens/Log.tsx:54 +#: src/view/screens/Log.tsx:58 msgid "Opens additional details for a debug entry" msgstr "開啟除錯項目的額外詳細資訊" -#: src/view/com/notifications/FeedItem.tsx:349 -msgid "Opens an expanded list of users in this notification" -msgstr "展開此通知的用戶列表" - #: src/view/com/composer/photos/OpenCameraBtn.tsx:74 msgid "Opens camera on device" msgstr "開啟裝置相機" -#: src/view/com/composer/Prompt.tsx:25 +#: src/view/screens/Settings/index.tsx:641 +msgid "Opens chat settings" +msgstr "開啟對話設定" + +#: src/view/com/composer/Prompt.tsx:27 msgid "Opens composer" msgstr "開啟編輯器" -#: src/view/screens/Settings/index.tsx:522 +#: src/view/screens/Settings/index.tsx:533 msgid "Opens configurable language settings" msgstr "開啟可以更改的語言設定" @@ -3314,21 +3943,21 @@ msgstr "開啟可以更改的語言設定" msgid "Opens device photo gallery" msgstr "開啟裝置相簿" -#: src/view/screens/Settings/index.tsx:637 +#: src/view/screens/Settings/index.tsx:673 msgid "Opens external embeds settings" msgstr "開啟外部連結嵌入設定" #: src/view/com/auth/SplashScreen.tsx:50 #: src/view/com/auth/SplashScreen.web.tsx:99 msgid "Opens flow to create a new Bluesky account" -msgstr "開始建立新的 Bluesky 帳戶的流程" +msgstr "開始建立新的 Bluesky 帳號的流程" #: src/view/com/auth/SplashScreen.tsx:65 #: src/view/com/auth/SplashScreen.web.tsx:114 msgid "Opens flow to sign into your existing Bluesky account" -msgstr "開始登入您現有的 Bluesky 帳戶流程" +msgstr "開始登入您現有的 Bluesky 帳號流程" -#: src/view/com/composer/photos/SelectGifBtn.tsx:37 +#: src/view/com/composer/photos/SelectGifBtn.tsx:36 msgid "Opens GIF select dialog" msgstr "開啟 GIF 選擇對話框" @@ -3336,23 +3965,27 @@ msgstr "開啟 GIF 選擇對話框" msgid "Opens list of invite codes" msgstr "開啟邀請碼列表" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:810 +msgid "Opens modal for account deactivation confirmation" +msgstr "開啟帳號刪除的確認彈窗" + +#: src/view/screens/Settings/index.tsx:832 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "開啟帳號刪除的確認彈窗。需要電子郵件驗證碼" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:767 msgid "Opens modal for changing your Bluesky password" msgstr "開啟修改 Bluesky 密碼的彈窗" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:722 msgid "Opens modal for choosing a new Bluesky handle" -msgstr "開啟創建新 Bluesky 帳號代碼的彈窗" +msgstr "開啟建立新 Bluesky 帳號代碼的彈窗" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:790 msgid "Opens modal for downloading your Bluesky account data (repository)" -msgstr "開啟下載 Bluesky 帳戶數據(存儲庫)的彈窗" +msgstr "開啟下載 Bluesky 帳號數據(儲存庫)的彈窗" -#: src/view/screens/Settings/index.tsx:941 +#: src/view/screens/Settings/index.tsx:1010 msgid "Opens modal for email verification" msgstr "開啟驗證電子郵件的彈窗" @@ -3360,66 +3993,74 @@ msgstr "開啟驗證電子郵件的彈窗" msgid "Opens modal for using custom domain" msgstr "開啟使用自訂網域的彈窗" -#: src/view/screens/Settings/index.tsx:547 +#: src/view/screens/Settings/index.tsx:558 msgid "Opens moderation settings" -msgstr "開啟限制設定" +msgstr "開啟內容管理設定" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:247 msgid "Opens password reset form" msgstr "開啟密碼重設表單" -#: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:416 -msgid "Opens screen to edit Saved Feeds" -msgstr "開啟編輯已儲存動態源的畫面" - -#: src/view/screens/Settings/index.tsx:608 +#: src/view/screens/Settings/index.tsx:619 msgid "Opens screen with all saved feeds" -msgstr "開啟包含所有已儲存動態源的畫面" +msgstr "開啟包含所有已儲存的動態源之畫面" -#: src/view/screens/Settings/index.tsx:664 +#: src/view/screens/Settings/index.tsx:700 msgid "Opens the app password settings" msgstr "開啟應用程式專用密碼設定畫面" -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:576 msgid "Opens the Following feed preferences" -msgstr "開啟跟隨動態源設定偏好" +msgstr "開啟「Following」動態源偏好" #: src/view/com/modals/LinkWarning.tsx:93 msgid "Opens the linked website" msgstr "開啟網站連結" -#: src/screens/Messages/List/index.tsx:86 -msgid "Opens the message settings page" -msgstr "打開私訊設定頁面" - -#: src/view/screens/Settings/index.tsx:804 -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:863 +#: src/view/screens/Settings/index.tsx:873 msgid "Opens the storybook page" msgstr "開啟故事書頁面" -#: src/view/screens/Settings/index.tsx:792 +#: src/view/screens/Settings/index.tsx:851 msgid "Opens the system log page" msgstr "開啟系統日誌頁面" -#: src/view/screens/Settings/index.tsx:586 +#: src/view/screens/Settings/index.tsx:597 msgid "Opens the threads preferences" -msgstr "開啟對話串偏好" +msgstr "開啟討論串偏好" -#: src/view/com/util/forms/DropdownButton.tsx:280 +#: src/view/com/notifications/FeedItem.tsx:527 +#: src/view/com/util/UserAvatar.tsx:434 +msgid "Opens this profile" +msgstr "開啟這個個人檔案" + +#: src/view/com/composer/videos/SelectVideoBtn.tsx:54 +msgid "Opens video picker" +msgstr "開啟影片選擇器" + +#: src/view/com/util/forms/DropdownButton.tsx:293 msgid "Option {0} of {numItems}" msgstr "{0} 選項,共 {numItems} 個" -#: src/components/dms/MessageReportDialog.tsx:156 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/dms/ReportDialog.tsx:183 +#: src/components/ReportDialog/SubmitView.tsx:179 msgid "Optionally provide additional information below:" msgstr "在以下提供額外訊息(可選):" -#: src/view/com/modals/Threadgate.tsx:89 +#: src/components/dialogs/ThreadgateEditor.tsx:115 msgid "Or combine these options:" msgstr "或者組合這些選項:" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/screens/Deactivated.tsx:211 +msgid "Or, continue with another account." +msgstr "或以其他帳號繼續。" + +#: src/screens/Deactivated.tsx:194 +msgid "Or, log into one of your other accounts." +msgstr "或登入您的其他帳號。" + +#: src/lib/moderation/useReportOptions.ts:27 msgid "Other" msgstr "其他" @@ -3427,11 +4068,15 @@ msgstr "其他" msgid "Other account" msgstr "其他帳號" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:92 msgid "Other..." msgstr "其他…" -#: src/components/Lists.tsx:196 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:28 +msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." +msgstr "我們的內容管理者已審核檢舉,並決定停用您在 Bluesky 上的對話功能。" + +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "頁面不存在" @@ -3440,14 +4085,14 @@ msgstr "頁面不存在" msgid "Page Not Found" msgstr "頁面不存在" -#: src/screens/Login/LoginForm.tsx:198 -#: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:194 -#: src/view/com/modals/DeleteAccount.tsx:201 +#: src/screens/Login/LoginForm.tsx:225 +#: src/screens/Signup/StepInfo/index.tsx:162 +#: src/view/com/modals/DeleteAccount.tsx:257 +#: src/view/com/modals/DeleteAccount.tsx:264 msgid "Password" msgstr "密碼" -#: src/view/com/modals/ChangePassword.tsx:144 +#: src/view/com/modals/ChangePassword.tsx:143 msgid "Password Changed" msgstr "密碼已更改" @@ -3459,52 +4104,66 @@ msgstr "密碼已更新" msgid "Password updated!" msgstr "密碼已更新!" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Pause" msgstr "暫停" -#: src/view/screens/Search/Search.tsx:379 +#: src/screens/StarterPack/StarterPackScreen.tsx:170 +#: src/view/screens/Search/Search.tsx:369 msgid "People" -msgstr "人物" +msgstr "用戶" -#: src/Navigation.tsx:171 +#: src/Navigation.tsx:178 msgid "People followed by @{0}" msgstr "被 @{0} 跟隨的人" -#: src/Navigation.tsx:164 +#: src/Navigation.tsx:171 msgid "People following @{0}" msgstr "跟隨 @{0} 的人" -#: src/view/com/lightbox/Lightbox.tsx:67 +#: src/view/com/lightbox/Lightbox.tsx:70 msgid "Permission to access camera roll is required." -msgstr "需要相機權限。" +msgstr "需要相簿權限。" -#: src/view/com/lightbox/Lightbox.tsx:73 +#: src/view/com/lightbox/Lightbox.tsx:78 msgid "Permission to access camera roll was denied. Please enable it in your system settings." -msgstr "相機權限已遭拒絕,請在系統設定中啟用。" +msgstr "相簿權限已遭拒絕,請在系統設定中啟用。" -#: src/screens/Onboarding/index.tsx:43 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:55 +msgid "Person toggle" +msgstr "切換帳號" + +#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/state.ts:94 msgid "Pets" msgstr "寵物" +#: src/screens/Onboarding/state.ts:95 +msgid "Photography" +msgstr "攝影" + #: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." -msgstr "適合成年人的圖像。" +msgstr "不適合未成年人的圖片。" -#: src/view/screens/ProfileFeed.tsx:287 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:289 +#: src/view/screens/ProfileList.tsx:617 msgid "Pin to home" msgstr "釘選到首頁" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:292 msgid "Pin to Home" msgstr "釘選到首頁" -#: src/view/screens/SavedFeeds.tsx:102 +#: src/view/screens/SavedFeeds.tsx:103 msgid "Pinned Feeds" msgstr "釘選的動態源列表" -#: src/view/com/util/post-embeds/GifEmbed.tsx:36 +#: src/view/screens/ProfileList.tsx:289 +msgid "Pinned to your feeds" +msgstr "從您的動態中取消釘選" + +#: src/view/com/util/post-embeds/GifEmbed.tsx:44 msgid "Play" msgstr "播放" @@ -3512,7 +4171,7 @@ msgstr "播放" msgid "Play {0}" msgstr "播放 {0}" -#: src/view/com/util/post-embeds/GifEmbed.tsx:35 +#: src/view/com/util/post-embeds/GifEmbed.tsx:43 msgid "Play or pause the GIF" msgstr "播放或暫停 GIF" @@ -3525,27 +4184,28 @@ msgstr "播放影片" msgid "Plays the GIF" msgstr "播放 GIF" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:210 msgid "Please choose your handle." msgstr "請設定您的帳號代碼。" -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:203 +#: src/screens/Signup/StepInfo/index.tsx:81 msgid "Please choose your password." msgstr "請設定您的密碼。" -#: src/screens/Signup/state.ts:248 +#: src/screens/Signup/state.ts:224 msgid "Please complete the verification captcha." msgstr "請完成 Captcha 驗證。" #: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." -msgstr "更改前請先確認您的電子郵件地址。這是電子郵件更新工具的臨時要求,此限制將很快被移除。" +msgstr "更改前請先確認您的電子郵件地址。這是電子郵件更新工具的臨時要求,此限制很快就會被移除。" -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:94 msgid "Please enter a name for your app password. All spaces is not allowed." -msgstr "請輸入應用程式專用密碼的名稱。所有空格均不允許使用。" +msgstr "請輸入應用程式專用密碼的名稱。不允許包含任何空格。" -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "請輸入此應用程式專用密碼的唯一名稱,或使用我們提供的隨機生成名稱。" @@ -3553,78 +4213,89 @@ msgstr "請輸入此應用程式專用密碼的唯一名稱,或使用我們提 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "請輸入有效的文字或標籤進行靜音" -#: src/screens/Signup/state.ts:213 +#: src/screens/Signup/state.ts:189 +#: src/screens/Signup/StepInfo/index.tsx:69 msgid "Please enter your email." msgstr "請輸入您的電子郵件。" -#: src/view/com/modals/DeleteAccount.tsx:190 +#: src/screens/Signup/StepInfo/index.tsx:63 +msgid "Please enter your invite code." +msgstr "請輸入您的邀請碼。" + +#: src/view/com/modals/DeleteAccount.tsx:253 msgid "Please enter your password as well:" msgstr "請輸入您的密碼:" -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:277 msgid "Please explain why you think this label was incorrectly applied by {0}" -msgstr "請解釋您認為 {0} 不正確套用此標記的原因" +msgstr "請解釋您認為 {0} 不該套用此標記的原因" + +#: src/screens/Messages/Conversation/ChatDisabled.tsx:110 +msgid "Please explain why you think your chats were incorrectly disabled" +msgstr "請解釋您認為我們不該停用您對話功能的原因" #: src/lib/hooks/useAccountSwitcher.ts:48 +#: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" -msgstr "" +msgstr "請以 @{0} 的身分登入" #: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "請驗證您的電子郵件地址" -#: src/view/com/composer/Composer.tsx:252 +#: src/view/com/composer/Composer.tsx:299 msgid "Please wait for your link card to finish loading" msgstr "請等待您的連結預覽載入完畢" -#: src/screens/Onboarding/index.tsx:49 +#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/state.ts:96 msgid "Politics" msgstr "政治" #: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" -msgstr "情色內容" +msgstr "色情" -#: src/view/com/composer/Composer.tsx:437 -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:516 msgctxt "action" msgid "Post" msgstr "發佈" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:434 msgctxt "description" msgid "Post" -msgstr "發佈" +msgstr "貼文" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:189 msgid "Post by {0}" msgstr "{0} 的貼文" -#: src/Navigation.tsx:183 -#: src/Navigation.tsx:190 #: src/Navigation.tsx:197 +#: src/Navigation.tsx:204 +#: src/Navigation.tsx:211 msgid "Post by @{0}" msgstr "@{0} 的貼文" -#: src/view/com/util/forms/PostDropdownBtn.tsx:119 +#: src/view/com/util/forms/PostDropdownBtn.tsx:132 msgid "Post deleted" msgstr "貼文已刪除" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "貼文已隱藏" #: src/components/moderation/ModerationDetailsDialog.tsx:97 -#: src/lib/moderation/useModerationCauseDescription.ts:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "Post Hidden by Muted Word" msgstr "貼文因靜音文字而被隱藏" #: src/components/moderation/ModerationDetailsDialog.tsx:100 -#: src/lib/moderation/useModerationCauseDescription.ts:108 +#: src/lib/moderation/useModerationCauseDescription.ts:110 msgid "Post Hidden by You" msgstr "被您靜音的貼文" -#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +#: src/view/com/composer/select-language/SelectLangBtn.tsx:88 msgid "Post language" msgstr "貼文語言" @@ -3632,8 +4303,8 @@ msgstr "貼文語言" msgid "Post Languages" msgstr "貼文語言" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "找不到貼文" @@ -3641,7 +4312,8 @@ msgstr "找不到貼文" msgid "posts" msgstr "貼文" -#: src/view/screens/Profile.tsx:193 +#: src/screens/StarterPack/StarterPackScreen.tsx:172 +#: src/view/screens/Profile.tsx:209 msgid "Posts" msgstr "貼文" @@ -3649,7 +4321,7 @@ msgstr "貼文" msgid "Posts can be muted based on their text, their tags, or both." msgstr "可以靜音貼文所包含的文字和標籤。" -#: src/view/com/posts/FeedErrorMessage.tsx:69 +#: src/view/com/posts/FeedErrorMessage.tsx:68 msgid "Posts hidden" msgstr "貼文已隱藏" @@ -3657,61 +4329,76 @@ msgstr "貼文已隱藏" msgid "Potentially Misleading Link" msgstr "潛在誤導性連結" +#: src/state/queries/notifications/settings.ts:44 +msgid "Preference saved" +msgstr "" + +#: src/screens/Messages/Conversation/MessageListError.tsx:19 +msgid "Press to attempt reconnection" +msgstr "點擊以重試連線" + #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" msgstr "按下以更改託管服務供應商" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:59 -#: src/screens/Signup/index.tsx:200 +#: src/components/Lists.tsx:93 +#: src/screens/Messages/Conversation/MessageListError.tsx:24 +#: src/screens/Signup/BackNextButtons.tsx:46 msgid "Press to retry" msgstr "按下以重試" -#: src/screens/Messages/Conversation/MessagesList.tsx:47 -#: src/screens/Messages/Conversation/MessagesList.tsx:53 -#~ msgid "Press to Retry" -#~ msgstr "" +#: src/components/KnownFollowers.tsx:124 +msgid "Press to view followers of this account that you also follow" +msgstr "按下以查看哪些您認識的人跟隨了此帳號" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" msgstr "上一張圖片" -#: src/view/screens/LanguageSettings.tsx:187 +#: src/view/screens/LanguageSettings.tsx:189 msgid "Primary Language" msgstr "主要語言" -#: src/view/screens/PreferencesThreads.tsx:97 +#: src/view/screens/PreferencesThreads.tsx:91 msgid "Prioritize Your Follows" msgstr "優先顯示跟隨者" -#: src/view/screens/Settings/index.tsx:620 -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/screens/NotificationsSettings.tsx:57 +msgid "Priority notifications" +msgstr "" + +#: src/view/screens/Settings/index.tsx:656 +#: src/view/shell/desktop/RightNav.tsx:81 msgid "Privacy" msgstr "隱私" -#: src/Navigation.tsx:238 +#: src/Navigation.tsx:257 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:890 +#: src/view/screens/Settings/index.tsx:959 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "隱私政策" +#: src/components/dms/MessagesNUX.tsx:91 +msgid "Privately chat with other users." +msgstr "和其他用戶進行私人對話。" + #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." msgstr "處理中…" -#: src/view/screens/DebugMod.tsx:889 -#: src/view/screens/Profile.tsx:345 +#: src/view/screens/DebugMod.tsx:894 +#: src/view/screens/Profile.tsx:346 msgid "profile" msgstr "個人檔案" -#: src/view/shell/bottom-bar/BottomBar.tsx:313 -#: src/view/shell/desktop/LeftNav.tsx:373 -#: src/view/shell/Drawer.tsx:78 -#: src/view/shell/Drawer.tsx:541 -#: src/view/shell/Drawer.tsx:542 +#: src/view/shell/bottom-bar/BottomBar.tsx:275 +#: src/view/shell/desktop/LeftNav.tsx:393 +#: src/view/shell/Drawer.tsx:77 +#: src/view/shell/Drawer.tsx:532 +#: src/view/shell/Drawer.tsx:533 msgid "Profile" msgstr "個人檔案" @@ -3719,45 +4406,54 @@ msgstr "個人檔案" msgid "Profile updated" msgstr "個人檔案已更新" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:1023 msgid "Protect your account by verifying your email." msgstr "通過驗證電子郵件地址來保護您的帳號。" -#: src/screens/Onboarding/StepFinished.tsx:204 +#: src/screens/Onboarding/StepFinished.tsx:247 msgid "Public" -msgstr "公開內容" +msgstr "公開" #: src/view/screens/ModerationModlists.tsx:61 msgid "Public, shareable lists of users to mute or block in bulk." -msgstr "公開且可共享的批量靜音或封鎖列表。" +msgstr "公開且可共享的用戶列表,可供批量靜音或封鎖。" -#: src/view/screens/Lists.tsx:61 +#: src/view/screens/Lists.tsx:66 msgid "Public, shareable lists which can drive feeds." msgstr "公開且可共享的列表,可作為動態源使用。" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish post" msgstr "發佈貼文" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:497 msgid "Publish reply" msgstr "發佈回覆" -#: src/view/com/modals/Repost.tsx:66 -msgctxt "action" +#: src/components/StarterPack/QrCodeDialog.tsx:128 +msgid "QR code copied to your clipboard!" +msgstr "QR Code 已複製到您的剪貼簿!" + +#: src/components/StarterPack/QrCodeDialog.tsx:106 +msgid "QR code has been downloaded!" +msgstr "QR Code 下載成功!" + +#: src/components/StarterPack/QrCodeDialog.tsx:107 +msgid "QR code saved to your camera roll!" +msgstr "QR Code 已儲存至您的圖片庫!" + +#: src/tours/Tooltip.tsx:111 +msgid "Quick tip" +msgstr "小建議" + +#: src/view/com/util/post-ctrls/RepostButton.tsx:116 +#: src/view/com/util/post-ctrls/RepostButton.tsx:128 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:79 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:82 msgid "Quote post" msgstr "引用貼文" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 -msgid "Quote post" -msgstr "引用貼文" - -#: src/view/com/modals/Repost.tsx:71 -msgctxt "action" -msgid "Quote Post" -msgstr "引用貼文" - -#: src/view/screens/PreferencesThreads.tsx:86 +#: src/view/screens/PreferencesThreads.tsx:80 msgid "Random (aka \"Poster's Roulette\")" msgstr "隨機顯示 (又名試試手氣)" @@ -3765,28 +4461,51 @@ msgstr "隨機顯示 (又名試試手氣)" msgid "Ratios" msgstr "比率" -#: src/components/dms/MessageReportDialog.tsx:149 -msgid "Reason: {0}" -msgstr "" +#: src/screens/Deactivated.tsx:144 +msgid "Reactivate your account" +msgstr "重新啟用您的帳號" -#: src/view/screens/Search/Search.tsx:886 +#: src/components/dms/ReportDialog.tsx:174 +msgid "Reason:" +msgstr "原因:" + +#: src/view/screens/Search/Search.tsx:933 msgid "Recent Searches" msgstr "最近的搜尋結果" +#: src/screens/Messages/Conversation/MessageListError.tsx:20 +msgid "Reconnect" +msgstr "重新連線" + +#: src/view/screens/Notifications.tsx:146 +msgid "Refresh notifications" +msgstr "" + +#: src/screens/Messages/List/index.tsx:200 +msgid "Reload conversations" +msgstr "重新載入對話" + #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:285 -#: src/view/com/modals/ListAddRemoveUsers.tsx:268 +#: src/components/FeedCard.tsx:309 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:101 +#: src/components/StarterPack/Wizard/WizardListCard.tsx:108 +#: src/view/com/feeds/FeedSourceCard.tsx:317 +#: src/view/com/modals/ListAddRemoveUsers.tsx:269 #: src/view/com/modals/SelfLabel.tsx:84 -#: src/view/com/modals/UserAddRemoveLists.tsx:219 +#: src/view/com/modals/UserAddRemoveLists.tsx:230 #: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" -msgstr "移除" +msgstr "刪除" + +#: src/components/StarterPack/Wizard/WizardListCard.tsx:58 +msgid "Remove {displayName} from starter pack" +msgstr "從您的入門包刪除 {displayName}" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" -msgstr "刪除帳號" +msgstr "移除帳號" -#: src/view/com/util/UserAvatar.tsx:369 +#: src/view/com/util/UserAvatar.tsx:396 msgid "Remove Avatar" msgstr "刪除頭像" @@ -3794,9 +4513,13 @@ msgstr "刪除頭像" msgid "Remove Banner" msgstr "刪除橫幅" +#: src/screens/Messages/Conversation/MessageInputEmbed.tsx:218 +msgid "Remove embed" +msgstr "刪除嵌入" + #: src/view/com/posts/FeedErrorMessage.tsx:169 -#: src/view/com/posts/FeedShutdownMsg.tsx:113 -#: src/view/com/posts/FeedShutdownMsg.tsx:117 +#: src/view/com/posts/FeedShutdownMsg.tsx:115 +#: src/view/com/posts/FeedShutdownMsg.tsx:119 msgid "Remove feed" msgstr "刪除動態源" @@ -3804,15 +4527,16 @@ msgstr "刪除動態源" msgid "Remove feed?" msgstr "刪除動態源?" -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:234 -#: src/view/screens/ProfileFeed.tsx:330 -#: src/view/screens/ProfileFeed.tsx:336 -#: src/view/screens/ProfileList.tsx:438 +#: src/view/com/feeds/FeedSourceCard.tsx:188 +#: src/view/com/feeds/FeedSourceCard.tsx:266 +#: src/view/screens/ProfileFeed.tsx:333 +#: src/view/screens/ProfileFeed.tsx:339 +#: src/view/screens/ProfileList.tsx:443 msgid "Remove from my feeds" msgstr "從我的動態源中刪除" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/components/FeedCard.tsx:304 +#: src/view/com/feeds/FeedSourceCard.tsx:312 msgid "Remove from my feeds?" msgstr "從我的動態源中刪除?" @@ -3820,159 +4544,191 @@ msgstr "從我的動態源中刪除?" msgid "Remove image" msgstr "刪除圖片" -#: src/view/com/composer/ExternalEmbed.tsx:87 +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:28 msgid "Remove image preview" msgstr "刪除圖片預覽" #: src/components/dialogs/MutedWords.tsx:329 msgid "Remove mute word from your list" -msgstr "從您的列表中移除靜音文字" +msgstr "從您的列表中刪除靜音文字" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:223 +#: src/view/screens/Search/Search.tsx:974 +msgid "Remove profile" +msgstr "刪除個人檔案" + +#: src/view/screens/Search/Search.tsx:976 +msgid "Remove profile from search history" +msgstr "刪除搜尋紀錄中的個人檔案" + +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:238 msgid "Remove quote" msgstr "刪除引用貼文" -#: src/view/com/modals/Repost.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:93 +#: src/view/com/util/post-ctrls/RepostButton.tsx:109 msgid "Remove repost" msgstr "刪除轉貼貼文" #: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" -msgstr "將這個動態源從儲存的動態源列表中刪除" +msgstr "將這個動態源從您已儲存之動態源列表中刪除" -#: src/view/com/modals/ListAddRemoveUsers.tsx:199 -#: src/view/com/modals/UserAddRemoveLists.tsx:152 +#: src/view/com/modals/ListAddRemoveUsers.tsx:200 +#: src/view/com/modals/UserAddRemoveLists.tsx:165 msgid "Removed from list" msgstr "從列表中刪除" -#: src/view/com/feeds/FeedSourceCard.tsx:125 +#: src/view/com/feeds/FeedSourceCard.tsx:139 msgid "Removed from my feeds" -msgstr "從我的動態源中刪除" +msgstr "已從我的動態源中刪除" #: src/view/com/posts/FeedShutdownMsg.tsx:44 -#: src/view/screens/ProfileFeed.tsx:191 -#: src/view/screens/ProfileList.tsx:315 +#: src/view/screens/ProfileFeed.tsx:192 +#: src/view/screens/ProfileList.tsx:320 msgid "Removed from your feeds" -msgstr "從您的動態源中刪除" +msgstr "從您的動態中刪除" -#: src/view/com/composer/ExternalEmbed.tsx:88 -msgid "Removes default thumbnail from {0}" -msgstr "從 {0} 中刪除預設縮圖" - -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:239 msgid "Removes quoted post" msgstr "刪除已轉貼貼文" -#: src/view/com/posts/FeedShutdownMsg.tsx:126 -#: src/view/com/posts/FeedShutdownMsg.tsx:130 -msgid "Replace with Discover" -msgstr "" +#: src/view/com/composer/ExternalEmbedRemoveBtn.tsx:29 +msgid "Removes the image preview" +msgstr "移除圖片預覽" -#: src/view/screens/Profile.tsx:194 +#: src/view/com/posts/FeedShutdownMsg.tsx:128 +#: src/view/com/posts/FeedShutdownMsg.tsx:132 +msgid "Replace with Discover" +msgstr "用「Discover」動態源取代" + +#: src/view/screens/Profile.tsx:210 msgid "Replies" msgstr "回覆" -#: src/view/com/threadgate/WhoCanReply.tsx:98 -msgid "Replies to this thread are disabled" -msgstr "對此對話串的回覆已停用" +#: src/components/WhoCanReply.tsx:71 +msgid "Replies disabled" +msgstr "回覆已被停用" -#: src/view/com/composer/Composer.tsx:435 +#: src/components/WhoCanReply.tsx:243 +msgid "Replies to this thread are disabled" +msgstr "此討論串的回覆已停用" + +#: src/view/com/composer/Composer.tsx:507 msgctxt "action" msgid "Reply" msgstr "回覆" -#: src/view/screens/PreferencesFollowingFeed.tsx:143 +#: src/view/screens/PreferencesFollowingFeed.tsx:142 msgid "Reply Filters" msgstr "回覆過濾器" -#: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/post/Post.tsx:197 +#: src/view/com/posts/FeedItem.tsx:458 msgctxt "description" msgid "Reply to <0><1/>" msgstr "對 <0><1/> 回覆" -#: src/components/dms/MessageMenu.tsx:109 +#: src/view/com/posts/FeedItem.tsx:456 +msgctxt "description" +msgid "Reply to a blocked post" +msgstr "對已被封鎖的貼文回覆" + +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:454 +msgctxt "description" +msgid "Reply to you" +msgstr "對您回覆" + +#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessagesListBlockedFooter.tsx:77 +#: src/components/dms/MessagesListBlockedFooter.tsx:84 msgid "Report" -msgstr "" +msgstr "檢舉" -#: src/components/dms/ConvoMenu.tsx:146 -#: src/components/dms/ConvoMenu.tsx:150 -#~ msgid "Report account" -#~ msgstr "" - -#: src/view/com/profile/ProfileMenu.tsx:319 -#: src/view/com/profile/ProfileMenu.tsx:322 +#: src/view/com/profile/ProfileMenu.tsx:323 +#: src/view/com/profile/ProfileMenu.tsx:326 msgid "Report Account" msgstr "檢舉帳號" -#: src/components/dms/ConvoMenu.tsx:163 -#: src/components/dms/ConvoMenu.tsx:166 -#: src/components/dms/ConvoMenu.tsx:198 +#: src/components/dms/ConvoMenu.tsx:197 +#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" -msgstr "" +msgstr "檢舉對話" #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "檢舉對話框" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:349 +#: src/view/screens/ProfileFeed.tsx:350 +#: src/view/screens/ProfileFeed.tsx:352 msgid "Report feed" msgstr "檢舉動態源" -#: src/view/screens/ProfileList.tsx:480 +#: src/view/screens/ProfileList.tsx:485 msgid "Report List" msgstr "檢舉列表" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:130 msgid "Report message" -msgstr "" +msgstr "檢舉訊息" -#: src/view/com/util/forms/PostDropdownBtn.tsx:363 -#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:407 +#: src/view/com/util/forms/PostDropdownBtn.tsx:409 msgid "Report post" msgstr "檢舉貼文" -#: src/components/ReportDialog/SelectReportOptionView.tsx:45 +#: src/screens/StarterPack/StarterPackScreen.tsx:582 +#: src/screens/StarterPack/StarterPackScreen.tsx:585 +msgid "Report starter pack" +msgstr "檢舉入門包" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "檢舉這個內容" -#: src/components/ReportDialog/SelectReportOptionView.tsx:58 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Report this feed" msgstr "檢舉這個動態源" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Report this list" msgstr "檢舉這個列表" -#: src/components/dms/MessageReportDialog.tsx:41 -#: src/components/dms/MessageReportDialog.tsx:137 -#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +#: src/components/dms/ReportDialog.tsx:48 +#: src/components/dms/ReportDialog.tsx:142 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 msgid "Report this message" -msgstr "" +msgstr "檢舉這個訊息" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" msgstr "檢舉這則貼文" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +msgid "Report this starter pack" +msgstr "檢舉這個入門包" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 msgid "Report this user" msgstr "檢舉這個用戶" -#: src/view/com/modals/Repost.tsx:44 -#: src/view/com/modals/Repost.tsx:49 -#: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:65 +#: src/view/com/util/post-ctrls/RepostButton.tsx:94 +#: src/view/com/util/post-ctrls/RepostButton.tsx:110 msgctxt "action" msgid "Repost" msgstr "轉貼" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Repost" msgstr "轉貼" -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 +#: src/screens/StarterPack/StarterPackScreen.tsx:524 +#: src/view/com/util/post-ctrls/RepostButton.tsx:86 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:47 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:93 msgid "Repost or quote post" msgstr "轉貼或引用貼文" @@ -3980,19 +4736,24 @@ msgstr "轉貼或引用貼文" msgid "Reposted By" msgstr "轉貼" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:263 msgid "Reposted by {0}" msgstr "由 {0} 轉貼" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:282 msgid "Reposted by <0><1/>" msgstr "由 <0><1/> 轉貼" -#: src/view/com/notifications/FeedItem.tsx:160 +#: src/view/com/posts/FeedItem.tsx:261 +#: src/view/com/posts/FeedItem.tsx:280 +msgid "Reposted by you" +msgstr "由您轉貼" + +#: src/view/com/notifications/FeedItem.tsx:188 msgid "reposted your post" msgstr "轉貼您的貼文" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:202 msgid "Reposts of this post" msgstr "轉貼這則貼文" @@ -4001,38 +4762,38 @@ msgstr "轉貼這則貼文" msgid "Request Change" msgstr "請求變更" -#: src/view/com/modals/ChangePassword.tsx:243 -#: src/view/com/modals/ChangePassword.tsx:245 +#: src/view/com/modals/ChangePassword.tsx:242 +#: src/view/com/modals/ChangePassword.tsx:244 msgid "Request Code" msgstr "請求代碼" -#: src/view/screens/AccessibilitySettings.tsx:82 +#: src/view/screens/AccessibilitySettings.tsx:88 msgid "Require alt text before posting" msgstr "要求發佈前提供替代文字" #: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" -msgstr "需要電子郵件驗證碼才能登入您的帳戶" +msgstr "登入時要求電子郵件驗證碼" -#: src/screens/Signup/StepInfo/index.tsx:69 +#: src/screens/Signup/StepInfo/index.tsx:132 msgid "Required for this provider" msgstr "此供應商要求必填" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" -msgstr "重發 email" +msgstr "重新傳送郵件" -#: src/view/com/modals/ChangePassword.tsx:187 +#: src/view/com/modals/ChangePassword.tsx:186 msgid "Reset code" msgstr "重設碼" -#: src/view/com/modals/ChangePassword.tsx:194 +#: src/view/com/modals/ChangePassword.tsx:193 msgid "Reset Code" msgstr "重設碼" -#: src/view/screens/Settings/index.tsx:833 -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:905 msgid "Reset onboarding state" msgstr "重設初始設定進行狀態" @@ -4040,20 +4801,20 @@ msgstr "重設初始設定進行狀態" msgid "Reset password" msgstr "重設密碼" -#: src/view/screens/Settings/index.tsx:823 -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:882 +#: src/view/screens/Settings/index.tsx:885 msgid "Reset preferences state" msgstr "重設偏好狀態" -#: src/view/screens/Settings/index.tsx:834 +#: src/view/screens/Settings/index.tsx:903 msgid "Resets the onboarding state" msgstr "重設初始設定狀態" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:883 msgid "Resets the preferences state" msgstr "重設偏好狀態" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:312 msgid "Retries login" msgstr "重試登入" @@ -4062,26 +4823,24 @@ msgstr "重試登入" msgid "Retries the last action, which errored out" msgstr "重試上次出錯的操作" -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageItem.tsx:235 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 -#: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:236 -#: src/screens/Onboarding/StepInterests/index.tsx:239 -#: src/screens/Signup/index.tsx:207 +#: src/components/Lists.tsx:104 +#: src/components/StarterPack/ProfileStarterPacks.tsx:318 +#: src/screens/Login/LoginForm.tsx:311 +#: src/screens/Login/LoginForm.tsx:318 +#: src/screens/Messages/Conversation/MessageListError.tsx:25 +#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Signup/BackNextButtons.tsx:52 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 msgid "Retry" msgstr "重試" -#: src/screens/Messages/Conversation/MessageListError.tsx:54 -#~ msgid "Retry." -#~ msgstr "" - #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:966 +#: src/screens/StarterPack/StarterPackScreen.tsx:728 +#: src/view/screens/ProfileList.tsx:971 msgid "Return to previous page" msgstr "返回上一頁" @@ -4090,26 +4849,28 @@ msgid "Returns to home page" msgstr "返回首頁" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:112 +#: src/view/screens/ProfileFeed.tsx:113 msgid "Returns to previous page" msgstr "返回上一頁" #: src/components/dialogs/BirthDateSettings.tsx:125 +#: src/components/dialogs/ThreadgateEditor.tsx:88 +#: src/components/StarterPack/QrCodeDialog.tsx:187 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 #: src/view/com/modals/ChangeHandle.tsx:168 -#: src/view/com/modals/CreateOrEditList.tsx:340 +#: src/view/com/modals/CreateOrEditList.tsx:326 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "儲存" -#: src/view/com/lightbox/Lightbox.tsx:133 -#: src/view/com/modals/CreateOrEditList.tsx:348 +#: src/view/com/lightbox/Lightbox.tsx:139 +#: src/view/com/modals/CreateOrEditList.tsx:334 msgctxt "action" msgid "Save" msgstr "儲存" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "儲存替代文字" @@ -4125,35 +4886,40 @@ msgstr "儲存更改" msgid "Save handle change" msgstr "儲存帳號代碼更改" +#: src/components/StarterPack/ShareDialog.tsx:151 +#: src/components/StarterPack/ShareDialog.tsx:158 +msgid "Save image" +msgstr "儲存圖片" + #: src/view/com/modals/crop-image/CropImage.web.tsx:169 msgid "Save image crop" msgstr "儲存圖片裁剪" -#: src/view/screens/ProfileFeed.tsx:331 -#: src/view/screens/ProfileFeed.tsx:337 +#: src/components/StarterPack/QrCodeDialog.tsx:181 +msgid "Save QR code" +msgstr "儲存 QR Code" + +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Save to my feeds" msgstr "儲存到我的動態源" -#: src/view/screens/SavedFeeds.tsx:144 +#: src/view/screens/SavedFeeds.tsx:145 msgid "Saved Feeds" -msgstr "已儲存動態源" +msgstr "已儲存之動態源" -#: src/view/com/lightbox/Lightbox.tsx:82 +#: src/view/com/lightbox/Lightbox.tsx:88 msgid "Saved to your camera roll" -msgstr "" +msgstr "儲存至裝置相簿" -#: src/view/com/lightbox/Lightbox.tsx:81 -#~ msgid "Saved to your camera roll." -#~ msgstr "儲存到您的圖片庫。" - -#: src/view/screens/ProfileFeed.tsx:200 -#: src/view/screens/ProfileList.tsx:295 +#: src/view/screens/ProfileFeed.tsx:201 +#: src/view/screens/ProfileList.tsx:300 msgid "Saved to your feeds" msgstr "儲存到您的動態源" #: src/view/com/modals/EditProfile.tsx:226 msgid "Saves any changes to your profile" -msgstr "儲存個人資料中所做的變更" +msgstr "儲存個人檔案中所做的變更" #: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" @@ -4161,39 +4927,47 @@ msgstr "儲存帳號代碼更改至 {handle}" #: src/view/com/modals/crop-image/CropImage.web.tsx:170 msgid "Saves image crop settings" -msgstr "保存圖片裁剪設定" +msgstr "儲存圖片裁剪設定" -#: src/screens/Onboarding/index.tsx:48 +#: src/components/dms/ChatEmptyPill.tsx:33 +#: src/components/NewskieDialog.tsx:105 +#: src/view/com/notifications/FeedItem.tsx:386 +#: src/view/com/notifications/FeedItem.tsx:411 +msgid "Say hello!" +msgstr "說句「你好!👋」" + +#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/state.ts:97 msgid "Science" msgstr "科學" -#: src/view/screens/ProfileList.tsx:922 +#: src/view/screens/ProfileList.tsx:927 msgid "Scroll to top" msgstr "滾動到頂部" -#: src/components/dms/NewChat.tsx:184 -#: src/Navigation.tsx:502 -#: src/view/com/auth/LoggedOut.tsx:123 -#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:504 +#: src/Navigation.tsx:537 +#: src/view/com/auth/LoggedOut.tsx:124 +#: src/view/com/modals/ListAddRemoveUsers.tsx:76 #: src/view/com/util/forms/SearchInput.tsx:67 #: src/view/com/util/forms/SearchInput.tsx:79 -#: src/view/screens/Search/Search.tsx:444 -#: src/view/screens/Search/Search.tsx:757 -#: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:196 -#: src/view/shell/desktop/LeftNav.tsx:329 -#: src/view/shell/desktop/Search.tsx:194 -#: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:393 -#: src/view/shell/Drawer.tsx:394 +#: src/view/screens/Search/Search.tsx:421 +#: src/view/screens/Search/Search.tsx:791 +#: src/view/screens/Search/Search.tsx:813 +#: src/view/shell/bottom-bar/BottomBar.tsx:182 +#: src/view/shell/desktop/LeftNav.tsx:354 +#: src/view/shell/desktop/Search.tsx:195 +#: src/view/shell/desktop/Search.tsx:204 +#: src/view/shell/Drawer.tsx:384 +#: src/view/shell/Drawer.tsx:385 msgid "Search" msgstr "搜尋" -#: src/view/shell/desktop/Search.tsx:235 +#: src/view/shell/desktop/Search.tsx:236 msgid "Search for \"{query}\"" msgstr "搜尋「{query}」" -#: src/view/screens/Search/Search.tsx:839 +#: src/view/screens/Search/Search.tsx:869 msgid "Search for \"{searchText}\"" msgstr "搜尋「{searchText}」" @@ -4205,25 +4979,28 @@ msgstr "搜尋所有由 @{authorHandle} 發佈並具有標籤 {displayTag} 的 msgid "Search for all posts with tag {displayTag}" msgstr "搜尋所有具有標籤 {displayTag} 的貼文" -#: src/components/dms/NewChat.tsx:226 -msgid "Search for someone to start a conversation with." -msgstr "" +#: src/screens/StarterPack/Wizard/index.tsx:491 +msgid "Search for feeds that you want to suggest to others." +msgstr "搜尋您想推薦給別人的動態源。" -#: src/view/com/auth/LoggedOut.tsx:105 #: src/view/com/auth/LoggedOut.tsx:106 -#: src/view/com/modals/ListAddRemoveUsers.tsx:70 +#: src/view/com/auth/LoggedOut.tsx:107 +#: src/view/com/modals/ListAddRemoveUsers.tsx:71 msgid "Search for users" msgstr "搜尋用戶" -#: src/components/dialogs/GifSelect.tsx:158 +#: src/components/dialogs/GifSelect.ios.tsx:159 +#: src/components/dialogs/GifSelect.tsx:169 msgid "Search GIFs" msgstr "搜尋 GIF" -#: src/components/dms/NewChat.tsx:183 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:524 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:525 msgid "Search profiles" -msgstr "" +msgstr "搜尋用戶" -#: src/components/dialogs/GifSelect.tsx:159 +#: src/components/dialogs/GifSelect.ios.tsx:160 +#: src/components/dialogs/GifSelect.tsx:170 msgid "Search Tenor" msgstr "搜尋 Tenor" @@ -4233,26 +5010,21 @@ msgstr "所需的安全步驟" #: src/components/TagMenu/index.web.tsx:66 msgid "See {truncatedTag} posts" -msgstr "查看 {truncatedTag} 的貼文" +msgstr "搜尋 {truncatedTag}" #: src/components/TagMenu/index.web.tsx:83 msgid "See {truncatedTag} posts by user" -msgstr "查看用戶的 {truncatedTag} 貼文" +msgstr "查看該用戶包含 {truncatedTag} 的貼文" #: src/components/TagMenu/index.tsx:128 msgid "See <0>{displayTag} posts" -msgstr "查看 <0>{displayTag} 的貼文" +msgstr "搜尋 <0>{displayTag}" #: src/components/TagMenu/index.tsx:187 msgid "See <0>{displayTag} posts by this user" -msgstr "查看這個用戶的 <0>{displayTag} 貼文" +msgstr "查看該用戶包含 <0>{displayTag} 的貼文" -#: src/view/com/notifications/FeedItem.tsx:411 -#: src/view/com/util/UserAvatar.tsx:400 -msgid "See profile" -msgstr "查看個人檔案" - -#: src/view/screens/SavedFeeds.tsx:186 +#: src/view/screens/SavedFeeds.tsx:187 msgid "See this guide" msgstr "查看指南" @@ -4262,7 +5034,7 @@ msgstr "選擇 {item}" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 msgid "Select a color" -msgstr "" +msgstr "選擇一個顏色" #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" @@ -4270,116 +5042,107 @@ msgstr "選擇帳號" #: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 msgid "Select an avatar" -msgstr "" +msgstr "選擇一個頭像" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 msgid "Select an emoji" -msgstr "" +msgstr "選擇一個表情符號" #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "從現有帳號中選擇" -#: src/view/com/composer/photos/SelectGifBtn.tsx:36 +#: src/view/com/composer/photos/SelectGifBtn.tsx:35 msgid "Select GIF" msgstr "選擇 GIF" -#: src/components/dialogs/GifSelect.tsx:253 +#: src/components/dialogs/GifSelect.shared.tsx:29 msgid "Select GIF \"{0}\"" msgstr "選擇 GIF「{0}」" -#: src/view/screens/LanguageSettings.tsx:299 +#: src/view/screens/LanguageSettings.tsx:301 msgid "Select languages" msgstr "選擇語言" #: src/components/ReportDialog/SelectLabelerView.tsx:30 msgid "Select moderator" -msgstr "選擇限制服務提供者" +msgstr "選擇內容管理服務提供者" #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "選擇 {numItems} 個項目中的第 {i} 項" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 -msgid "Select some accounts below to follow" -msgstr "在下面選擇一些帳號來跟隨" - #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" -msgstr "" +msgstr "選擇 {emojiName} 表情符號作為您的頭像" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:152 msgid "Select the moderation service(s) to report to" -msgstr "選擇要檢舉的限制服務提供者" +msgstr "選擇要向哪些內容管理服務提供者提出檢舉" #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." msgstr "選擇用來託管您的資料的服務商。" -#: src/screens/Onboarding/StepTopicalFeeds.tsx:100 -msgid "Select topical feeds to follow from the list below" -msgstr "從下面的列表中選擇主題動態源來跟隨" +#: src/view/com/composer/videos/SelectVideoBtn.tsx:53 +msgid "Select video" +msgstr "選擇影片" -#: src/screens/Onboarding/StepModeration/index.tsx:63 -msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "選擇您想看到(或不想看到)的內容,剩下的由我們來處理。" - -#: src/view/screens/LanguageSettings.tsx:281 +#: src/view/screens/LanguageSettings.tsx:283 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." -msgstr "選擇您希望訂閱動態源中所包含的語言。未選擇任何語言時會預設顯示所有語言。" +msgstr "選擇您希望訂閱的動態源中所包含的語言。未選擇任何語言時會預設顯示所有語言。" -#: src/view/screens/LanguageSettings.tsx:98 +#: src/view/screens/LanguageSettings.tsx:99 msgid "Select your app language for the default text to display in the app." msgstr "選擇應用程式中的預設語言。" -#: src/screens/Signup/StepInfo/index.tsx:135 +#: src/screens/Signup/StepInfo/index.tsx:192 msgid "Select your date of birth" msgstr "選擇您的出生日期" -#: src/screens/Onboarding/StepInterests/index.tsx:211 +#: src/screens/Onboarding/StepInterests/index.tsx:225 msgid "Select your interests from the options below" msgstr "從下面選擇您感興趣的選項" -#: src/view/screens/LanguageSettings.tsx:190 +#: src/view/screens/LanguageSettings.tsx:192 msgid "Select your preferred language for translations in your feed." -msgstr "選擇您在動態源中翻譯的偏好的目標語言。" +msgstr "選擇您在動態中翻譯的偏好目標語言。" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:117 -msgid "Select your primary algorithmic feeds" -msgstr "選擇您的動態的主要算法" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:133 -msgid "Select your secondary algorithmic feeds" -msgstr "選擇您的動態的次要算法" +#: src/components/dms/ChatEmptyPill.tsx:38 +msgid "Send a neat website!" +msgstr "發送一個妙趣的網站!" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "發送確認電子郵件" -#: src/view/com/modals/DeleteAccount.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:149 msgid "Send email" msgstr "發送電子郵件" -#: src/view/com/modals/DeleteAccount.tsx:143 +#: src/view/com/modals/DeleteAccount.tsx:162 msgctxt "action" msgid "Send Email" msgstr "發送電子郵件" -#: src/view/shell/Drawer.tsx:328 -#: src/view/shell/Drawer.tsx:349 +#: src/view/shell/Drawer.tsx:325 msgid "Send feedback" msgstr "提交意見" -#: src/screens/Messages/Conversation/MessageInput.tsx:110 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.tsx:163 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:155 msgid "Send message" -msgstr "" +msgstr "重送訊息" -#: src/components/dms/MessageReportDialog.tsx:207 -#: src/components/dms/MessageReportDialog.tsx:210 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/dms/dialogs/ShareViaChatDialog.tsx:64 +msgid "Send post to..." +msgstr "傳送貼文給…" + +#: src/components/dms/ReportDialog.tsx:234 +#: src/components/dms/ReportDialog.tsx:237 +#: src/components/ReportDialog/SubmitView.tsx:232 +#: src/components/ReportDialog/SubmitView.tsx:236 msgid "Send report" msgstr "提交檢舉" @@ -4392,7 +5155,12 @@ msgstr "將檢舉提交至 {0}" msgid "Send verification email" msgstr "發送驗證電子郵件" -#: src/view/com/modals/DeleteAccount.tsx:132 +#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +msgid "Send via direct message" +msgstr "透過私人訊息發送" + +#: src/view/com/modals/DeleteAccount.tsx:151 msgid "Sends email with confirmation code for account deletion" msgstr "發送包含帳號刪除確認碼的電子郵件" @@ -4400,7 +5168,7 @@ msgstr "發送包含帳號刪除確認碼的電子郵件" msgid "Server address" msgstr "伺服器地址" -#: src/screens/Moderation/index.tsx:304 +#: src/screens/Moderation/index.tsx:307 msgid "Set birthdate" msgstr "設定生日" @@ -4408,25 +5176,25 @@ msgstr "設定生日" msgid "Set new password" msgstr "設定新密碼" -#: src/view/screens/PreferencesFollowingFeed.tsx:224 +#: src/view/screens/PreferencesFollowingFeed.tsx:223 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." -msgstr "將此設定設為「關」以隱藏動態中所有引用的貼文,但轉貼依然會顯示。" +msgstr "將此選項設為「關」以隱藏動態中所有引用的貼文,但轉貼依然會顯示。" -#: src/view/screens/PreferencesFollowingFeed.tsx:121 +#: src/view/screens/PreferencesFollowingFeed.tsx:120 msgid "Set this setting to \"No\" to hide all replies from your feed." -msgstr "將此設定設為「關」以隱藏動態中所有回覆貼文。" +msgstr "將此選項設為「關」以隱藏動態中所有回覆貼文。" -#: src/view/screens/PreferencesFollowingFeed.tsx:190 +#: src/view/screens/PreferencesFollowingFeed.tsx:189 msgid "Set this setting to \"No\" to hide all reposts from your feed." -msgstr "將此設定設為「關」以隱藏動態的所有轉貼貼文。" +msgstr "將此選項設為「關」以隱藏動態的所有轉貼貼文。" -#: src/view/screens/PreferencesThreads.tsx:122 +#: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." -msgstr "將此設定項設為「開」以單頁顯示樹狀回覆,這是一項實驗性功能。" +msgstr "將此選項設為「開」以單頁顯示樹狀回覆,這是一項實驗性功能。" -#: src/view/screens/PreferencesFollowingFeed.tsx:260 +#: src/view/screens/PreferencesFollowingFeed.tsx:259 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." -msgstr "將此設定為「是」以在「Following 動態源」中顯示您追蹤的動態源中的選錄貼文,這是一個實驗性功能。" +msgstr "將此選項設為「是」以在「Following」動態源中顯示您已儲存之動態源中的選錄貼文,這是一項實驗性功能。" #: src/screens/Onboarding/Layout.tsx:48 msgid "Set up your account" @@ -4436,23 +5204,23 @@ msgstr "設定您的帳號" msgid "Sets Bluesky username" msgstr "設定 Bluesky 帳號代碼" -#: src/view/screens/Settings/index.tsx:452 +#: src/view/screens/Settings/index.tsx:463 msgid "Sets color theme to dark" msgstr "將色彩主題設定為深色" -#: src/view/screens/Settings/index.tsx:445 +#: src/view/screens/Settings/index.tsx:456 msgid "Sets color theme to light" msgstr "將色彩主題設定為亮色" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:450 msgid "Sets color theme to system setting" msgstr "將色彩主題設定為跟隨系統" -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:489 msgid "Sets dark theme to the dark theme" msgstr "將深色主題設定為深色" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:482 msgid "Sets dark theme to the dim theme" msgstr "將深色主題設定為昏暗" @@ -4462,82 +5230,118 @@ msgstr "設定用於重設密碼的電子郵件" #: src/view/com/modals/crop-image/CropImage.web.tsx:146 msgid "Sets image aspect ratio to square" -msgstr "將圖片寬高比設定為正方形" +msgstr "將圖片比例設定為正方形" #: src/view/com/modals/crop-image/CropImage.web.tsx:136 msgid "Sets image aspect ratio to tall" -msgstr "將圖像的寬高比設定為高" +msgstr "將圖片比例設定為高" #: src/view/com/modals/crop-image/CropImage.web.tsx:126 msgid "Sets image aspect ratio to wide" -msgstr "將圖像的寬高比設定為寬" +msgstr "將圖片比例設定為寬" -#: src/Navigation.tsx:146 -#: src/screens/Messages/Settings/index.tsx:21 -#: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:558 -#: src/view/shell/Drawer.tsx:559 +#: src/Navigation.tsx:153 +#: src/view/screens/Settings/index.tsx:334 +#: src/view/shell/desktop/LeftNav.tsx:401 +#: src/view/shell/Drawer.tsx:549 +#: src/view/shell/Drawer.tsx:550 msgid "Settings" msgstr "設定" #: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." -msgstr "性行為或性暗示裸露。" +msgstr "性行為或色情裸露。" #: src/lib/moderation/useGlobalLabelStrings.ts:38 msgid "Sexually Suggestive" msgstr "性暗示" -#: src/view/com/lightbox/Lightbox.tsx:142 +#: src/components/StarterPack/QrCodeDialog.tsx:177 +#: src/screens/StarterPack/StarterPackScreen.tsx:400 +#: src/screens/StarterPack/StarterPackScreen.tsx:571 +#: src/view/com/profile/ProfileMenu.tsx:219 +#: src/view/com/profile/ProfileMenu.tsx:228 +#: src/view/com/util/forms/PostDropdownBtn.tsx:310 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:311 +#: src/view/screens/ProfileList.tsx:428 +msgid "Share" +msgstr "分享" + +#: src/view/com/lightbox/Lightbox.tsx:148 msgctxt "action" msgid "Share" msgstr "分享" -#: src/view/com/profile/ProfileMenu.tsx:215 -#: src/view/com/profile/ProfileMenu.tsx:224 -#: src/view/com/util/forms/PostDropdownBtn.tsx:266 -#: src/view/com/util/forms/PostDropdownBtn.tsx:275 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:423 -msgid "Share" -msgstr "分享" +#: src/components/dms/ChatEmptyPill.tsx:37 +msgid "Share a cool story!" +msgstr "分享一個有趣的故事!" -#: src/view/com/profile/ProfileMenu.tsx:373 -#: src/view/com/util/forms/PostDropdownBtn.tsx:420 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:304 +#: src/components/dms/ChatEmptyPill.tsx:36 +msgid "Share a fun fact!" +msgstr "分享一個趣聞!📰" + +#: src/view/com/profile/ProfileMenu.tsx:377 +#: src/view/com/util/forms/PostDropdownBtn.tsx:464 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:327 msgid "Share anyway" msgstr "仍然分享" -#: src/view/screens/ProfileFeed.tsx:357 -#: src/view/screens/ProfileFeed.tsx:359 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileFeed.tsx:362 msgid "Share feed" msgstr "分享動態源" +#: src/components/StarterPack/ShareDialog.tsx:124 +#: src/components/StarterPack/ShareDialog.tsx:131 +#: src/screens/StarterPack/StarterPackScreen.tsx:575 +msgid "Share link" +msgstr "分享連結" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Share Link" msgstr "分享連結" +#: src/components/StarterPack/ShareDialog.tsx:88 +msgid "Share link dialog" +msgstr "分享連結對話窗" + +#: src/components/StarterPack/ShareDialog.tsx:135 +#: src/components/StarterPack/ShareDialog.tsx:146 +msgid "Share QR code" +msgstr "分享 QR Code" + +#: src/screens/StarterPack/StarterPackScreen.tsx:393 +msgid "Share this starter pack" +msgstr "分享這個入門包" + +#: src/components/StarterPack/ShareDialog.tsx:100 +msgid "Share this starter pack and help people join your community on Bluesky." +msgstr "分享這個入門包,以幫助別人加入您在 Bluesky 的社群。" + +#: src/components/dms/ChatEmptyPill.tsx:34 +msgid "Share your favorite feed!" +msgstr "分享您喜愛的動態!" + +#: src/Navigation.tsx:242 +msgid "Shared Preferences Tester" +msgstr "共享偏好測試器" + #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" msgstr "分享網站的連結" -#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/ContentHider.tsx:116 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:372 +#: src/components/moderation/PostHider.tsx:122 +#: src/view/screens/Settings/index.tsx:383 msgid "Show" msgstr "顯示" -#: src/view/screens/PreferencesFollowingFeed.tsx:68 -#~ msgid "Show all replies" -#~ msgstr "顯示所有回覆貼文" - -#: src/view/com/util/post-embeds/GifEmbed.tsx:167 +#: src/view/com/util/post-embeds/GifEmbed.tsx:175 msgid "Show alt text" -msgstr "" +msgstr "顯示替代文字" #: src/components/moderation/ScreenHider.tsx:169 #: src/components/moderation/ScreenHider.tsx:172 @@ -4553,83 +5357,59 @@ msgstr "顯示標記" msgid "Show badge and filter from feeds" msgstr "顯示標記並從動態源中篩選" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:200 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:215 msgid "Show follows similar to {0}" msgstr "顯示類似於 {0} 的跟隨者" -#: src/view/com/util/forms/PostDropdownBtn.tsx:305 -#: src/view/com/util/forms/PostDropdownBtn.tsx:307 -msgid "Show less like this" -msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show hidden replies" +msgstr "顯示隱藏回覆" -#: src/view/com/post-thread/PostThreadItem.tsx:508 -#: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/util/forms/PostDropdownBtn.tsx:349 +#: src/view/com/util/forms/PostDropdownBtn.tsx:351 +msgid "Show less like this" +msgstr "減少顯示此類內容" + +#: src/view/com/post-thread/PostThreadItem.tsx:530 +#: src/view/com/post/Post.tsx:235 +#: src/view/com/posts/FeedItem.tsx:410 msgid "Show More" msgstr "顯示更多" -#: src/view/com/util/forms/PostDropdownBtn.tsx:297 -#: src/view/com/util/forms/PostDropdownBtn.tsx:299 +#: src/view/com/util/forms/PostDropdownBtn.tsx:341 +#: src/view/com/util/forms/PostDropdownBtn.tsx:343 msgid "Show more like this" -msgstr "" +msgstr "顯示更多此類內容" -#: src/view/screens/PreferencesFollowingFeed.tsx:257 +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:23 +msgid "Show muted replies" +msgstr "顯示靜音回覆" + +#: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" -msgstr "顯示來自已儲存動態源的貼文" +msgstr "顯示來自我的動態源之貼文" -#: src/view/screens/PreferencesFollowingFeed.tsx:221 +#: src/view/screens/PreferencesFollowingFeed.tsx:220 msgid "Show Quote Posts" msgstr "顯示引用貼文" -#: src/screens/Onboarding/StepFollowingFeed.tsx:119 -msgid "Show quote-posts in Following feed" -msgstr "在訂閱的動態消息中顯示引用貼文" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:135 -msgid "Show quotes in Following" -msgstr "在跟隨中顯示引用貼文" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:95 -msgid "Show re-posts in Following feed" -msgstr "在跟隨動態源中顯示轉貼貼文" - -#: src/view/screens/PreferencesFollowingFeed.tsx:118 +#: src/view/screens/PreferencesFollowingFeed.tsx:117 msgid "Show Replies" msgstr "顯示回覆" -#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." msgstr "在所有其他回覆之前顯示您跟隨的人的回覆。" -#: src/screens/Onboarding/StepFollowingFeed.tsx:87 -msgid "Show replies in Following" -msgstr "在跟隨中顯示回覆" - -#: src/screens/Onboarding/StepFollowingFeed.tsx:71 -msgid "Show replies in Following feed" -msgstr "在跟隨動態源中顯示回覆" - -#: src/view/screens/PreferencesFollowingFeed.tsx:70 -#~ msgid "Show replies with at least {value} {0}" -#~ msgstr "顯示至少包含 {value} 個 {0} 的回覆" - -#: src/view/screens/PreferencesFollowingFeed.tsx:187 +#: src/view/screens/PreferencesFollowingFeed.tsx:186 msgid "Show Reposts" msgstr "顯示轉貼貼文" -#: src/screens/Onboarding/StepFollowingFeed.tsx:111 -msgid "Show reposts in Following" -msgstr "在跟隨中顯示轉貼貼文" - -#: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/ContentHider.tsx:69 +#: src/components/moderation/PostHider.tsx:79 msgid "Show the content" msgstr "顯示內容" -#: src/view/com/notifications/FeedItem.tsx:347 -msgid "Show users" -msgstr "顯示用戶" - #: src/lib/moderation/useLabelBehaviorDescription.ts:58 msgid "Show warning" msgstr "顯示警告" @@ -4646,17 +5426,17 @@ msgstr "在您的動態中顯示來自 {0} 的貼文" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:177 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:353 -#: src/view/shell/bottom-bar/BottomBar.tsx:354 -#: src/view/shell/bottom-bar/BottomBar.tsx:356 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 +#: src/view/shell/bottom-bar/BottomBar.tsx:315 +#: src/view/shell/bottom-bar/BottomBar.tsx:316 +#: src/view/shell/bottom-bar/BottomBar.tsx:318 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:207 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:208 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:210 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4673,23 +5453,23 @@ msgstr "登入為…" #: src/components/dialogs/Signin.tsx:75 msgid "Sign in or create your account to join the conversation!" -msgstr "登入或建立您的帳戶即可加入對話!" +msgstr "登入或建立您的帳號即可加入對話!" #: src/components/dialogs/Signin.tsx:46 msgid "Sign into Bluesky or create a new account" -msgstr "登入 Bluesky 或建立新帳戶" +msgstr "登入 Bluesky 或建立新帳號" -#: src/view/screens/Settings/index.tsx:126 #: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Sign out" msgstr "登出" -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 +#: src/view/shell/bottom-bar/BottomBar.tsx:305 +#: src/view/shell/bottom-bar/BottomBar.tsx:306 +#: src/view/shell/bottom-bar/BottomBar.tsx:308 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:198 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:200 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4705,7 +5485,7 @@ msgstr "註冊或登入即可參與對話" msgid "Sign-in Required" msgstr "需要登入" -#: src/view/screens/Settings/index.tsx:382 +#: src/view/screens/Settings/index.tsx:393 msgid "Signed in as" msgstr "登入身分" @@ -4714,56 +5494,86 @@ msgstr "登入身分" msgid "Signed in as @{0}" msgstr "以 @{0} 身分登入" -#: src/screens/Onboarding/StepInterests/index.tsx:250 -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 +#: src/view/com/notifications/FeedItem.tsx:209 +msgid "signed up with your starter pack" +msgstr "用您的入門包註冊" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:301 +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:308 +msgid "Signup without a starter pack" +msgstr "不使用入門包註冊" + +#: src/screens/Onboarding/StepInterests/index.tsx:264 +#: src/screens/StarterPack/Wizard/index.tsx:192 msgid "Skip" msgstr "跳過" -#: src/screens/Onboarding/StepInterests/index.tsx:247 +#: src/screens/Onboarding/StepInterests/index.tsx:261 msgid "Skip this flow" msgstr "跳過此流程" -#: src/screens/Onboarding/index.tsx:52 +#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/state.ts:85 msgid "Software Dev" msgstr "軟體開發" -#: src/screens/Messages/Conversation/index.tsx:89 +#: src/components/FeedInterstitials.tsx:382 +msgid "Some other feeds you might like" +msgstr "其他您可能喜歡的動態源" + +#: src/components/WhoCanReply.tsx:72 +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +msgid "Some people can reply" +msgstr "僅部分人可以回覆" + +#: src/screens/Messages/Conversation/index.tsx:106 msgid "Something went wrong" -msgstr "" +msgstr "發生了一些問題" + +#: src/screens/Deactivated.tsx:94 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:59 +msgid "Something went wrong, please try again" +msgstr "發生了一些問題,請再試一次" #: src/components/ReportDialog/index.tsx:59 -#: src/screens/Moderation/index.tsx:114 +#: src/screens/Moderation/index.tsx:115 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." -msgstr "發生了一些問題,請重試。" +msgstr "發生了一些問題,請再試一次。" -#: src/App.native.tsx:83 -#: src/App.web.tsx:72 +#: src/components/Lists.tsx:192 +#: src/view/screens/NotificationsSettings.tsx:46 +msgid "Something went wrong!" +msgstr "" + +#: src/App.native.tsx:99 +#: src/App.web.tsx:81 msgid "Sorry! Your session expired. Please log in again." msgstr "抱歉!您的登入會話已過期。請重新登入。" -#: src/view/screens/PreferencesThreads.tsx:69 +#: src/view/screens/PreferencesThreads.tsx:63 msgid "Sort Replies" msgstr "排序回覆" -#: src/view/screens/PreferencesThreads.tsx:72 +#: src/view/screens/PreferencesThreads.tsx:66 msgid "Sort replies to the same post by:" msgstr "對同一貼文的回覆進行排序:" -#: src/components/moderation/LabelsOnMeDialog.tsx:168 -msgid "Source:" -msgstr "來源:" +#: src/components/moderation/LabelsOnMeDialog.tsx:169 +msgid "Source: <0>{0}" +msgstr "來源:<0>{0}" -#: src/lib/moderation/useReportOptions.ts:66 -#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:67 +#: src/lib/moderation/useReportOptions.ts:80 msgid "Spam" msgstr "垃圾訊息" -#: src/lib/moderation/useReportOptions.ts:54 +#: src/lib/moderation/useReportOptions.ts:55 msgid "Spam; excessive mentions or replies" msgstr "垃圾訊息、過多的提及或回覆" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/state.ts:98 msgid "Sports" msgstr "運動" @@ -4771,78 +5581,103 @@ msgstr "運動" msgid "Square" msgstr "方塊" -#: src/components/dms/NewChat.tsx:178 +#: src/components/dms/dialogs/NewChatDialog.tsx:63 msgid "Start a new chat" -msgstr "" +msgstr "開始新對話" -#: src/view/screens/Settings/index.tsx:862 -#~ msgid "Status page" -#~ msgstr "狀態頁" +#: src/components/dms/dialogs/SearchablePeopleList.tsx:371 +msgid "Start chat with {displayName}" +msgstr "與 {displayName} 開始對話" -#: src/view/screens/Settings/index.tsx:896 +#: src/components/dms/MessagesNUX.tsx:161 +msgid "Start chatting" +msgstr "開始對話" + +#: src/tours/Tooltip.tsx:99 +msgid "Start of onboarding tour window. Do not move backward. Instead, go forward for more options, or press to skip." +msgstr "開始入門指南吧!若需取得更多選項請點選下一步,或點選跳過。" + +#: src/lib/generate-starterpack.ts:68 +#: src/Navigation.tsx:341 +#: src/Navigation.tsx:346 +#: src/screens/StarterPack/Wizard/index.tsx:183 +msgid "Starter Pack" +msgstr "入門包" + +#: src/components/StarterPack/StarterPackCard.tsx:70 +msgid "Starter pack by {0}" +msgstr "由 {0} 建立的入門包" + +#: src/screens/StarterPack/StarterPackScreen.tsx:692 +msgid "Starter pack is invalid" +msgstr "無效的入門包" + +#: src/view/screens/Profile.tsx:214 +msgid "Starter Packs" +msgstr "入門包" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:238 +msgid "Starter packs let you easily share your favorite feeds and people with your friends." +msgstr "入門包讓您輕鬆地分享您喜愛的動態源與人物給您的朋友。" + +#: src/view/screens/Settings/index.tsx:965 msgid "Status Page" -msgstr "" +msgstr "服務運作狀態頁面" -#: src/screens/Signup/index.tsx:145 -#~ msgid "Step" -#~ msgstr "步驟" - -#: src/screens/Signup/index.tsx:154 +#: src/screens/Signup/index.tsx:125 msgid "Step {0} of {1}" -msgstr "" +msgstr "第 {0} 步(共 {1} 步)" -#: src/view/screens/Settings/index.tsx:301 +#: src/view/screens/Settings/index.tsx:306 msgid "Storage cleared, you need to restart the app now." msgstr "已清除儲存資料,您需要立即重啟應用程式。" -#: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:806 +#: src/Navigation.tsx:232 +#: src/view/screens/Settings/index.tsx:865 msgid "Storybook" msgstr "故事書" -#: src/components/moderation/LabelsOnMeDialog.tsx:282 -#: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:311 +#: src/components/moderation/LabelsOnMeDialog.tsx:312 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:142 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" msgstr "提交" -#: src/view/screens/ProfileList.tsx:639 +#: src/view/screens/ProfileList.tsx:644 msgid "Subscribe" msgstr "訂閱" -#: src/screens/Profile/Sections/Labels.tsx:194 +#: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" msgstr "訂閱 @{0} 以使用這些標記:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "訂閱標記者" -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 -#: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 -msgid "Subscribe to the {0} feed" -msgstr "訂閱 {0} 動態源" - -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:197 msgid "Subscribe to this labeler" msgstr "訂閱這個標記者" -#: src/view/screens/ProfileList.tsx:635 +#: src/view/screens/ProfileList.tsx:640 msgid "Subscribe to this list" msgstr "訂閱這個列表" -#: src/view/screens/Search/Search.tsx:417 -msgid "Suggested Follows" -msgstr "推薦的跟隨者" +#: src/view/screens/Search/Explore.tsx:333 +msgid "Suggested accounts" +msgstr "推薦的帳號" +#: src/components/FeedInterstitials.tsx:250 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" msgstr "為您推薦" #: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" -msgstr "暗示" +msgstr "性暗示" -#: src/Navigation.tsx:233 +#: src/Navigation.tsx:252 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" @@ -4853,19 +5688,23 @@ msgstr "支援" msgid "Switch Account" msgstr "切換帳號" -#: src/view/screens/Settings/index.tsx:157 +#: src/tours/HomeTour.tsx:48 +msgid "Switch between feeds to control your experience." +msgstr "在動態源之間切換以掌控您的體驗。" + +#: src/view/screens/Settings/index.tsx:161 msgid "Switch to {0}" msgstr "切換到 {0}" -#: src/view/screens/Settings/index.tsx:158 +#: src/view/screens/Settings/index.tsx:162 msgid "Switches the account you are logged in to" msgstr "切換您登入的帳號" -#: src/view/screens/Settings/index.tsx:436 +#: src/view/screens/Settings/index.tsx:447 msgid "System" msgstr "系統" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:853 msgid "System log" msgstr "系統日誌" @@ -4881,29 +5720,51 @@ msgstr "標籤選單:{displayTag}" msgid "Tall" msgstr "高" +#: src/components/ProgressGuide/Toast.tsx:150 +msgid "Tap to dismiss" +msgstr "點擊以跳過" + #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" msgstr "點擊查看完整內容" -#: src/screens/Onboarding/index.tsx:51 +#: src/state/shell/progress-guide.tsx:171 +msgid "Task complete - 10 likes!" +msgstr "任務完成 - 10 個喜歡!" + +#: src/components/ProgressGuide/List.tsx:49 +msgid "Teach our algorithm what you like" +msgstr "讓我們的演算法知道您喜歡什麼" + +#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/state.ts:99 msgid "Tech" msgstr "科技" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/components/dms/ChatEmptyPill.tsx:35 +msgid "Tell a joke!" +msgstr "說個笑話!🤡" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:63 +msgid "Tell us a little more" +msgstr "告訴我們更多" + +#: src/view/shell/desktop/RightNav.tsx:90 msgid "Terms" msgstr "條款" -#: src/Navigation.tsx:243 +#: src/Navigation.tsx:262 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:884 +#: src/view/screens/Settings/index.tsx:953 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "服務條款" -#: src/lib/moderation/useReportOptions.ts:59 -#: src/lib/moderation/useReportOptions.ts:93 -#: src/lib/moderation/useReportOptions.ts:101 +#: src/lib/moderation/useReportOptions.ts:60 +#: src/lib/moderation/useReportOptions.ts:94 +#: src/lib/moderation/useReportOptions.ts:102 +#: src/lib/moderation/useReportOptions.ts:110 msgid "Terms used violate community standards" msgstr "所使用的文字違反了社群標準" @@ -4911,12 +5772,13 @@ msgstr "所使用的文字違反了社群標準" msgid "text" msgstr "文字" -#: src/components/moderation/LabelsOnMeDialog.tsx:246 +#: src/components/moderation/LabelsOnMeDialog.tsx:275 +#: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "文字輸入框" -#: src/components/dms/MessageReportDialog.tsx:118 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/dms/ReportDialog.tsx:134 +#: src/components/ReportDialog/SubmitView.tsx:93 msgid "Thank you. Your report has been sent." msgstr "謝謝,您的檢舉已提交。" @@ -4924,19 +5786,24 @@ msgstr "謝謝,您的檢舉已提交。" msgid "That contains the following:" msgstr "其中包含以下內容:" -#: src/screens/Signup/index.tsx:87 +#: src/screens/Signup/StepHandle.tsx:50 msgid "That handle is already taken." msgstr "這個帳號代碼已被使用。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:282 -#: src/view/com/profile/ProfileMenu.tsx:349 +#: src/screens/StarterPack/StarterPackScreen.tsx:96 +#: src/screens/StarterPack/StarterPackScreen.tsx:97 +#: src/screens/StarterPack/StarterPackScreen.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:137 +#: src/screens/StarterPack/Wizard/index.tsx:106 +#: src/screens/StarterPack/Wizard/index.tsx:114 +msgid "That starter pack could not be found." +msgstr "找不到那個入門包。" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:353 msgid "The account will be able to interact with you after unblocking." msgstr "解除封鎖後,該帳號將能夠與您互動。" -#: src/components/moderation/ModerationDetailsDialog.tsx:127 -#~ msgid "the author" -#~ msgstr "作者" - #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "社群準則已移動到 <0/>" @@ -4945,15 +5812,24 @@ msgstr "社群準則已移動到 <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "版權政策已移動到 <0/>" -#: src/view/com/posts/FeedShutdownMsg.tsx:66 +#: src/state/shell/progress-guide.tsx:172 +#: src/state/shell/progress-guide.tsx:177 +msgid "The Discover feed now knows what you like" +msgstr "「Discover」動態源現在知道您喜歡什麼" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:322 +msgid "The experience is better in the app. Download Bluesky now and we'll pick back up where you left off." +msgstr "使用應用程式的體驗會更好。現在就下載 Bluesky,我們將從您離開的地方繼續。" + +#: src/view/com/posts/FeedShutdownMsg.tsx:67 msgid "The feed has been replaced with Discover." -msgstr "" +msgstr "此動態源已由「Discover」取代。" -#: src/components/moderation/LabelsOnMeDialog.tsx:63 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." -msgstr "以下標記已套用到您的帳戶。" +msgstr "以下標記已套用到您的帳號。" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "以下標記已套用到您的內容。" @@ -4961,8 +5837,8 @@ msgstr "以下標記已套用到您的內容。" msgid "The following steps will help customize your Bluesky experience." msgstr "以下步驟將幫助自訂您的 Bluesky 體驗。" -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "這則貼文可能已被刪除。" @@ -4970,60 +5846,61 @@ msgstr "這則貼文可能已被刪除。" msgid "The Privacy Policy has been moved to <0/>" msgstr "隱私政策已移動到 <0/>" +#: src/screens/StarterPack/StarterPackScreen.tsx:702 +msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead." +msgstr "您正在嘗試查看的入門包無效。您可以考慮刪除這個入門包。" + #: src/view/screens/Support.tsx:36 msgid "The support form has been moved. If you need help, please <0/> or visit {HELP_DESK_URL} to get in touch with us." -msgstr "支援表單已移至別處。如果需協助,請點擊<0/>或前往 {HELP_DESK_URL} 與我們聯繫。" +msgstr "支援表單已移至別處。如果需協助,請<0/>或前往 {HELP_DESK_URL} 與我們聯繫。" #: src/view/screens/TermsOfService.tsx:33 msgid "The Terms of Service have been moved to" msgstr "服務條款已遷移到" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:141 -msgid "There are many feeds to try:" -msgstr "這裡有些動態源您可以嘗試:" +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:86 +msgid "There is no time limit for account deactivation, come back any time." +msgstr "帳號停用沒有時間限制,隨時都可以重新啟用。" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:541 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:117 +#: src/view/screens/ProfileFeed.tsx:545 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "連線至伺服器時出現問題,請檢查您的網路連線並重試。" -#: src/view/com/posts/FeedErrorMessage.tsx:146 +#: src/view/com/posts/FeedErrorMessage.tsx:145 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "刪除動態源時出現問題,請檢查您的網路連線並重試。" #: src/view/com/posts/FeedShutdownMsg.tsx:52 -#: src/view/com/posts/FeedShutdownMsg.tsx:70 -#: src/view/screens/ProfileFeed.tsx:205 +#: src/view/com/posts/FeedShutdownMsg.tsx:71 +#: src/view/screens/ProfileFeed.tsx:206 msgid "There was an an issue updating your feeds, please check your internet connection and try again." -msgstr "更新動態源時出現問題,請檢查您的網路連線並重試。" +msgstr "更新動態時出現問題,請檢查您的網路連線並重試。" -#: src/components/dialogs/GifSelect.tsx:201 +#: src/components/dialogs/GifSelect.ios.tsx:197 +#: src/components/dialogs/GifSelect.tsx:213 msgid "There was an issue connecting to Tenor." msgstr "連線到 Tenor 時出現問題。" -#: src/screens/Messages/Conversation/MessageListError.tsx:23 -msgid "There was an issue connecting to the chat." -msgstr "" - -#: src/view/screens/ProfileFeed.tsx:233 -#: src/view/screens/ProfileList.tsx:298 -#: src/view/screens/ProfileList.tsx:317 -#: src/view/screens/SavedFeeds.tsx:236 -#: src/view/screens/SavedFeeds.tsx:262 -#: src/view/screens/SavedFeeds.tsx:288 +#: src/view/screens/ProfileFeed.tsx:235 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:322 +#: src/view/screens/SavedFeeds.tsx:237 +#: src/view/screens/SavedFeeds.tsx:263 +#: src/view/screens/SavedFeeds.tsx:289 msgid "There was an issue contacting the server" msgstr "連線伺服器時出現問題" -#: src/view/com/feeds/FeedSourceCard.tsx:114 -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:128 +#: src/view/com/feeds/FeedSourceCard.tsx:141 msgid "There was an issue contacting your server" msgstr "連線伺服器時出現問題" -#: src/view/com/notifications/Feed.tsx:118 +#: src/view/com/notifications/Feed.tsx:130 msgid "There was an issue fetching notifications. Tap here to try again." msgstr "取得通知時發生問題,點擊這裡重試。" -#: src/view/com/posts/Feed.tsx:298 +#: src/view/com/posts/Feed.tsx:459 msgid "There was an issue fetching posts. Tap here to try again." msgstr "取得貼文時發生問題,點擊這裡重試。" @@ -5031,116 +5908,122 @@ msgstr "取得貼文時發生問題,點擊這裡重試。" msgid "There was an issue fetching the list. Tap here to try again." msgstr "取得列表時發生問題,點擊這裡重試。" -#: src/view/com/feeds/ProfileFeedgens.tsx:156 -#: src/view/com/lists/ProfileLists.tsx:163 +#: src/view/com/feeds/ProfileFeedgens.tsx:149 +#: src/view/com/lists/ProfileLists.tsx:159 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "取得列表時發生問題,點擊這裡重試。" -#: src/components/dms/MessageReportDialog.tsx:195 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/dms/ReportDialog.tsx:222 +#: src/components/ReportDialog/SubmitView.tsx:98 msgid "There was an issue sending your report. Please check your internet connection." msgstr "提交您的檢舉時出現問題,請檢查您的網路連線。" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 -msgid "There was an issue syncing your preferences with the server" -msgstr "與伺服器同步偏好時發生問題" - -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "取得應用程式專用密碼時發生問題" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:103 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:125 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:139 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:107 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:129 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:143 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 -#: src/view/com/profile/ProfileMenu.tsx:106 -#: src/view/com/profile/ProfileMenu.tsx:117 -#: src/view/com/profile/ProfileMenu.tsx:132 -#: src/view/com/profile/ProfileMenu.tsx:143 -#: src/view/com/profile/ProfileMenu.tsx:157 -#: src/view/com/profile/ProfileMenu.tsx:170 +#: src/view/com/profile/ProfileMenu.tsx:111 +#: src/view/com/profile/ProfileMenu.tsx:122 +#: src/view/com/profile/ProfileMenu.tsx:137 +#: src/view/com/profile/ProfileMenu.tsx:148 +#: src/view/com/profile/ProfileMenu.tsx:162 +#: src/view/com/profile/ProfileMenu.tsx:175 msgid "There was an issue! {0}" -msgstr "發生問題了!{0}" +msgstr "發生問題!{0}" -#: src/view/screens/ProfileList.tsx:330 -#: src/view/screens/ProfileList.tsx:344 -#: src/view/screens/ProfileList.tsx:358 -#: src/view/screens/ProfileList.tsx:372 +#: src/components/WhoCanReply.tsx:116 +#: src/view/screens/ProfileList.tsx:335 +#: src/view/screens/ProfileList.tsx:349 +#: src/view/screens/ProfileList.tsx:363 +#: src/view/screens/ProfileList.tsx:377 msgid "There was an issue. Please check your internet connection and try again." msgstr "發生問題了。請檢查您的網路連線並重試。" -#: src/components/dialogs/GifSelect.tsx:289 +#: src/components/dialogs/GifSelect.ios.tsx:239 +#: src/components/dialogs/GifSelect.tsx:257 #: src/view/com/util/ErrorBoundary.tsx:57 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "應用程式中發生了意外問題。請告訴我們是否發生在您身上!" -#: src/screens/Deactivated.tsx:112 +#: src/screens/SignupQueued.tsx:112 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "Bluesky 迎來了大量新用戶!我們將儘快啟用您的帳號。" -#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:146 -msgid "These are popular accounts you might like:" -msgstr "這裡是一些受歡迎的帳號,您可能會喜歡:" - #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" msgstr "{screenDescription} 已被標記:" #: src/components/moderation/ScreenHider.tsx:111 msgid "This account has requested that users sign in to view their profile." -msgstr "此帳號要求使用者登入後才能查看其個人資料。" +msgstr "此帳號要求使用者登入後才能查看其個人檔案。" -#: src/components/moderation/LabelsOnMeDialog.tsx:231 +#: src/components/dms/BlockedByListDialog.tsx:34 +msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." +msgstr "此帳號已被一個或多個內容管理清單封鎖。若要解除封鎖,請檢查這些清單並刪除此使用者。" + +#: src/components/moderation/LabelsOnMeDialog.tsx:260 msgid "This appeal will be sent to <0>{0}." msgstr "此申訴將被提交至 <0>{0}。" -#: src/screens/Messages/Conversation/MessageListError.tsx:26 -msgid "This chat was disconnected due to a network error." -msgstr "" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:104 +msgid "This appeal will be sent to Bluesky's moderation service." +msgstr "此申訴將發送至 Bluesky 的內容管理服務。" + +#: src/screens/Messages/Conversation/MessageListError.tsx:18 +msgid "This chat was disconnected" +msgstr "對話已中斷連線" #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." -msgstr "此內容已被限制者隱藏。" +msgstr "此內容已被內容管理者隱藏。" #: src/lib/moderation/useGlobalLabelStrings.ts:24 msgid "This content has received a general warning from moderators." -msgstr "此內容已套用限制提供者所設定的一般警告。" +msgstr "此內容已套用內容管理提供者所標記的普通警告。" #: src/components/dialogs/EmbedConsent.tsx:64 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "此內容由 {0} 託管。是否要啟用外部媒體?" #: src/components/moderation/ModerationDetailsDialog.tsx:77 -#: src/lib/moderation/useModerationCauseDescription.ts:77 +#: src/lib/moderation/useModerationCauseDescription.ts:79 msgid "This content is not available because one of the users involved has blocked the other." -msgstr "由於其中一個用戶封鎖了另一個用戶,無法查看此內容。" +msgstr "由於有用戶被另一個用戶封鎖,導致無法查看此內容。" -#: src/view/com/posts/FeedErrorMessage.tsx:115 +#: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This content is not viewable without a Bluesky account." msgstr "沒有 Bluesky 帳號,無法查看此內容。" -#: src/view/screens/Settings/ExportCarDialog.tsx:94 -msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." -msgstr "此功能目前為測試版本。您可以在<0>這篇部落格文章中了解更多有關資訊。" +#: src/screens/Messages/List/ChatListItem.tsx:213 +msgid "This conversation is with a deleted or a deactivated account. Press for options." +msgstr "這是一段與已刪除或已停用帳號的對話。按此以查看選項。" -#: src/view/com/posts/FeedErrorMessage.tsx:121 +#: src/view/screens/Settings/ExportCarDialog.tsx:93 +msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." +msgstr "此功能目前為測試版本。您可以在<0>這篇部落格文章中瞭解更多有關資訊。" + +#: src/view/com/posts/FeedErrorMessage.tsx:120 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "此動態源由於目前使用人數眾多而暫時無法使用。請稍後再試。" -#: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:471 -#: src/view/screens/ProfileList.tsx:724 -msgid "This feed is empty!" -msgstr "這個動態源是空的!" - #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "這個動態源是空的!您或許需要先跟隨更多的人或檢查您的語言設定。" -#: src/view/com/posts/FeedShutdownMsg.tsx:97 +#: src/components/StarterPack/Main/PostsList.tsx:36 +#: src/view/screens/ProfileFeed.tsx:474 +#: src/view/screens/ProfileList.tsx:729 +msgid "This feed is empty." +msgstr "這裡是空的。" + +#: src/view/com/posts/FeedShutdownMsg.tsx:99 msgid "This feed is no longer online. We are showing <0>Discover instead." -msgstr "" +msgstr "此動態源已經下線。我們將展示「<0>Discover」動態源。" #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." @@ -5150,23 +6033,19 @@ msgstr "此資訊不會分享給其他用戶。" msgid "This is important in case you ever need to change your email or reset your password." msgstr "這很重要,以防您將來需要更改電子郵件地址或重設密碼。" -#: src/components/moderation/ModerationDetailsDialog.tsx:124 -#~ msgid "This label was applied by {0}." -#~ msgstr "此標記是由 {0} 套用的。" - #: src/components/moderation/ModerationDetailsDialog.tsx:127 msgid "This label was applied by <0>{0}." -msgstr "" +msgstr "此標記由 <0>{0} 新增。" #: src/components/moderation/ModerationDetailsDialog.tsx:125 msgid "This label was applied by the author." -msgstr "" +msgstr "此標記由發布者新增。" -#: src/components/moderation/LabelsOnMeDialog.tsx:165 -msgid "This label was applied by you" -msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:167 +msgid "This label was applied by you." +msgstr "此標記由您新增。" -#: src/screens/Profile/Sections/Labels.tsx:181 +#: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "此標記者尚未宣告它發佈的標記,而且可能不會生效。" @@ -5174,34 +6053,34 @@ msgstr "此標記者尚未宣告它發佈的標記,而且可能不會生效。 msgid "This link is taking you to the following website:" msgstr "此連結將帶您到以下網站:" -#: src/view/screens/ProfileList.tsx:902 +#: src/view/screens/ProfileList.tsx:907 msgid "This list is empty!" msgstr "此列表為空!" #: src/screens/Profile/ErrorState.tsx:40 msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." -msgstr "此限制服務暫時無法使用,詳情請見下文。如果問題持續存在,請與我們聯絡。" +msgstr "此內容管理服務暫時無法使用,詳情請見下文。如果問題持續存在,請與我們聯絡。" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:110 msgid "This name is already in use" msgstr "此名稱已被使用" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:135 msgid "This post has been deleted." msgstr "這則貼文已被刪除。" -#: src/view/com/util/forms/PostDropdownBtn.tsx:417 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:301 +#: src/view/com/util/forms/PostDropdownBtn.tsx:461 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:324 msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." msgstr "只有登入用戶能見到這則貼文,未登入的人將看不到它。" -#: src/view/com/util/forms/PostDropdownBtn.tsx:399 +#: src/view/com/util/forms/PostDropdownBtn.tsx:443 msgid "This post will be hidden from feeds." msgstr "這則貼文將從動態隱藏。" -#: src/view/com/profile/ProfileMenu.tsx:370 +#: src/view/com/profile/ProfileMenu.tsx:374 msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." -msgstr "只有登入用戶能見到此個人資料。 未登入的人將看不到它。" +msgstr "只有登入用戶能見到此個人檔案。 未登入的人將看不到它。" #: src/screens/Signup/StepInfo/Policies.tsx:37 msgid "This service has not provided terms of service or a privacy policy." @@ -5209,20 +6088,24 @@ msgstr "此服務尚未提供服務條款或隱私政策。" #: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" -msgstr "這應該在以下位置創建一個域記錄:" +msgstr "這應該會在以下位置建立一個域名記錄:" #: src/view/com/profile/ProfileFollowers.tsx:87 msgid "This user doesn't have any followers." msgstr "此用戶沒有任何追隨者。" +#: src/components/dms/MessagesListBlockedFooter.tsx:60 +msgid "This user has blocked you" +msgstr "這個用戶已封鎖您" + #: src/components/moderation/ModerationDetailsDialog.tsx:72 -#: src/lib/moderation/useModerationCauseDescription.ts:68 +#: src/lib/moderation/useModerationCauseDescription.ts:70 msgid "This user has blocked you. You cannot view their content." msgstr "此用戶已封鎖您,您無法查看他們的內容。" #: src/lib/moderation/useGlobalLabelStrings.ts:30 msgid "This user has requested that their content only be shown to signed-in users." -msgstr "此用戶要求僅將其內容顯示給已登錄的用戶。" +msgstr "此用戶要求僅將其內容顯示給已登入的用戶。" #: src/components/moderation/ModerationDetailsDialog.tsx:55 msgid "This user is included in the <0>{0} list which you have blocked." @@ -5232,42 +6115,46 @@ msgstr "此用戶包含在您已封鎖的 <0>{0} 列表中。" msgid "This user is included in the <0>{0} list which you have muted." msgstr "此用戶包含在您已靜音的 <0>{0} 列表中。" +#: src/components/NewskieDialog.tsx:65 +msgid "This user is new here. Press for more info about when they joined." +msgstr "這是新來的用戶,請按此瞭解更多有關他們何時加入的資訊。" + #: src/view/com/profile/ProfileFollows.tsx:87 msgid "This user isn't following anyone." msgstr "此用戶未跟隨任何人。" -#: src/view/com/modals/SelfLabel.tsx:137 -#~ msgid "This warning is only available for posts with media attached." -#~ msgstr "此警告僅適用於附帶媒體的貼文。" - #: src/components/dialogs/MutedWords.tsx:283 msgid "This will delete {0} from your muted words. You can always add it back later." -msgstr "這將從您的靜音文字中刪除 {0},您隨時可以在稍後添加回來。" +msgstr "這將從您的靜音文字中刪除 {0},您隨時可以新增回來。" -#: src/view/screens/Settings/index.tsx:585 +#: src/view/screens/Settings/index.tsx:596 msgid "Thread preferences" -msgstr "對話串偏好" +msgstr "討論串偏好" -#: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/PreferencesThreads.tsx:51 +#: src/view/screens/Settings/index.tsx:606 msgid "Thread Preferences" -msgstr "對話串偏好" +msgstr "討論串偏好" -#: src/view/screens/PreferencesThreads.tsx:119 +#: src/components/WhoCanReply.tsx:109 +msgid "Thread settings updated" +msgstr "討論串設定已更新" + +#: src/view/screens/PreferencesThreads.tsx:113 msgid "Threaded Mode" msgstr "樹狀顯示模式" -#: src/Navigation.tsx:276 +#: src/Navigation.tsx:295 msgid "Threads Preferences" -msgstr "對話串偏好" +msgstr "討論串偏好" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "若要關閉電子郵件雙重驗證,請驗證您的電子郵件地址。" -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." -msgstr "" +msgstr "若要檢舉對話,請透過對話畫面檢舉其中一則訊息。這可以讓我們的內容管理者瞭解問題的來龍去脈。" #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" @@ -5277,16 +6164,16 @@ msgstr "您希望向誰提交此檢舉?" msgid "Toggle between muted word options." msgstr "在靜音文字選項之間切換。" -#: src/view/com/util/forms/DropdownButton.tsx:246 +#: src/view/com/util/forms/DropdownButton.tsx:255 msgid "Toggle dropdown" msgstr "切換下拉式選單" -#: src/screens/Moderation/index.tsx:332 +#: src/screens/Moderation/index.tsx:336 msgid "Toggle to enable or disable adult content" -msgstr "切換以啟用或禁用成人內容" +msgstr "切換以啟用或停用成人內容" #: src/screens/Hashtag.tsx:88 -#: src/view/screens/Search/Search.tsx:359 +#: src/view/screens/Search/Search.tsx:349 msgid "Top" msgstr "熱門" @@ -5294,10 +6181,12 @@ msgstr "熱門" msgid "Transformations" msgstr "轉換" -#: src/view/com/post-thread/PostThreadItem.tsx:645 -#: src/view/com/post-thread/PostThreadItem.tsx:647 -#: src/view/com/util/forms/PostDropdownBtn.tsx:248 -#: src/view/com/util/forms/PostDropdownBtn.tsx:250 +#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:105 +#: src/view/com/post-thread/PostThreadItem.tsx:676 +#: src/view/com/post-thread/PostThreadItem.tsx:678 +#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "Translate" msgstr "翻譯" @@ -5306,65 +6195,81 @@ msgctxt "action" msgid "Try again" msgstr "重試" -#: src/view/screens/Settings/index.tsx:711 +#: src/screens/Onboarding/state.ts:100 +msgid "TV" +msgstr "電視節目" + +#: src/view/screens/Settings/index.tsx:747 msgid "Two-factor authentication" msgstr "雙重驗證" -#: src/screens/Messages/Conversation/MessageInput.tsx:94 +#: src/screens/Messages/Conversation/MessageInput.tsx:139 msgid "Type your message here" -msgstr "" +msgstr "在此輸入訊息" #: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "類型:" -#: src/view/screens/ProfileList.tsx:530 +#: src/view/screens/ProfileList.tsx:535 msgid "Un-block list" msgstr "取消封鎖列表" -#: src/view/screens/ProfileList.tsx:515 +#: src/view/screens/ProfileList.tsx:520 msgid "Un-mute list" msgstr "取消靜音列表" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:150 #: src/screens/Login/SetNewPasswordForm.tsx:77 -#: src/screens/Signup/index.tsx:66 -#: src/view/com/modals/ChangePassword.tsx:72 +#: src/screens/Signup/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:71 msgid "Unable to contact your service. Please check your Internet connection." msgstr "無法連線到服務,請檢查您的網路連線。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 -#: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:621 -msgid "Unblock" -msgstr "取消封鎖" +#: src/screens/StarterPack/StarterPackScreen.tsx:626 +msgid "Unable to delete" +msgstr "無法刪除" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:186 +#: src/components/dms/MessagesListBlockedFooter.tsx:89 +#: src/components/dms/MessagesListBlockedFooter.tsx:96 +#: src/components/dms/MessagesListBlockedFooter.tsx:104 +#: src/components/dms/MessagesListBlockedFooter.tsx:111 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:314 +#: src/view/com/profile/ProfileMenu.tsx:365 +#: src/view/screens/ProfileList.tsx:626 +msgid "Unblock" +msgstr "解除封鎖" + +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:197 msgctxt "action" msgid "Unblock" -msgstr "取消封鎖" +msgstr "解除封鎖" -#: src/view/com/profile/ProfileMenu.tsx:299 -#: src/view/com/profile/ProfileMenu.tsx:305 +#: src/components/dms/ConvoMenu.tsx:188 +#: src/components/dms/ConvoMenu.tsx:192 +msgid "Unblock account" +msgstr "解除封鎖帳號" + +#: src/view/com/profile/ProfileMenu.tsx:303 +#: src/view/com/profile/ProfileMenu.tsx:309 msgid "Unblock Account" -msgstr "取消封鎖" +msgstr "解除封鎖帳號" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:280 -#: src/view/com/profile/ProfileMenu.tsx:343 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:308 +#: src/view/com/profile/ProfileMenu.tsx:347 msgid "Unblock Account?" -msgstr "取消封鎖?" +msgstr "解除封鎖?" -#: src/view/com/modals/Repost.tsx:43 -#: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 -#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +#: src/view/com/util/post-ctrls/RepostButton.tsx:64 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:70 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:74 msgid "Undo repost" msgstr "取消轉貼" -#: src/view/com/profile/FollowButton.tsx:60 +#: src/view/com/profile/FollowButton.tsx:61 msgctxt "action" msgid "Unfollow" msgstr "取消跟隨" @@ -5373,25 +6278,21 @@ msgstr "取消跟隨" msgid "Unfollow" msgstr "取消跟隨" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:220 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:237 msgid "Unfollow {0}" msgstr "取消跟隨 {0}" -#: src/view/com/profile/ProfileMenu.tsx:241 -#: src/view/com/profile/ProfileMenu.tsx:251 +#: src/view/com/profile/ProfileMenu.tsx:245 +#: src/view/com/profile/ProfileMenu.tsx:255 msgid "Unfollow Account" msgstr "取消跟隨" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:197 -#~ msgid "Unlike" -#~ msgstr "取消喜歡" - -#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileFeed.tsx:575 msgid "Unlike this feed" msgstr "取消喜歡這個動態源" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:628 +#: src/view/screens/ProfileList.tsx:633 msgid "Unmute" msgstr "取消靜音" @@ -5399,8 +6300,8 @@ msgstr "取消靜音" msgid "Unmute {truncatedTag}" msgstr "取消靜音 {truncatedTag}" -#: src/view/com/profile/ProfileMenu.tsx:278 -#: src/view/com/profile/ProfileMenu.tsx:284 +#: src/view/com/profile/ProfileMenu.tsx:282 +#: src/view/com/profile/ProfileMenu.tsx:288 msgid "Unmute Account" msgstr "取消靜音帳號" @@ -5408,46 +6309,46 @@ msgstr "取消靜音帳號" msgid "Unmute all {displayTag} posts" msgstr "取消對所有 {displayTag} 貼文的靜音" -#: src/components/dms/ConvoMenu.tsx:140 -msgid "Unmute notifications" -msgstr "" +#: src/components/dms/ConvoMenu.tsx:176 +msgid "Unmute conversation" +msgstr "取消靜音對話" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:365 +#: src/view/com/util/forms/PostDropdownBtn.tsx:370 msgid "Unmute thread" -msgstr "取消靜音對話串" +msgstr "取消靜音討論串" -#: src/view/screens/ProfileFeed.tsx:290 -#: src/view/screens/ProfileList.tsx:612 +#: src/view/screens/ProfileFeed.tsx:292 +#: src/view/screens/ProfileList.tsx:617 msgid "Unpin" msgstr "取消釘選" -#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileFeed.tsx:289 msgid "Unpin from home" -msgstr "取消釘選在首頁" +msgstr "自首頁取消釘選" -#: src/view/screens/ProfileList.tsx:495 +#: src/view/screens/ProfileList.tsx:500 msgid "Unpin moderation list" -msgstr "取消釘選限制列表" +msgstr "取消釘選內容管理列表" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/view/screens/ProfileList.tsx:290 +msgid "Unpinned from your feeds" +msgstr "已從您的動態源取消釘選" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "取消訂閱" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:196 msgid "Unsubscribe from this labeler" msgstr "取消訂閱這個標記者" +#: src/lib/moderation/useReportOptions.ts:72 #: src/lib/moderation/useReportOptions.ts:85 -msgid "Unwanted sexual content" -msgstr "" - -#: src/lib/moderation/useReportOptions.ts:71 -#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" -msgstr "無關情色的內容" +msgstr "不受歡迎的色情內容" -#: src/view/com/modals/UserAddRemoveLists.tsx:70 +#: src/view/com/modals/UserAddRemoveLists.tsx:83 msgid "Update {displayName} in Lists" msgstr "更新列表中的 {displayName}" @@ -5459,28 +6360,28 @@ msgstr "更新至 {handle}" msgid "Updating..." msgstr "更新中…" -#: src/screens/Onboarding/StepProfile/index.tsx:284 +#: src/screens/Onboarding/StepProfile/index.tsx:281 msgid "Upload a photo instead" -msgstr "" +msgstr "或是上傳圖片" #: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "上傳文字檔案至:" -#: src/view/com/util/UserAvatar.tsx:337 -#: src/view/com/util/UserAvatar.tsx:340 +#: src/view/com/util/UserAvatar.tsx:364 +#: src/view/com/util/UserAvatar.tsx:367 #: src/view/com/util/UserBanner.tsx:123 #: src/view/com/util/UserBanner.tsx:126 msgid "Upload from Camera" msgstr "從相機上傳" -#: src/view/com/util/UserAvatar.tsx:354 +#: src/view/com/util/UserAvatar.tsx:381 #: src/view/com/util/UserBanner.tsx:140 msgid "Upload from Files" msgstr "從檔案上傳" -#: src/view/com/util/UserAvatar.tsx:348 -#: src/view/com/util/UserAvatar.tsx:352 +#: src/view/com/util/UserAvatar.tsx:375 +#: src/view/com/util/UserAvatar.tsx:379 #: src/view/com/util/UserBanner.tsx:134 #: src/view/com/util/UserBanner.tsx:138 msgid "Upload from Library" @@ -5490,9 +6391,9 @@ msgstr "從圖片庫上傳" msgid "Use a file on your server" msgstr "使用您伺服器上的檔案" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." -msgstr "使用應用程式專用密碼登入到其他 Bluesky 客戶端,而無需提供完整的帳戶權限和密碼。" +msgstr "使用應用程式專用密碼登入到其他 Bluesky 客戶端,而無需提供完整的帳號權限和密碼。" #: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" @@ -5514,13 +6415,13 @@ msgstr "使用我的預設瀏覽器" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 msgid "Use recommended" -msgstr "" +msgstr "使用推薦" #: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "使用 DNS 控制台" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "使用這個和您的帳號代碼一起登入其他應用程式。" @@ -5529,19 +6430,23 @@ msgid "Used by:" msgstr "使用者:" #: src/components/moderation/ModerationDetailsDialog.tsx:64 -#: src/lib/moderation/useModerationCauseDescription.ts:56 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "User Blocked" -msgstr "用戶被封鎖" +msgstr "用戶已被封鎖" -#: src/lib/moderation/useModerationCauseDescription.ts:48 +#: src/lib/moderation/useModerationCauseDescription.ts:50 msgid "User Blocked by \"{0}\"" -msgstr "用戶被「{0}」封鎖" +msgstr "用戶已被「{0}」封鎖" + +#: src/components/dms/BlockedByListDialog.tsx:27 +msgid "User blocked by list" +msgstr "用戶已被列表封鎖" #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" -msgstr "用戶被列表封鎖" +msgstr "用戶已被列表封鎖" -#: src/lib/moderation/useModerationCauseDescription.ts:66 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "User Blocking You" msgstr "用戶封鎖了您" @@ -5549,74 +6454,77 @@ msgstr "用戶封鎖了您" msgid "User Blocks You" msgstr "用戶封鎖了您" -#: src/view/com/lists/ListCard.tsx:85 -#: src/view/com/modals/UserAddRemoveLists.tsx:198 +#: src/view/com/lists/ListCard.tsx:87 +#: src/view/com/modals/UserAddRemoveLists.tsx:209 msgid "User list by {0}" msgstr "{0} 的用戶列表" -#: src/view/screens/ProfileList.tsx:826 +#: src/view/screens/ProfileList.tsx:831 msgid "User list by <0/>" msgstr "<0/> 的用戶列表" -#: src/view/com/lists/ListCard.tsx:83 -#: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:824 +#: src/view/com/lists/ListCard.tsx:85 +#: src/view/com/modals/UserAddRemoveLists.tsx:207 +#: src/view/screens/ProfileList.tsx:829 msgid "User list by you" msgstr "您的用戶列表" -#: src/view/com/modals/CreateOrEditList.tsx:198 +#: src/view/com/modals/CreateOrEditList.tsx:184 msgid "User list created" msgstr "已建立用戶列表" -#: src/view/com/modals/CreateOrEditList.tsx:184 +#: src/view/com/modals/CreateOrEditList.tsx:170 msgid "User list updated" msgstr "已更新用戶列表" -#: src/view/screens/Lists.tsx:58 +#: src/view/screens/Lists.tsx:63 msgid "User Lists" msgstr "用戶列表" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:197 msgid "Username or email address" msgstr "帳號代碼或電子郵件地址" -#: src/view/screens/ProfileList.tsx:860 +#: src/view/screens/ProfileList.tsx:865 msgid "Users" msgstr "用戶" -#: src/view/com/threadgate/WhoCanReply.tsx:143 +#: src/components/WhoCanReply.tsx:280 msgid "users followed by <0/>" -msgstr "跟隨 <0/> 的用戶" +msgstr "被 <0/> 跟隨的用戶" -#: src/view/com/modals/Threadgate.tsx:106 +#: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 +msgid "Users I follow" +msgstr "我跟隨的用戶" + +#: src/components/dialogs/ThreadgateEditor.tsx:132 msgid "Users in \"{0}\"" msgstr "「{0}」中的用戶" #: src/components/LikesDialog.tsx:85 msgid "Users that have liked this content or profile" -msgstr "喜歡此內容或個人資料的用戶" +msgstr "喜歡此內容或個人檔案的用戶" #: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "值:" -#: src/view/com/modals/ChangeHandle.tsx:510 -#~ msgid "Verify {0}" -#~ msgstr "驗證 {0}" - #: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" -msgstr "" +msgstr "驗證 DNS 紀錄" -#: src/view/screens/Settings/index.tsx:915 +#: src/view/screens/Settings/index.tsx:984 msgid "Verify email" msgstr "驗證電子郵件" -#: src/view/screens/Settings/index.tsx:940 +#: src/view/screens/Settings/index.tsx:1009 msgid "Verify my email" msgstr "驗證我的電子郵件" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:1018 msgid "Verify My Email" msgstr "驗證我的電子郵件" @@ -5627,66 +6535,82 @@ msgstr "驗證新的電子郵件" #: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" -msgstr "" +msgstr "驗證文字檔案" #: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "驗證您的電子郵件" -#: src/view/screens/Settings/index.tsx:852 -#~ msgid "Version {0}" -#~ msgstr "版本 {0}" - -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:937 msgid "Version {appVersion} {bundleInfo}" -msgstr "" +msgstr "版本 {appVersion} {bundleInfo}" -#: src/screens/Onboarding/index.tsx:54 +#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/state.ts:88 msgid "Video Games" msgstr "電子遊戲" -#: src/screens/Profile/Header/Shell.tsx:110 -msgid "View {0}'s avatar" -msgstr "查看{0}的頭貼" +#: src/view/com/composer/videos/state.ts:27 +msgid "Videos cannot be larger than 100MB" +msgstr "影片不能超過 100MB" -#: src/view/screens/Log.tsx:52 +#: src/screens/Profile/Header/Shell.tsx:113 +msgid "View {0}'s avatar" +msgstr "查看 {0} 的頭像" + +#: src/view/com/notifications/FeedItem.tsx:246 +msgid "View {0}'s profile" +msgstr "查看 {0} 的個人檔案" + +#: src/components/ProfileHoverCard/index.web.tsx:430 +msgid "View blocked user's profile" +msgstr "查看已封鎖用戶的個人檔案" + +#: src/view/screens/Log.tsx:56 msgid "View debug entry" msgstr "查看偵錯項目" -#: src/components/ReportDialog/SelectReportOptionView.tsx:138 +#: src/components/ReportDialog/SelectReportOptionView.tsx:139 msgid "View details" msgstr "查看詳細資訊" -#: src/components/ReportDialog/SelectReportOptionView.tsx:133 +#: src/components/ReportDialog/SelectReportOptionView.tsx:134 msgid "View details for reporting a copyright violation" -msgstr "查看詳細資訊以檢舉侵權" +msgstr "查看詳細資訊以檢舉侵犯版權" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:124 msgid "View full thread" -msgstr "查看整個對話串" +msgstr "查看整個討論串" #: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "查看有關這些標記的資訊" -#: src/components/ProfileHoverCard/index.web.tsx:393 -#: src/components/ProfileHoverCard/index.web.tsx:426 +#: src/components/ProfileHoverCard/index.web.tsx:418 +#: src/components/ProfileHoverCard/index.web.tsx:436 +#: src/components/ProfileHoverCard/index.web.tsx:463 +#: src/view/com/posts/AviFollowButton.tsx:58 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "查看資料" -#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +#: src/view/com/profile/ProfileSubpageHeader.tsx:129 msgid "View the avatar" msgstr "查看頭像" #: src/components/LabelingServiceCard/index.tsx:137 msgid "View the labeling service provided by @{0}" -msgstr "查看由 @{0} 提供的標籤服務" +msgstr "查看由 @{0} 提供的標記服務" -#: src/view/screens/ProfileFeed.tsx:582 +#: src/view/screens/ProfileFeed.tsx:587 msgid "View users who like this feed" msgstr "查看喜歡此動態源的用戶" +#: src/view/com/home/HomeHeaderLayout.web.tsx:79 +#: src/view/com/home/HomeHeaderLayoutMobile.tsx:86 +msgid "View your feeds and explore more" +msgstr "查看您的動態並探索更多內容" + #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" @@ -5695,7 +6619,6 @@ msgstr "造訪網站" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 #: src/lib/moderation/useLabelBehaviorDescription.ts:22 -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "警告" @@ -5711,15 +6634,15 @@ msgstr "警告內容並從動態源中過濾" msgid "We couldn't find any results for that hashtag." msgstr "我們找不到任何與該標籤相關的結果。" -#: src/screens/Messages/Conversation/index.tsx:90 +#: src/screens/Messages/Conversation/index.tsx:107 msgid "We couldn't load this conversation" -msgstr "" +msgstr "我們無法載入這個對話" -#: src/screens/Deactivated.tsx:139 +#: src/screens/SignupQueued.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "我們估計還需要 {estimatedTime} 才能準備好您的帳號。" -#: src/screens/Onboarding/StepFinished.tsx:196 +#: src/screens/Onboarding/StepFinished.tsx:239 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "我們希望您在此度過愉快的時光。請記住,Bluesky 是:" @@ -5729,37 +6652,37 @@ msgstr "您已看完了您跟隨的貼文。這是來自 <0/> 的最新貼文。 #: src/components/dialogs/MutedWords.tsx:203 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." -msgstr "我們建議避免新增在許多貼文中常用的文字,因為這可能令您看不到任何貼文。" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:125 -msgid "We recommend our \"Discover\" feed:" -msgstr "我們推薦我們的「Discover」動態源:" +msgstr "我們建議避免新增在許多貼文中常用的文字,因為這可能會使您看不到任何貼文。" #: src/components/dialogs/BirthDateSettings.tsx:52 msgid "We were unable to load your birth date preferences. Please try again." msgstr "我們無法載入您的出生日期偏好,請再試一次。" -#: src/screens/Moderation/index.tsx:385 +#: src/screens/Moderation/index.tsx:409 msgid "We were unable to load your configured labelers at this time." -msgstr "我們目前無法載入您已設定的標籤者。" +msgstr "我們目前無法載入您已設定的標記者。" -#: src/screens/Onboarding/StepInterests/index.tsx:148 +#: src/screens/Onboarding/StepInterests/index.tsx:157 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "我們無法連線到網際網路,請重試以繼續設定您的帳號。如果仍繼續失敗,您可以選擇跳過此流程。" -#: src/screens/Deactivated.tsx:143 +#: src/screens/SignupQueued.tsx:143 msgid "We will let you know when your account is ready." msgstr "我們會在您的帳號準備好時通知您。" -#: src/screens/Onboarding/StepInterests/index.tsx:153 +#: src/screens/Onboarding/StepInterests/index.tsx:162 msgid "We'll use this to help customize your experience." -msgstr "我們將使用這些資訊來幫助定制您的體驗。" +msgstr "我們將使用這些資訊來協助訂製您的體驗。" -#: src/screens/Signup/index.tsx:142 +#: src/components/dms/dialogs/SearchablePeopleList.tsx:90 +msgid "We're having network issues, try again" +msgstr "我們遇到網路問題,請再試一次" + +#: src/screens/Signup/index.tsx:89 msgid "We're so excited to have you join us!" msgstr "我們非常高興您加入我們!" -#: src/view/screens/ProfileList.tsx:90 +#: src/view/screens/ProfileList.tsx:91 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "很抱歉,我們無法解析此列表。如果問題持續發生,請聯繫列表建立者 @{handleOrDid}。" @@ -5767,26 +6690,42 @@ msgstr "很抱歉,我們無法解析此列表。如果問題持續發生,請 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "很抱歉,我們目前無法載入您的靜音文字。請稍後再試。" -#: src/view/screens/Search/Search.tsx:262 +#: src/view/screens/Search/Search.tsx:206 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "很抱歉,無法完成您的搜尋請求。請稍後再試。" -#: src/components/Lists.tsx:200 +#: src/view/com/composer/Composer.tsx:347 +msgid "We're sorry! The post you are replying to has been deleted." +msgstr "很抱歉!您回覆的貼文已被刪除。" + +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "很抱歉!我們找不到您正在尋找的頁面。" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 -msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." -msgstr "抱歉!您只能訂閱十個標籤者,您已達到十個的限制。" +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:333 +msgid "We're sorry! You can only subscribe to twenty labelers, and you've reached your limit of twenty." +msgstr "抱歉!您只能訂閱二十個標記者,您已達到二十個的限制。" -#: src/screens/Onboarding/StepInterests/index.tsx:145 +#: src/screens/Deactivated.tsx:128 +msgid "Welcome back!" +msgstr "歡迎回來!" + +#: src/components/NewskieDialog.tsx:103 +msgid "Welcome, friend!" +msgstr "歡迎,朋友!" + +#: src/screens/Onboarding/StepInterests/index.tsx:154 msgid "What are your interests?" -msgstr "您感興趣的是什麼?" +msgstr "您對什麼感興趣?" + +#: src/screens/StarterPack/Wizard/StepDetails.tsx:42 +msgid "What do you want to call your starter pack?" +msgstr "您想將您的入門包命名為什麼?" #: src/view/com/auth/SplashScreen.tsx:40 #: src/view/com/auth/SplashScreen.web.tsx:86 -#: src/view/com/composer/Composer.tsx:324 +#: src/view/com/composer/Composer.tsx:388 msgid "What's up?" msgstr "發生了什麼新鮮事?" @@ -5798,36 +6737,53 @@ msgstr "這個貼文使用了哪些語言?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "您想在演算法動態源中看到哪些語言?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 -#: src/view/com/modals/Threadgate.tsx:66 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 +msgid "Who can message you?" +msgstr "誰可以傳送訊息給您?" + +#: src/components/WhoCanReply.tsx:128 msgid "Who can reply" msgstr "誰可以回覆" -#: src/screens/Home/NoFeedsPinned.tsx:92 -msgid "Whoops!" -msgstr "" +#: src/components/WhoCanReply.tsx:212 +msgid "Who can reply dialog" +msgstr "「誰可以回覆」對話窗" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/WhoCanReply.tsx:216 +msgid "Who can reply?" +msgstr "誰可以回覆?" + +#: src/screens/Home/NoFeedsPinned.tsx:79 +#: src/screens/Messages/List/index.tsx:185 +msgid "Whoops!" +msgstr "哎呀!" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "為什麼應該審查這個內容?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:59 +#: src/components/ReportDialog/SelectReportOptionView.tsx:57 msgid "Why should this feed be reviewed?" msgstr "為什麼應該審查這個動態源?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:54 msgid "Why should this list be reviewed?" msgstr "為什麼應該審查這個列表?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +#: src/components/ReportDialog/SelectReportOptionView.tsx:63 msgid "Why should this message be reviewed?" -msgstr "" +msgstr "為什麼應該審查這則訊息?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" msgstr "為什麼應該審查這則貼文?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:60 +msgid "Why should this starter pack be reviewed?" +msgstr "為什麼應該審查這個入門包?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:48 msgid "Why should this user be reviewed?" msgstr "為什麼應該審查這個用戶?" @@ -5835,98 +6791,136 @@ msgstr "為什麼應該審查這個用戶?" msgid "Wide" msgstr "寬" -#: src/screens/Messages/Conversation/MessageInput.tsx:95 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 +#: src/screens/Messages/Conversation/MessageInput.tsx:140 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:134 msgid "Write a message" -msgstr "" +msgstr "撰寫訊息" -#: src/view/com/composer/Composer.tsx:505 +#: src/view/com/composer/Composer.tsx:580 msgid "Write post" msgstr "撰寫貼文" -#: src/view/com/composer/Composer.tsx:323 -#: src/view/com/composer/Prompt.tsx:37 +#: src/view/com/composer/Composer.tsx:387 +#: src/view/com/composer/Prompt.tsx:39 msgid "Write your reply" msgstr "撰寫您的回覆" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/state.ts:101 msgid "Writers" msgstr "作家" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:128 -#: src/view/screens/PreferencesFollowingFeed.tsx:200 -#: src/view/screens/PreferencesFollowingFeed.tsx:235 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 -#: src/view/screens/PreferencesThreads.tsx:106 -#: src/view/screens/PreferencesThreads.tsx:129 +#: src/view/screens/PreferencesFollowingFeed.tsx:127 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:100 +#: src/view/screens/PreferencesThreads.tsx:123 msgid "Yes" msgstr "開" -#: src/components/dms/MessageItem.tsx:158 -msgid "Yesterday, {time}" -msgstr "" +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:106 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:108 +msgid "Yes, deactivate" +msgstr "確定並停用" -#: src/screens/Deactivated.tsx:136 +#: src/screens/StarterPack/StarterPackScreen.tsx:638 +msgid "Yes, delete this starter pack" +msgstr "是,刪除這個入門包" + +#: src/screens/Deactivated.tsx:150 +msgid "Yes, reactivate my account" +msgstr "確定並停用我的帳號" + +#: src/components/dms/MessageItem.tsx:182 +msgid "Yesterday, {time}" +msgstr "昨天,{time}" + +#: src/components/StarterPack/StarterPackCard.tsx:73 +msgid "you" +msgstr "您" + +#: src/components/NewskieDialog.tsx:43 +msgid "You" +msgstr "您" + +#: src/screens/SignupQueued.tsx:136 msgid "You are in line." -msgstr "輪到您了。" +msgstr "您正處於隊列之中。" #: src/view/com/profile/ProfileFollows.tsx:86 msgid "You are not following anyone." msgstr "您沒有跟隨任何人。" -#: src/view/com/posts/FollowingEmptyState.tsx:67 -#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +#: src/view/com/posts/FollowingEmptyState.tsx:63 +#: src/view/com/posts/FollowingEndOfFeed.tsx:64 msgid "You can also discover new Custom Feeds to follow." msgstr "您也可以探索並跟隨新的自訂動態源。" -#: src/screens/Onboarding/StepFollowingFeed.tsx:143 -msgid "You can change these settings later." -msgstr "您可以往後在設定中更改。" +#: src/view/com/modals/DeleteAccount.tsx:202 +msgid "You can also temporarily deactivate your account instead, and reactivate it at any time." +msgstr "您也可以暫時停用帳號,然後隨時重新啟用。" + +#: src/components/dms/MessagesNUX.tsx:119 +msgid "You can change this at any time." +msgstr "您可以隨時變更該設定。" + +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "無論選擇哪種設定,都不會影響已發起的對話。" #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." msgstr "您現在可以使用新密碼登入。" +#: src/screens/Deactivated.tsx:136 +msgid "You can reactivate your account to continue logging in. Your profile and posts will be visible to other users." +msgstr "您可以登入以重新啟用帳號。其他用戶將可以重新看到您的個人檔案和貼文。" + #: src/view/com/profile/ProfileFollowers.tsx:86 msgid "You do not have any followers." msgstr "您沒有任何跟隨者。" +#: src/screens/Profile/KnownFollowers.tsx:99 +msgid "You don't follow any users who follow @{name}." +msgstr "您沒有跟隨任何也跟隨 @{name} 之用戶。" + #: src/view/com/modals/InviteCodes.tsx:67 msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "您目前還沒有邀請碼!當您持續使用 Bluesky 一段時間後,我們將提供一些新的邀請碼給您。" -#: src/view/screens/SavedFeeds.tsx:116 +#: src/view/screens/SavedFeeds.tsx:117 msgid "You don't have any pinned feeds." msgstr "您目前還沒有任何釘選的動態源。" -#: src/view/screens/Feeds.tsx:477 -#~ msgid "You don't have any saved feeds!" -#~ msgstr "您目前還沒有任何儲存的動態源!" - -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:158 msgid "You don't have any saved feeds." -msgstr "您目前還沒有任何儲存的動態源。" +msgstr "您目前還沒有任何已儲存的動態源。" -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "您已封鎖該作者,或您已被該作者封鎖。" +#: src/components/dms/MessagesListBlockedFooter.tsx:58 +msgid "You have blocked this user" +msgstr "您已封鎖該用戶" + #: src/components/moderation/ModerationDetailsDialog.tsx:66 -#: src/lib/moderation/useModerationCauseDescription.ts:50 -#: src/lib/moderation/useModerationCauseDescription.ts:58 +#: src/lib/moderation/useModerationCauseDescription.ts:52 +#: src/lib/moderation/useModerationCauseDescription.ts:60 msgid "You have blocked this user. You cannot view their content." msgstr "您已封鎖了此用戶,您將無法查看他們發佈的內容。" #: src/screens/Login/SetNewPasswordForm.tsx:54 #: src/screens/Login/SetNewPasswordForm.tsx:91 -#: src/view/com/modals/ChangePassword.tsx:89 -#: src/view/com/modals/ChangePassword.tsx:123 +#: src/view/com/modals/ChangePassword.tsx:88 +#: src/view/com/modals/ChangePassword.tsx:122 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." msgstr "您輸入的邀請碼無效。它應該長得像這樣 XXXXX-XXXXX。" -#: src/lib/moderation/useModerationCauseDescription.ts:109 +#: src/lib/moderation/useModerationCauseDescription.ts:111 msgid "You have hidden this post" msgstr "您已隱藏這則貼文" @@ -5935,129 +6929,187 @@ msgid "You have hidden this post." msgstr "您已隱藏這則貼文。" #: src/components/moderation/ModerationDetailsDialog.tsx:94 -#: src/lib/moderation/useModerationCauseDescription.ts:92 +#: src/lib/moderation/useModerationCauseDescription.ts:94 msgid "You have muted this account." msgstr "您已隱藏這個帳號。" -#: src/lib/moderation/useModerationCauseDescription.ts:86 +#: src/lib/moderation/useModerationCauseDescription.ts:88 msgid "You have muted this user" msgstr "您已靜音這個用戶" -#: src/view/com/feeds/ProfileFeedgens.tsx:144 +#: src/screens/Messages/List/index.tsx:225 +msgid "You have no conversations yet. Start one!" +msgstr "您還沒有對話,與其他用戶開始對話吧!" + +#: src/view/com/feeds/ProfileFeedgens.tsx:137 msgid "You have no feeds." -msgstr "您沒有訂閱動態源。" +msgstr "您沒有建立任何動態源。" -#: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:148 +#: src/view/com/lists/MyLists.tsx:90 +#: src/view/com/lists/ProfileLists.tsx:144 msgid "You have no lists." -msgstr "您沒有列表。" - -#: src/screens/Messages/List/index.tsx:200 -msgid "You have no messages yet. Start a conversation with someone!" -msgstr "您還沒有訊息。開始與其他人對話!" +msgstr "您沒有建立任何列表。" #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." -msgstr "您還沒有封鎖任何帳號。要封鎖帳號,請轉到其個人資料並在其帳號上的選單中選擇「封鎖帳號」。" +msgstr "您還沒有封鎖任何帳號。要封鎖帳號,請前往其個人檔案並在其帳號上的選單中選擇「封鎖帳號」。" -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." -msgstr "您還沒有建立任何應用程式專用密碼,如您想建立一個,按下面的按鈕。" +msgstr "您還沒有建立任何應用程式專用密碼,您可以按下面的按鈕來建立一個。" #: src/view/screens/ModerationMutedAccounts.tsx:133 msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." -msgstr "您還沒有靜音任何帳號。要靜音帳號,請轉到其個人資料並在其帳號上的選單中選擇「靜音帳號」。" +msgstr "您還沒有靜音任何帳號。要靜音帳號,請前往其個人檔案並在其帳號上的選單中選擇「靜音帳號」。" + +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "已經到底部啦!" + +#: src/components/StarterPack/ProfileStarterPacks.tsx:235 +msgid "You haven't created a starter pack yet!" +msgstr "您還沒有建立任何入門包!" #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "您還沒有隱藏任何文字或標籤" -#: src/components/moderation/LabelsOnMeDialog.tsx:84 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." -msgstr "" +msgstr "如果您認為這些標記有誤,且標記並非由您新增,您可以提出申訴。" -#: src/components/moderation/LabelsOnMeDialog.tsx:89 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." -msgstr "如果您覺得這些標籤是錯誤的,您可以申訴這些標籤。" +msgstr "如果您覺得這些標記有誤,您可以提出申訴。" + +#: src/screens/StarterPack/Wizard/State.tsx:95 +msgid "You may only add up to 50 feeds" +msgstr "您最多只能新增 50 個動態源" + +#: src/screens/StarterPack/Wizard/State.tsx:78 +msgid "You may only add up to 50 profiles" +msgstr "您最多只能新增 50 個個人檔案" #: src/screens/Signup/StepInfo/Policies.tsx:79 msgid "You must be 13 years of age or older to sign up." msgstr "您必須年滿 13 歲才能註冊。" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:110 -msgid "You must be 18 years or older to enable adult content" -msgstr "您必須年滿 18 歲才能啟用成人內容" +#: src/components/StarterPack/ProfileStarterPacks.tsx:306 +msgid "You must be following at least seven other people to generate a starter pack." +msgstr "您必須跟隨至少七個人才能建立入門包。" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/StarterPack/QrCodeDialog.tsx:60 +msgid "You must grant access to your photo library to save a QR code" +msgstr "您必須授予對圖片庫的存取權限才能儲存 QR Code" + +#: src/components/StarterPack/ShareDialog.tsx:68 +msgid "You must grant access to your photo library to save the image." +msgstr "您必須授予對圖片庫的存取權限才能儲存圖片。" + +#: src/components/ReportDialog/SubmitView.tsx:222 msgid "You must select at least one labeler for a report" msgstr "您必須選擇至少一個標記者來提交檢舉" -#: src/view/com/util/forms/PostDropdownBtn.tsx:158 -msgid "You will no longer receive notifications for this thread" -msgstr "您將不再收到這條對話串的通知" +#: src/screens/Deactivated.tsx:131 +msgid "You previously deactivated @{0}." +msgstr "您之前停用了 @{0}。" -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:174 +msgid "You will no longer receive notifications for this thread" +msgstr "您將不再收到這條討論串的通知" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:170 msgid "You will now receive notifications for this thread" -msgstr "您將收到這條對話串的通知" +msgstr "您將繼續收到這條討論串的通知" #: src/screens/Login/SetNewPasswordForm.tsx:104 msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." -msgstr "您將收到一封包含重設碼的電子郵件。請在此輸入該「重設碼」,然後輸入您的新密碼。" +msgstr "您將收到一封包含「重設碼」的電子郵件。請在此輸入該代碼,然後輸入您的新密碼。" -#: src/screens/Messages/List/ChatListItem.tsx:37 +#: src/screens/Messages/List/ChatListItem.tsx:114 msgid "You: {0}" -msgstr "" +msgstr "您:{0}" -#: src/screens/Onboarding/StepModeration/index.tsx:60 -msgid "You're in control" -msgstr "盡在您的掌控" +#: src/screens/Messages/List/ChatListItem.tsx:143 +msgid "You: {defaultEmbeddedContentMessage}" +msgstr "您:{defaultEmbeddedContentMessage}" -#: src/screens/Deactivated.tsx:93 -#: src/screens/Deactivated.tsx:94 -#: src/screens/Deactivated.tsx:109 +#: src/screens/Messages/List/ChatListItem.tsx:136 +msgid "You: {short}" +msgstr "您:{short}" + +#: src/screens/Signup/index.tsx:102 +msgid "You'll follow the suggested users and feeds once you finish creating your account!" +msgstr "當您成功建立帳號後,您將會跟隨建議的用戶和動態源!" + +#: src/screens/Signup/index.tsx:107 +msgid "You'll follow the suggested users once you finish creating your account!" +msgstr "當您完成帳號創建後,您將會跟隨建議的用戶!" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:234 +msgid "You'll follow these people and {0} others" +msgstr "您將會跟隨這些人物和其他 {0} 人" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:232 +msgid "You'll follow these people right away" +msgstr "您將會立即跟隨這些人物" + +#: src/screens/StarterPack/StarterPackLandingScreen.tsx:272 +msgid "You'll stay updated with these feeds" +msgstr "您將透過這些動態源接收最新動態" + +#: src/screens/SignupQueued.tsx:93 +#: src/screens/SignupQueued.tsx:94 +#: src/screens/SignupQueued.tsx:109 msgid "You're in line" msgstr "輪到您了" -#: src/screens/Onboarding/StepFinished.tsx:193 +#: src/screens/Deactivated.tsx:89 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:54 +msgid "You're logged in with an App Password. Please log in with your main password to continue deactivating your account." +msgstr "您正在使用應用程式專用密碼登入。請使用您的主密碼登入,以繼續停用您的帳號。" + +#: src/screens/Onboarding/StepFinished.tsx:236 msgid "You're ready to go!" -msgstr "您已設定完成!" +msgstr "您已完成設定!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 -#: src/lib/moderation/useModerationCauseDescription.ts:101 +#: src/lib/moderation/useModerationCauseDescription.ts:103 msgid "You've chosen to hide a word or tag within this post." msgstr "您選擇在這則貼文中隱藏文字或標籤。" -#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +#: src/view/com/posts/FollowingEndOfFeed.tsx:44 msgid "You've reached the end of your feed! Find some more accounts to follow." -msgstr "您已經瀏覽完您的訂閱動態源啦!跟隨其他帳號吧。" +msgstr "您已經瀏覽完貼文啦!跟隨其他帳號吧。" -#: src/screens/Signup/index.tsx:164 +#: src/screens/Signup/index.tsx:135 msgid "Your account" msgstr "您的帳號" -#: src/view/com/modals/DeleteAccount.tsx:69 +#: src/view/com/modals/DeleteAccount.tsx:88 msgid "Your account has been deleted" msgstr "您的帳號已刪除" -#: src/view/screens/Settings/ExportCarDialog.tsx:66 +#: src/view/screens/Settings/ExportCarDialog.tsx:65 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." -msgstr "您可以將您的帳號存放庫下載為一個「CAR」檔案。該檔案包含了所有公開的資料紀錄,但不包括嵌入媒體,例如圖片或您的私人資料,目前這些資料必須另外擷取。" +msgstr "您可以將您的帳號儲存庫下載為一個「CAR」檔案。該檔案包含了所有公開的資料紀錄,但不包括嵌入媒體,例如圖片或您的私人資料,目前這些資料必須另外擷取。" -#: src/screens/Signup/StepInfo/index.tsx:123 +#: src/screens/Signup/StepInfo/index.tsx:180 msgid "Your birth date" msgstr "您的生日" +#: src/screens/Messages/Conversation/ChatDisabled.tsx:25 +msgid "Your chats have been disabled" +msgstr "您的對話功能已被停用" + #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." msgstr "您的選擇將被儲存,但可以稍後在設定中更改。" -#: src/screens/Onboarding/StepFollowingFeed.tsx:62 -msgid "Your default feed is \"Following\"" -msgstr "您的預設動態源為「Following」" - #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:220 -#: src/view/com/modals/ChangePassword.tsx:56 +#: src/screens/Signup/state.ts:196 +#: src/screens/Signup/StepInfo/index.tsx:75 +#: src/view/com/modals/ChangePassword.tsx:55 msgid "Your email appears to be invalid." msgstr "您的電子郵件地址似乎無效。" @@ -6067,13 +7119,17 @@ msgstr "您的電子郵件地址已更新但尚未驗證。作為下一步,請 #: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." -msgstr "您的電子郵件地址尚未驗證。這是一個我們建議的重要安全步驟。" +msgstr "您的電子郵件地址尚未驗證。這是一個重要的安全措施,我們建議您完成驗證。" -#: src/view/com/posts/FollowingEmptyState.tsx:47 +#: src/state/shell/progress-guide.tsx:161 +msgid "Your first like!" +msgstr "您的第一個喜歡!" + +#: src/view/com/posts/FollowingEmptyState.tsx:43 msgid "Your following feed is empty! Follow more users to see what's happening." -msgstr "您的跟隨動態源是空的!跟隨更多用戶來看看發生了什麼事情。" +msgstr "您的「Following」動態源是空的!跟隨更多用戶來看看發生了什麼事情。" -#: src/screens/Signup/StepHandle.tsx:73 +#: src/screens/Signup/StepHandle.tsx:122 msgid "Your full handle will be" msgstr "您的完整帳號代碼將修改為" @@ -6085,30 +7141,34 @@ msgstr "您的完整帳號代碼將修改為 <0>@{0}" msgid "Your muted words" msgstr "您的靜音文字" -#: src/view/com/modals/ChangePassword.tsx:159 +#: src/view/com/modals/ChangePassword.tsx:158 msgid "Your password has been changed successfully!" msgstr "您的密碼已成功更改!" -#: src/view/com/composer/Composer.tsx:314 +#: src/view/com/composer/Composer.tsx:378 msgid "Your post has been published" msgstr "您的貼文已發佈" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Your posts, likes, and blocks are public. Mutes are private." -msgstr "您的貼文、按喜歡和封鎖是公開可見的,而靜音是私人的。" +msgstr "您的貼文、喜歡和封鎖是公開的,而靜音資訊則只有您可以查看。" -#: src/view/screens/Settings/index.tsx:145 +#: src/view/screens/Settings/index.tsx:149 msgid "Your profile" -msgstr "您的個人資料" +msgstr "您的個人檔案" -#: src/view/com/composer/Composer.tsx:313 +#: src/screens/Settings/components/DeactivateAccountDialog.tsx:75 +msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in." +msgstr "其他 Bluesky 用戶將無法再看到您的個人檔案、貼文、動態和列表。您可以隨時登入以重新啟用您的帳號。" + +#: src/view/com/composer/Composer.tsx:377 msgid "Your reply has been published" msgstr "您的回覆已發佈" -#: src/components/dms/MessageReportDialog.tsx:140 +#: src/components/dms/ReportDialog.tsx:162 msgid "Your report will be sent to the Bluesky Moderation Service" -msgstr "" +msgstr "您的檢舉將發送至 Bluesky 內容管理服務" -#: src/screens/Signup/index.tsx:166 +#: src/screens/Signup/index.tsx:137 msgid "Your user handle" msgstr "您的帳號代碼" diff --git a/src/platform/detection.ts b/src/platform/detection.ts index de4dfc07b9..c62ae71aae 100644 --- a/src/platform/detection.ts +++ b/src/platform/detection.ts @@ -1,6 +1,7 @@ import {Platform} from 'react-native' import {getLocales} from 'expo-localization' +import {fixLegacyLanguageCode} from '#/locale/helpers' import {dedupArray} from 'lib/functions' export const isIOS = Platform.OS === 'ios' @@ -13,14 +14,10 @@ export const isMobileWeb = isWeb && // @ts-ignore we know window exists -prf global.window.matchMedia(isMobileWebMediaQuery)?.matches +export const isIPhoneWeb = isWeb && /iPhone/.test(navigator.userAgent) export const deviceLocales = dedupArray( getLocales?.() - .map?.(locale => locale.languageCode) + .map?.(locale => fixLegacyLanguageCode(locale.languageCode)) .filter(code => typeof code === 'string'), ) as string[] - -export const prefersReducedMotion = - isWeb && - // @ts-ignore we know window exists -prf - !global.window.matchMedia('(prefers-reduced-motion: no-preference)')?.matches diff --git a/src/platform/urls.tsx b/src/platform/urls.tsx index fd844d9331..fd9d297aa2 100644 --- a/src/platform/urls.tsx +++ b/src/platform/urls.tsx @@ -1,4 +1,5 @@ -import {Linking} from 'react-native' +import {GestureResponderEvent, Linking} from 'react-native' + import {isNative, isWeb} from './detection' export async function getInitialURL(): Promise { @@ -23,3 +24,15 @@ export function clearHash() { window.location.hash = '' } } + +export function shouldClickOpenNewTab(e: GestureResponderEvent) { + /** + * A `GestureResponderEvent`, but cast to `any` to avoid using a bunch + * of @ts-ignore below. + */ + const event = e as any + const isMiddleClick = isWeb && event.button === 1 + const isMetaKey = + isWeb && (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) + return isMetaKey || isMiddleClick +} diff --git a/src/routes.ts b/src/routes.ts index 6845cccd0f..bda2d98e4b 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -5,6 +5,7 @@ export const router = new Router({ Search: '/search', Feeds: '/feeds', Notifications: '/notifications', + NotificationsSettings: '/notifications/settings', Settings: '/settings', LanguageSettings: '/settings/language', Lists: '/lists', @@ -15,6 +16,7 @@ export const router = new Router({ Profile: ['/profile/:name', '/profile/:name/rss'], ProfileFollowers: '/profile/:name/followers', ProfileFollows: '/profile/:name/follows', + ProfileKnownFollowers: '/profile/:name/known-followers', ProfileList: '/profile/:name/lists/:rkey', PostThread: '/profile/:name/post/:rkey', PostLikedBy: '/profile/:name/post/:rkey/liked-by', @@ -30,6 +32,7 @@ export const router = new Router({ PreferencesThreads: '/settings/threads', PreferencesExternalEmbeds: '/settings/external-embeds', AccessibilitySettings: '/settings/accessibility', + AppearanceSettings: '/settings/appearance', SavedFeeds: '/settings/saved-feeds', Support: '/support', PrivacyPolicy: '/support/privacy', @@ -40,4 +43,10 @@ export const router = new Router({ Messages: '/messages', MessagesSettings: '/messages/settings', MessagesConversation: '/messages/:conversation', + Start: '/start/:name/:rkey', + StarterPackEdit: '/starter-pack/edit/:rkey', + StarterPack: '/starter-pack/:name/:rkey', + StarterPackShort: '/starter-pack-short/:code', + StarterPackWizard: '/starter-pack/create', + VideoDownload: '/video-download', }) diff --git a/src/screens/Deactivated.tsx b/src/screens/Deactivated.tsx index 08a2232df2..add550f93c 100644 --- a/src/screens/Deactivated.tsx +++ b/src/screens/Deactivated.tsx @@ -1,19 +1,31 @@ import React from 'react' import {View} from 'react-native' import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {msg, plural, Trans} from '@lingui/macro' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' +import {useQueryClient} from '@tanstack/react-query' +import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher' import {logger} from '#/logger' import {isWeb} from '#/platform/detection' -import {isSessionDeactivated, useAgent, useSessionApi} from '#/state/session' -import {useOnboardingDispatch} from '#/state/shell' +import { + type SessionAccount, + useAgent, + useSession, + useSessionApi, +} from '#/state/session' +import {useSetMinimalShellMode} from '#/state/shell' +import {useLoggedOutViewControls} from '#/state/shell/logged-out' import {ScrollView} from '#/view/com/util/Views' import {Logo} from '#/view/icons/Logo' -import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {atoms as a, useTheme} from '#/alf' +import {AccountList} from '#/components/AccountList' import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {Divider} from '#/components/Divider' +import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' import {Loader} from '#/components/Loader' -import {P, Text} from '#/components/Typography' +import {Text} from '#/components/Typography' const COL_WIDTH = 400 @@ -21,199 +33,199 @@ export function Deactivated() { const {_} = useLingui() const t = useTheme() const insets = useSafeAreaInsets() - const {gtMobile} = useBreakpoints() - const onboardingDispatch = useOnboardingDispatch() + const {currentAccount, accounts} = useSession() + const {onPressSwitchAccount, pendingDid} = useAccountSwitcher() + const {setShowLoggedOut} = useLoggedOutViewControls() + const hasOtherAccounts = accounts.length > 1 + const setMinimalShellMode = useSetMinimalShellMode() const {logout} = useSessionApi() - const {getAgent} = useAgent() + const agent = useAgent() + const [pending, setPending] = React.useState(false) + const [error, setError] = React.useState() + const queryClient = useQueryClient() - const [isProcessing, setProcessing] = React.useState(false) - const [estimatedTime, setEstimatedTime] = React.useState( - undefined, - ) - const [placeInQueue, setPlaceInQueue] = React.useState( - undefined, + useFocusEffect( + React.useCallback(() => { + setMinimalShellMode(true) + }, [setMinimalShellMode]), ) - const checkStatus = React.useCallback(async () => { - setProcessing(true) - try { - const res = await getAgent().com.atproto.temp.checkSignupQueue() - if (res.data.activated) { - // ready to go, exchange the access token for a usable one and kick off onboarding - await getAgent().refreshSession() - if (!isSessionDeactivated(getAgent().session?.accessJwt)) { - onboardingDispatch({type: 'start'}) - } - } else { - // not ready, update UI - setEstimatedTime(msToString(res.data.estimatedTimeMs)) - if (typeof res.data.placeInQueue !== 'undefined') { - setPlaceInQueue(Math.max(res.data.placeInQueue, 1)) - } + const onSelectAccount = React.useCallback( + (account: SessionAccount) => { + if (account.did !== currentAccount?.did) { + onPressSwitchAccount(account, 'SwitchAccount') } - } catch (e: any) { - logger.error('Failed to check signup queue', {err: e.toString()}) - } finally { - setProcessing(false) - } - }, [ - setProcessing, - setEstimatedTime, - setPlaceInQueue, - onboardingDispatch, - getAgent, - ]) - - React.useEffect(() => { - checkStatus() - const interval = setInterval(checkStatus, 60e3) - return () => clearInterval(interval) - }, [checkStatus]) - - const checkBtn = ( - + }, + [currentAccount, onPressSwitchAccount], ) + const onPressAddAccount = React.useCallback(() => { + setShowLoggedOut(true) + }, [setShowLoggedOut]) + + const onPressLogout = React.useCallback(() => { + if (isWeb) { + // We're switching accounts, which remounts the entire app. + // On mobile, this gets us Home, but on the web we also need reset the URL. + // We can't change the URL via a navigate() call because the navigator + // itself is about to unmount, and it calls pushState() too late. + // So we change the URL ourselves. The navigator will pick it up on remount. + history.pushState(null, '', '/') + } + logout('Deactivated') + }, [logout]) + + const handleActivate = React.useCallback(async () => { + try { + setPending(true) + await agent.com.atproto.server.activateAccount() + await queryClient.resetQueries() + await agent.resumeSession(agent.session!) + } catch (e: any) { + switch (e.message) { + case 'Bad token scope': + setError( + _( + msg`You're logged in with an App Password. Please log in with your main password to continue deactivating your account.`, + ), + ) + break + default: + setError(_(msg`Something went wrong, please try again`)) + break + } + + logger.error(e, { + context: 'Failed to activate account', + }) + } finally { + setPending(false) + } + }, [_, agent, setPending, setError, queryClient]) + return ( - + - - - - - - - - You're in line - -

- - There's been a rush of new users to Bluesky! We'll activate your - account as soon as we can. - -

- - - {typeof placeInQueue === 'number' && ( - - {placeInQueue} - - )} -

- {typeof placeInQueue === 'number' ? ( - left to go. - ) : ( - You are in line. - )}{' '} - {estimatedTime ? ( - - We estimate {estimatedTime} until your account is ready. - - ) : ( - - We will let you know when your account is ready. - - )} -

-
- - {isWeb && gtMobile && ( - - - {checkBtn} - - )} -
- - - -
- - {(!isWeb || !gtMobile) && ( - - {checkBtn} - + + + + + + + + + Welcome back! + + + + You previously deactivated @{currentAccount?.handle}. + + + + + You can reactivate your account to continue logging in. Your + profile and posts will be visible to other users. + + + + + + + + + {error && ( + + + {error} + + )} + + + + + + + {hasOtherAccounts ? ( + <> + + Or, log into one of your other accounts. + + + + ) : ( + <> + + Or, continue with another account. + + + + )} + - )} + ) } - -function msToString(ms: number | undefined): string | undefined { - if (ms && ms > 0) { - const estimatedTimeMins = Math.ceil(ms / 60e3) - if (estimatedTimeMins > 59) { - const estimatedTimeHrs = Math.round(estimatedTimeMins / 60) - if (estimatedTimeHrs > 6) { - // dont even bother - return undefined - } - // hours - return `${estimatedTimeHrs} ${plural(estimatedTimeHrs, { - one: 'hour', - other: 'hours', - })}` - } - // minutes - return `${estimatedTimeMins} ${plural(estimatedTimeMins, { - one: 'minute', - other: 'minutes', - })}` - } - return undefined -} diff --git a/src/screens/E2E/SharedPreferencesTesterScreen.tsx b/src/screens/E2E/SharedPreferencesTesterScreen.tsx new file mode 100644 index 0000000000..380f1080b0 --- /dev/null +++ b/src/screens/E2E/SharedPreferencesTesterScreen.tsx @@ -0,0 +1,113 @@ +import React from 'react' +import {View} from 'react-native' + +import {ScrollView} from 'view/com/util/Views' +import {atoms as a} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import {Text} from '#/components/Typography' +import {SharedPrefs} from '../../../modules/expo-bluesky-swiss-army' + +export function SharedPreferencesTesterScreen() { + const [currentTestOutput, setCurrentTestOutput] = React.useState('') + + return ( + + + + {currentTestOutput} + + + + + + + + + + + + ) +} diff --git a/src/screens/Hashtag.tsx b/src/screens/Hashtag.tsx index 34539f5102..8bcb9359e9 100644 --- a/src/screens/Hashtag.tsx +++ b/src/screens/Hashtag.tsx @@ -169,7 +169,7 @@ function HashtagScreenTab({ const queryParam = React.useMemo(() => { if (!author) return fullTag - return `${fullTag} from:${sanitizeHandle(author)}` + return `${fullTag} from:${author}` }, [fullTag, author]) const { diff --git a/src/screens/Home/NoFeedsPinned.tsx b/src/screens/Home/NoFeedsPinned.tsx index e804e3e09f..3a98b87341 100644 --- a/src/screens/Home/NoFeedsPinned.tsx +++ b/src/screens/Home/NoFeedsPinned.tsx @@ -3,13 +3,10 @@ import {View} from 'react-native' import {TID} from '@atproto/common-web' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useNavigation} from '@react-navigation/native' import {DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED} from '#/lib/constants' -import {isNative} from '#/platform/detection' import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences' import {UsePreferencesQueryResponse} from '#/state/queries/preferences' -import {NavigationProp} from 'lib/routes/types' import {CenteredView} from '#/view/com/util/Views' import {atoms as a} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' @@ -26,7 +23,6 @@ export function NoFeedsPinned({ }) { const {_} = useLingui() const headerOffset = useHeaderOffset() - const navigation = useNavigation() const {isPending, mutateAsync: overwriteSavedFeeds} = useOverwriteSavedFeedsMutation() @@ -66,15 +62,6 @@ export function NoFeedsPinned({ await overwriteSavedFeeds(toSave) }, [overwriteSavedFeeds, preferences.savedFeeds]) - const onPressFeedsLink = React.useCallback(() => { - if (isNative) { - // Hack that's necessary due to how our navigators are set up. - navigation.navigate('FeedsTab') - navigation.popToTop() - return false - } - }, [navigation]) - return ( diff --git a/src/screens/Login/LoginForm.tsx b/src/screens/Login/LoginForm.tsx index 58c100294c..35b124b611 100644 --- a/src/screens/Login/LoginForm.tsx +++ b/src/screens/Login/LoginForm.tsx @@ -19,7 +19,9 @@ import {cleanError} from '#/lib/strings/errors' import {createFullHandle} from '#/lib/strings/handles' import {logger} from '#/logger' import {useSessionApi} from '#/state/session' +import {useLoggedOutViewControls} from '#/state/shell/logged-out' import {useRequestNotificationsPermission} from 'lib/notifications/notifications' +import {useSetHasCheckedForStarterPack} from 'state/preferences/used-starter-packs' import {atoms as a, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {FormError} from '#/components/forms/FormError' @@ -58,15 +60,18 @@ export const LoginForm = ({ const {track} = useAnalytics() const t = useTheme() const [isProcessing, setIsProcessing] = useState(false) + const [isReady, setIsReady] = useState(false) const [isAuthFactorTokenNeeded, setIsAuthFactorTokenNeeded] = useState(false) - const [identifier, setIdentifier] = useState(initialHandle) - const [password, setPassword] = useState('') - const [authFactorToken, setAuthFactorToken] = useState('') - const passwordInputRef = useRef(null) + const identifierValueRef = useRef(initialHandle || '') + const passwordValueRef = useRef('') + const authFactorTokenValueRef = useRef('') + const passwordRef = useRef(null) const {_} = useLingui() const {login} = useSessionApi() const requestNotificationsPermission = useRequestNotificationsPermission() + const {setShowLoggedOut} = useLoggedOutViewControls() + const setHasCheckedForStarterPack = useSetHasCheckedForStarterPack() const onPressSelectService = React.useCallback(() => { Keyboard.dismiss() @@ -80,6 +85,10 @@ export const LoginForm = ({ setError('') setIsProcessing(true) + const identifier = identifierValueRef.current.toLowerCase().trim() + const password = passwordValueRef.current + const authFactorToken = authFactorTokenValueRef.current + try { // try to guess the handle if the user just gave their own username let fullIdent = identifier @@ -113,6 +122,8 @@ export const LoginForm = ({ }, 'LoginForm', ) + setShowLoggedOut(false) + setHasCheckedForStarterPack(true) requestNotificationsPermission('Login') } catch (e: any) { const errMsg = e.toString() @@ -146,7 +157,22 @@ export const LoginForm = ({ } } - const isReady = !!serviceDescription && !!identifier && !!password + const checkIsReady = () => { + if ( + !!serviceDescription && + !!identifierValueRef.current && + !!passwordValueRef.current + ) { + if (!isReady) { + setIsReady(true) + } + } else { + if (isReady) { + setIsReady(false) + } + } + } + return ( Sign in
}> @@ -175,14 +201,15 @@ export const LoginForm = ({ autoComplete="username" returnKeyType="next" textContentType="username" + defaultValue={initialHandle || ''} + onChangeText={v => { + identifierValueRef.current = v + checkIsReady() + }} onSubmitEditing={() => { - passwordInputRef.current?.focus() + passwordRef.current?.focus() }} blurOnSubmit={false} // prevents flickering due to onSubmitEditing going to next field - value={identifier} - onChangeText={str => - setIdentifier((str || '').toLowerCase().trim()) - } editable={!isProcessing} accessibilityHint={_( msg`Input the username or email address you used at signup`, @@ -194,7 +221,7 @@ export const LoginForm = ({ { + passwordValueRef.current = v + checkIsReady() + }} onSubmitEditing={onPressNext} blurOnSubmit={false} // HACK: https://github.com/facebook/react-native/issues/21911#issuecomment-558343069 Keyboard blur behavior is now handled in onSubmitEditing editable={!isProcessing} - accessibilityHint={ - identifier === '' - ? _(msg`Input your password`) - : _(msg`Input the password tied to ${identifier}`) - } + accessibilityHint={_(msg`Input your password`)} /> + + + + + + + ) +} + +function DialogInner() { + const {_} = useLingui() + const control = Dialog.useDialogContext() + const [details, setDetails] = useState('') + const {gtMobile} = useBreakpoints() + const agent = useAgent() + const {currentAccount} = useSession() + + const {mutate, isPending} = useMutation({ + mutationFn: async () => { + if (!currentAccount) + throw new Error('No current account, should be unreachable') + await agent.createModerationReport({ + reasonType: ComAtprotoModerationDefs.REASONAPPEAL, + subject: { + $type: 'com.atproto.admin.defs#repoRef', + did: currentAccount.did, + }, + reason: details, + }) + }, + onError: err => { + logger.error('Failed to submit chat appeal', {message: err}) + Toast.show(_(msg`Failed to submit appeal, please try again.`), 'xmark') + }, + onSuccess: () => { + control.close() + Toast.show(_(msg`Appeal submitted`)) + }, + }) + + const onSubmit = useCallback(() => mutate(), [mutate]) + const onBack = useCallback(() => control.close(), [control]) + + return ( + + + Appeal this decision + + + This appeal will be sent to Bluesky's moderation service. + + + + + + + + + + + + ) +} diff --git a/src/screens/Messages/Conversation/MessageInput.tsx b/src/screens/Messages/Conversation/MessageInput.tsx index 2b3ee45df6..dc63a869a6 100644 --- a/src/screens/Messages/Conversation/MessageInput.tsx +++ b/src/screens/Messages/Conversation/MessageInput.tsx @@ -1,13 +1,16 @@ import React from 'react' +import {Pressable, TextInput, useWindowDimensions, View} from 'react-native' import { - Dimensions, - Keyboard, - NativeSyntheticEvent, - Pressable, - TextInput, - TextInputContentSizeChangeEventData, - View, -} from 'react-native' + useFocusedInputHandler, + useReanimatedKeyboardAnimation, +} from 'react-native-keyboard-controller' +import Animated, { + measure, + useAnimatedProps, + useAnimatedRef, + useAnimatedStyle, + useSharedValue, +} from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -19,77 +22,119 @@ import { useMessageDraft, useSaveMessageDraft, } from '#/state/messages/message-drafts' +import {isIOS} from 'platform/detection' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' +import {useSharedInputStyles} from '#/components/forms/TextField' import {PaperPlane_Stroke2_Corner0_Rounded as PaperPlane} from '#/components/icons/PaperPlane' +import {useExtractEmbedFromFacets} from './MessageInputEmbed' + +const AnimatedTextInput = Animated.createAnimatedComponent(TextInput) export function MessageInput({ onSendMessage, - scrollToEnd, + hasEmbed, + setEmbed, + children, }: { onSendMessage: (message: string) => void - scrollToEnd: () => void + hasEmbed: boolean + setEmbed: (embedUrl: string | undefined) => void + children?: React.ReactNode }) { const {_} = useLingui() const t = useTheme() const playHaptic = useHaptics() const {getDraft, clearDraft} = useMessageDraft() - const [message, setMessage] = React.useState(getDraft) - const [maxHeight, setMaxHeight] = React.useState() - const [isInputScrollable, setIsInputScrollable] = React.useState(false) + // Input layout const {top: topInset} = useSafeAreaInsets() + const {height: windowHeight} = useWindowDimensions() + const {height: keyboardHeight} = useReanimatedKeyboardAnimation() + const maxHeight = useSharedValue(undefined) + const isInputScrollable = useSharedValue(false) - const inputRef = React.useRef(null) + const inputStyles = useSharedInputStyles() + const [isFocused, setIsFocused] = React.useState(false) + const [message, setMessage] = React.useState(getDraft) + const inputRef = useAnimatedRef() + + useSaveMessageDraft(message) + useExtractEmbedFromFacets(message, setEmbed) const onSubmit = React.useCallback(() => { - if (message.trim() === '') { + if (!hasEmbed && message.trim() === '') { return } if (new Graphemer().countGraphemes(message) > MAX_DM_GRAPHEME_LENGTH) { - Toast.show(_(msg`Message is too long`)) + Toast.show(_(msg`Message is too long`), 'xmark') return } clearDraft() - onSendMessage(message.trimEnd()) + onSendMessage(message) playHaptic() setMessage('') + setEmbed(undefined) + + // Pressing the send button causes the text input to lose focus, so we need to + // re-focus it after sending setTimeout(() => { inputRef.current?.focus() }, 100) - }, [message, onSendMessage, playHaptic, _, clearDraft]) + }, [ + hasEmbed, + message, + clearDraft, + onSendMessage, + playHaptic, + setEmbed, + _, + inputRef, + ]) - const onInputLayout = React.useCallback( - (e: NativeSyntheticEvent) => { - const keyboardHeight = Keyboard.metrics()?.height ?? 0 - const windowHeight = Dimensions.get('window').height + useFocusedInputHandler( + { + onChangeText: () => { + 'worklet' + const measurement = measure(inputRef) + if (!measurement) return - const max = windowHeight - keyboardHeight - topInset - 100 - const availableSpace = max - e.nativeEvent.contentSize.height + const max = windowHeight - -keyboardHeight.value - topInset - 150 + const availableSpace = max - measurement.height - setMaxHeight(max) - setIsInputScrollable(availableSpace < 30) - - scrollToEnd() + maxHeight.value = max + isInputScrollable.value = availableSpace < 30 + }, }, - [scrollToEnd, topInset], + [windowHeight, topInset], ) - useSaveMessageDraft(message) + const animatedStyle = useAnimatedStyle(() => ({ + maxHeight: maxHeight.value, + })) + + const animatedProps = useAnimatedProps(() => ({ + scrollEnabled: isInputScrollable.value, + })) return ( - + + {children} - setIsFocused(true)} + onBlur={() => setIsFocused(false)} ref={inputRef} + hitSlop={HITSLOP_10} + animatedProps={animatedProps} /> void - scrollToEnd: () => void + hasEmbed: boolean + setEmbed: (embedUrl: string | undefined) => void + children?: React.ReactNode }) { + const {isTabletOrDesktop} = useWebMediaQueries() const {_} = useLingui() const t = useTheme() const {getDraft, clearDraft} = useMessageDraft() const [message, setMessage] = React.useState(getDraft) + const inputStyles = useSharedInputStyles() + const isComposing = React.useRef(false) + const [isFocused, setIsFocused] = React.useState(false) + const [isHovered, setIsHovered] = React.useState(false) + const [textAreaHeight, setTextAreaHeight] = React.useState(38) + const onSubmit = React.useCallback(() => { - if (message.trim() === '') { + if (!hasEmbed && message.trim() === '') { return } if (new Graphemer().countGraphemes(message) > MAX_DM_GRAPHEME_LENGTH) { - Toast.show(_(msg`Message is too long`)) + Toast.show(_(msg`Message is too long`), 'xmark') return } clearDraft() - onSendMessage(message.trimEnd()) + onSendMessage(message) setMessage('') - }, [message, onSendMessage, _, clearDraft]) + setEmbed(undefined) + }, [message, onSendMessage, _, clearDraft, hasEmbed, setEmbed]) const onKeyDown = React.useCallback( (e: React.KeyboardEvent) => { + // Don't submit the form when the Japanese or any other IME is composing + if (isComposing.current) return + + // see https://github.com/bluesky-social/social-app/issues/4178 + // see https://www.stum.de/2016/06/24/handling-ime-events-in-javascript/ + // see https://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html + // + // On Safari, the final keydown event to dismiss the IME - which is the enter key - is also "Enter" below. + // Obviously, this causes problems because the final dismissal should _not_ submit the text, but should just + // stop the IME editing. This is the behavior of Chrome and Firefox, but not Safari. + // + // Keycode is deprecated, however the alternative seems to only be to compare the timestamp from the + // onCompositionEnd event to the timestamp of the keydown event, which is not reliable. For example, this hack + // uses that method: https://github.com/ProseMirror/prosemirror-view/pull/44. However, from my 500ms resulted in + // far too long of a delay, and a subsequent enter press would often just end up doing nothing. A shorter time + // frame was also not great, since it was too short to be reliable (i.e. an older system might have a larger + // time gap between the two events firing. + if (isSafari && e.key === 'Enter' && e.keyCode === 229) { + return + } + if (e.key === 'Enter') { if (e.shiftKey) return e.preventDefault() @@ -57,18 +95,29 @@ export function MessageInput({ ) useSaveMessageDraft(message) + useExtractEmbedFromFacets(message, setEmbed) return ( + {children} + { + paddingRight: a.p_sm.padding - 2, + paddingLeft: a.p_md.padding - 2, + borderWidth: 1, + borderRadius: 23, + borderColor: 'transparent', + height: textAreaHeight + 23, + }, + isHovered && inputStyles.chromeHover, + isFocused && inputStyles.chromeFocus, + ]} + // @ts-expect-error web only + onMouseEnter={() => setIsHovered(true)} + onMouseLeave={() => setIsHovered(false)}> setIsFocused(true)} + onBlur={() => setIsFocused(false)} + onCompositionStart={() => { + isComposing.current = true + }} + onCompositionEnd={() => { + isComposing.current = false + }} + onHeightChange={height => setTextAreaHeight(height)} onChange={onChange} - onKeyDown={onKeyDown} + // On mobile web phones, we want to keep the same behavior as the native app. Do not submit the message + // in these cases. + onKeyDown={isTouchDevice && isTabletOrDesktop ? undefined : onKeyDown} /> diff --git a/src/screens/Messages/Conversation/MessageInputEmbed.tsx b/src/screens/Messages/Conversation/MessageInputEmbed.tsx new file mode 100644 index 0000000000..4fdd31bcf1 --- /dev/null +++ b/src/screens/Messages/Conversation/MessageInputEmbed.tsx @@ -0,0 +1,231 @@ +import React, {useCallback, useEffect, useMemo, useState} from 'react' +import {LayoutAnimation, View} from 'react-native' +import { + AppBskyEmbedImages, + AppBskyEmbedRecordWithMedia, + AppBskyFeedPost, + AppBskyRichtextFacet, + AtUri, + RichText as RichTextAPI, +} from '@atproto/api' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {RouteProp, useNavigation, useRoute} from '@react-navigation/native' + +import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' +import {makeProfileLink} from '#/lib/routes/links' +import {CommonNavigatorParams, NavigationProp} from '#/lib/routes/types' +import { + convertBskyAppUrlIfNeeded, + isBskyPostUrl, + makeRecordUri, +} from '#/lib/strings/url-helpers' +import {useModerationOpts} from '#/state/preferences/moderation-opts' +import {usePostQuery} from '#/state/queries/post' +import {ImageHorzList} from '#/view/com/util/images/ImageHorzList' +import {PostMeta} from '#/view/com/util/PostMeta' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonIcon} from '#/components/Button' +import {TimesLarge_Stroke2_Corner0_Rounded as X} from '#/components/icons/Times' +import {Loader} from '#/components/Loader' +import {ContentHider} from '#/components/moderation/ContentHider' +import {PostAlerts} from '#/components/moderation/PostAlerts' +import {RichText} from '#/components/RichText' +import {Text} from '#/components/Typography' + +export function useMessageEmbed() { + const route = + useRoute>() + const navigation = useNavigation() + const embedFromParams = route.params.embed + + const [embedUri, setEmbed] = useState(embedFromParams) + + if (embedFromParams && embedUri !== embedFromParams) { + setEmbed(embedFromParams) + } + + return { + embedUri, + setEmbed: useCallback( + (embedUrl: string | undefined) => { + if (!embedUrl) { + navigation.setParams({embed: ''}) + setEmbed(undefined) + return + } + + if (embedFromParams) return + + const url = convertBskyAppUrlIfNeeded(embedUrl) + const [_0, user, _1, rkey] = url.split('/').filter(Boolean) + const uri = makeRecordUri(user, 'app.bsky.feed.post', rkey) + + setEmbed(uri) + }, + [embedFromParams, navigation], + ), + } +} + +export function useExtractEmbedFromFacets( + message: string, + setEmbed: (embedUrl: string | undefined) => void, +) { + const rt = new RichTextAPI({text: message}) + rt.detectFacetsWithoutResolution() + + let uriFromFacet: string | undefined + + for (const facet of rt.facets ?? []) { + for (const feature of facet.features) { + if (AppBskyRichtextFacet.isLink(feature) && isBskyPostUrl(feature.uri)) { + uriFromFacet = feature.uri + break + } + } + } + + useEffect(() => { + if (uriFromFacet) { + setEmbed(uriFromFacet) + } + }, [uriFromFacet, setEmbed]) +} + +export function MessageInputEmbed({ + embedUri, + setEmbed, +}: { + embedUri: string | undefined + setEmbed: (embedUrl: string | undefined) => void +}) { + const t = useTheme() + const {_} = useLingui() + + const {data: post, status} = usePostQuery(embedUri) + + const moderationOpts = useModerationOpts() + const moderation = useMemo( + () => + moderationOpts && post ? moderatePost(post, moderationOpts) : undefined, + [moderationOpts, post], + ) + + const {rt, record} = useMemo(() => { + if ( + post && + AppBskyFeedPost.isRecord(post.record) && + AppBskyFeedPost.validateRecord(post.record).success + ) { + return { + rt: new RichTextAPI({ + text: post.record.text, + facets: post.record.facets, + }), + record: post.record, + } + } + + return {rt: undefined, record: undefined} + }, [post]) + + if (!embedUri) { + return null + } + + let content = null + switch (status) { + case 'pending': + content = ( + + + + ) + break + case 'error': + content = ( + + Could not fetch post + + ) + break + case 'success': + const itemUrip = new AtUri(post.uri) + const itemHref = makeProfileLink(post.author, 'post', itemUrip.rkey) + + if (!post || !moderation || !rt || !record) { + return null + } + + const images = AppBskyEmbedImages.isView(post.embed) + ? post.embed.images + : AppBskyEmbedRecordWithMedia.isView(post.embed) && + AppBskyEmbedImages.isView(post.embed.media) + ? post.embed.media.images + : undefined + + content = ( + + + + + {rt.text && ( + + + + )} + {images && images?.length > 0 && ( + + )} + + + ) + break + } + + return ( + + {content} + + + ) +} diff --git a/src/screens/Messages/Conversation/MessageListError.tsx b/src/screens/Messages/Conversation/MessageListError.tsx index c6e246a3fb..6f50948df9 100644 --- a/src/screens/Messages/Conversation/MessageListError.tsx +++ b/src/screens/Messages/Conversation/MessageListError.tsx @@ -5,68 +5,56 @@ import {useLingui} from '@lingui/react' import {ConvoItem, ConvoItemError} from '#/state/messages/convo/types' import {atoms as a, useTheme} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as Refresh} from '#/components/icons/ArrowRotateCounterClockwise' import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' +import {InlineLinkText} from '#/components/Link' import {Text} from '#/components/Typography' -export function MessageListError({ - item, -}: { - item: ConvoItem & {type: 'error-recoverable'} -}) { +export function MessageListError({item}: {item: ConvoItem & {type: 'error'}}) { const t = useTheme() const {_} = useLingui() - const message = React.useMemo(() => { + const {description, help, cta} = React.useMemo(() => { return { - [ConvoItemError.Network]: _( - msg`There was an issue connecting to the chat.`, - ), - [ConvoItemError.FirehoseFailed]: _( - msg`This chat was disconnected due to a network error.`, - ), - [ConvoItemError.HistoryFailed]: _(msg`Failed to load past messages.`), + [ConvoItemError.FirehoseFailed]: { + description: _(msg`This chat was disconnected`), + help: _(msg`Press to attempt reconnection`), + cta: _(msg`Reconnect`), + }, + [ConvoItemError.HistoryFailed]: { + description: _(msg`Failed to load past messages`), + help: _(msg`Press to retry`), + cta: _(msg`Retry`), + }, }[item.code] }, [_, item.code]) return ( - + - - - - {message} - - + - + + {description} ·{' '} + {item.retry && ( + { + e.preventDefault() + item.retry?.() + return false + }}> + {cta} + + )} + ) diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index 9c7774e578..c0e78e9789 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -1,24 +1,44 @@ import React, {useCallback, useRef} from 'react' -import {FlatList, View} from 'react-native' -import {useKeyboardHandler} from 'react-native-keyboard-controller' -import {runOnJS, useSharedValue} from 'react-native-reanimated' +import {FlatList, LayoutChangeEvent, View} from 'react-native' +import { + KeyboardStickyView, + useKeyboardHandler, +} from 'react-native-keyboard-controller' +import { + runOnJS, + scrollTo, + useAnimatedRef, + useAnimatedStyle, + useSharedValue, +} from 'react-native-reanimated' import {ReanimatedScrollEvent} from 'react-native-reanimated/lib/typescript/reanimated2/hook/commonTypes' -import {AppBskyRichtextFacet, RichText} from '@atproto/api' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {AppBskyEmbedRecord, AppBskyRichtextFacet, RichText} from '@atproto/api' -import {shortenLinks} from '#/lib/strings/rich-text-manip' +import {shortenLinks, stripInvalidMentions} from '#/lib/strings/rich-text-manip' +import { + convertBskyAppUrlIfNeeded, + isBskyPostUrl, +} from '#/lib/strings/url-helpers' +import {logger} from '#/logger' import {isNative} from '#/platform/detection' -import {useConvoActive} from '#/state/messages/convo' -import {ConvoItem} from '#/state/messages/convo/types' +import {isConvoActive, useConvoActive} from '#/state/messages/convo' +import {ConvoItem, ConvoStatus} from '#/state/messages/convo/types' +import {useGetPost} from '#/state/queries/post' import {useAgent} from '#/state/session' +import {clamp} from 'lib/numbers' import {ScrollProvider} from 'lib/ScrollContext' import {isWeb} from 'platform/detection' import {List} from 'view/com/util/List' +import {ChatDisabled} from '#/screens/Messages/Conversation/ChatDisabled' import {MessageInput} from '#/screens/Messages/Conversation/MessageInput' import {MessageListError} from '#/screens/Messages/Conversation/MessageListError' -import {atoms as a} from '#/alf' +import {ChatEmptyPill} from '#/components/dms/ChatEmptyPill' import {MessageItem} from '#/components/dms/MessageItem' +import {NewMessagesPill} from '#/components/dms/NewMessagesPill' import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' +import {MessageInputEmbed, useMessageEmbed} from './MessageInputEmbed' function MaybeLoader({isLoading}: {isLoading: boolean}) { return ( @@ -39,7 +59,7 @@ function renderItem({item}: {item: ConvoItem}) { return } else if (item.type === 'deleted-message') { return Deleted message - } else if (item.type === 'error-recoverable') { + } else if (item.type === 'error') { return } @@ -54,28 +74,52 @@ function onScrollToIndexFailed() { // Placeholder function. You have to give FlatList something or else it will error. } -export function MessagesList() { - const convo = useConvoActive() - const {getAgent} = useAgent() - const flatListRef = useRef(null) +export function MessagesList({ + hasScrolled, + setHasScrolled, + blocked, + footer, +}: { + hasScrolled: boolean + setHasScrolled: React.Dispatch> + blocked?: boolean + footer?: React.ReactNode +}) { + const convoState = useConvoActive() + const agent = useAgent() + const getPost = useGetPost() + const {embedUri, setEmbed} = useMessageEmbed() + + const flatListRef = useAnimatedRef() + + const [newMessagesPill, setNewMessagesPill] = React.useState({ + show: false, + startContentOffset: 0, + }) // We need to keep track of when the scroll offset is at the bottom of the list to know when to scroll as new items // are added to the list. For example, if the user is scrolled up to 1iew older messages, we don't want to scroll to // the bottom. const isAtBottom = useSharedValue(true) - // This will be used on web to assist in determing if we need to maintain the content offset + // This will be used on web to assist in determining if we need to maintain the content offset const isAtTop = useSharedValue(true) // Used to keep track of the current content height. We'll need this in `onScroll` so we know when to start allowing // onStartReached to fire. - const contentHeight = useSharedValue(0) + const prevContentHeight = useRef(0) + const prevItemCount = useRef(0) - // We don't want to call `scrollToEnd` again if we are already scolling to the end, because this creates a bit of jank - // Instead, we use `onMomentumScrollEnd` and this value to determine if we need to start scrolling or not. - const isMomentumScrolling = useSharedValue(false) + // -- Keep track of background state and positioning for new pill + const layoutHeight = useSharedValue(0) + const didBackground = React.useRef(false) + React.useEffect(() => { + if (convoState.status === ConvoStatus.Backgrounded) { + didBackground.current = true + } + }, [convoState.status]) - const hasInitiallyScrolled = useSharedValue(false) + // -- Scroll handling // Every time the content size changes, that means one of two things is happening: // 1. New messages are being added from the log or from a message you have sent @@ -90,72 +134,80 @@ export function MessagesList() { const onContentSizeChange = useCallback( (_: number, height: number) => { // Because web does not have `maintainVisibleContentPosition` support, we will need to manually scroll to the - // previous offset whenever we add new content to the previous offset whenever we add new content to the list. - if (isWeb && isAtTop.value && hasInitiallyScrolled.value) { + // previous off whenever we add new content to the previous offset whenever we add new content to the list. + if (isWeb && isAtTop.value && hasScrolled) { flatListRef.current?.scrollToOffset({ + offset: height - prevContentHeight.current, animated: false, - offset: height - contentHeight.value, }) } - contentHeight.value = height - // This number _must_ be the height of the MaybeLoader component - if (height <= 50 || !isAtBottom.value) { - return + if (height > 50 && isAtBottom.value) { + // If the size of the content is changing by more than the height of the screen, then we don't + // want to scroll further than the start of all the new content. Since we are storing the previous offset, + // we can just scroll the user to that offset and add a little bit of padding. We'll also show the pill + // that can be pressed to immediately scroll to the end. + if ( + didBackground.current && + hasScrolled && + height - prevContentHeight.current > layoutHeight.value - 50 && + convoState.items.length - prevItemCount.current > 1 + ) { + flatListRef.current?.scrollToOffset({ + offset: prevContentHeight.current - 65, + animated: true, + }) + setNewMessagesPill({ + show: true, + startContentOffset: prevContentHeight.current - 65, + }) + } else { + flatListRef.current?.scrollToOffset({ + offset: height, + animated: hasScrolled && height > prevContentHeight.current, + }) + + // HACK Unfortunately, we need to call `setHasScrolled` after a brief delay, + // because otherwise there is too much of a delay between the time the content + // scrolls and the time the screen appears, causing a flicker. + // We cannot actually use a synchronous scroll here, because `onContentSizeChange` + // is actually async itself - all the info has to come across the bridge first. + if (!hasScrolled && !convoState.isFetchingHistory) { + setTimeout(() => { + setHasScrolled(true) + }, 100) + } + } } - flatListRef.current?.scrollToOffset({ - animated: hasInitiallyScrolled.value, - offset: height, - }) - isMomentumScrolling.value = true + prevContentHeight.current = height + prevItemCount.current = convoState.items.length + didBackground.current = false }, [ - contentHeight, - hasInitiallyScrolled, - isAtBottom.value, + hasScrolled, + setHasScrolled, + convoState.isFetchingHistory, + convoState.items.length, + // these are stable + flatListRef, isAtTop.value, - isMomentumScrolling, + isAtBottom.value, + layoutHeight.value, ], ) - // The check for `hasInitiallyScrolled` prevents an initial fetch on mount. FlatList triggers `onStartReached` - // immediately on mount, since we are in fact at an offset of zero, so we have to ignore those initial calls. const onStartReached = useCallback(() => { - if (hasInitiallyScrolled.value) { - convo.fetchMessageHistory() + if (hasScrolled && prevContentHeight.current > layoutHeight.value) { + convoState.fetchMessageHistory() } - }, [convo, hasInitiallyScrolled]) - - const onSendMessage = useCallback( - async (text: string) => { - let rt = new RichText({text}, {cleanNewlines: true}) - await rt.detectFacets(getAgent()) - rt = shortenLinks(rt) - - // filter out any mention facets that didn't map to a user - rt.facets = rt.facets?.filter(facet => { - const mention = facet.features.find(feature => - AppBskyRichtextFacet.isMention(feature), - ) - if (mention && !mention.did) { - return false - } - return true - }) - - convo.sendMessage({ - text: rt.text, - facets: rt.facets, - }) - }, - [convo, getAgent], - ) + }, [convoState, hasScrolled, layoutHeight.value]) const onScroll = React.useCallback( (e: ReanimatedScrollEvent) => { 'worklet' + layoutHeight.value = e.layoutMeasurement.height const bottomOffset = e.contentOffset.y + e.layoutMeasurement.height // Most apps have a little bit of space the user can scroll past while still automatically scrolling ot the bottom @@ -163,73 +215,221 @@ export function MessagesList() { isAtBottom.value = e.contentSize.height - 100 < bottomOffset isAtTop.value = e.contentOffset.y <= 1 - // This number _must_ be the height of the MaybeLoader component. - // We don't check for zero, because the `MaybeLoader` component is always present, even when not visible, which - // adds a 50 pixel offset. - if (contentHeight.value > 50 && !hasInitiallyScrolled.value) { - hasInitiallyScrolled.value = true + if ( + newMessagesPill.show && + (e.contentOffset.y > newMessagesPill.startContentOffset + 200 || + isAtBottom.value) + ) { + runOnJS(setNewMessagesPill)({ + show: false, + startContentOffset: 0, + }) } }, - [contentHeight.value, hasInitiallyScrolled, isAtBottom, isAtTop], + [layoutHeight, newMessagesPill, isAtBottom, isAtTop], ) - const onMomentumEnd = React.useCallback(() => { - 'worklet' - isMomentumScrolling.value = false - }, [isMomentumScrolling]) + // -- Keyboard animation handling + const {bottom: bottomInset} = useSafeAreaInsets() + const bottomOffset = isWeb ? 0 : clamp(60 + bottomInset, 60, 75) - const scrollToEnd = React.useCallback(() => { - requestAnimationFrame(() => { - if (isMomentumScrolling.value) return + const keyboardHeight = useSharedValue(0) + const keyboardIsOpening = useSharedValue(false) - flatListRef.current?.scrollToEnd({animated: true}) - isMomentumScrolling.value = true - }) - }, [isMomentumScrolling]) - - // This is only used inside the useKeyboardHandler because the worklet won't work with a ref directly. - const scrollToEndNow = React.useCallback(() => { - flatListRef.current?.scrollToEnd({animated: false}) - }, []) + // In some cases - like when the emoji piker opens - we don't want to animate the scroll in the list onLayout event. + // We use this value to keep track of when we want to disable the animation. + const layoutScrollWithoutAnimation = useSharedValue(false) useKeyboardHandler({ - onMove: () => { + onStart: e => { 'worklet' - runOnJS(scrollToEndNow)() + // Immediate updates - like opening the emoji picker - will have a duration of zero. In those cases, we should + // just update the height here instead of having the `onMove` event do it (that event will not fire!) + if (e.duration === 0) { + layoutScrollWithoutAnimation.value = true + keyboardHeight.value = e.height + } else { + keyboardIsOpening.value = true + } + }, + onMove: e => { + 'worklet' + keyboardHeight.value = e.height + if (e.height > bottomOffset) { + scrollTo(flatListRef, 0, 1e7, false) + } + }, + onEnd: () => { + 'worklet' + keyboardIsOpening.value = false }, }) + const animatedListStyle = useAnimatedStyle(() => ({ + marginBottom: + keyboardHeight.value > bottomOffset ? keyboardHeight.value : bottomOffset, + })) + + // -- Message sending + const onSendMessage = useCallback( + async (text: string) => { + let rt = new RichText({text: text.trimEnd()}, {cleanNewlines: true}) + + // detect facets without resolution first - this is used to see if there's + // any post links in the text that we can embed. We do this first because + // we want to remove the post link from the text, re-trim, then detect facets + rt.detectFacetsWithoutResolution() + + let embed: AppBskyEmbedRecord.Main | undefined + + if (embedUri) { + try { + const post = await getPost({uri: embedUri}) + if (post) { + embed = { + $type: 'app.bsky.embed.record', + record: { + uri: post.uri, + cid: post.cid, + }, + } + + // look for the embed uri in the facets, so we can remove it from the text + const postLinkFacet = rt.facets?.find(facet => { + return facet.features.find(feature => { + if (AppBskyRichtextFacet.isLink(feature)) { + if (isBskyPostUrl(feature.uri)) { + const url = convertBskyAppUrlIfNeeded(feature.uri) + const [_0, _1, _2, rkey] = url.split('/').filter(Boolean) + + // this might have a handle instead of a DID + // so just compare the rkey - not particularly dangerous + return post.uri.endsWith(rkey) + } + } + return false + }) + }) + + if (postLinkFacet) { + const isAtStart = postLinkFacet.index.byteStart === 0 + const isAtEnd = + postLinkFacet.index.byteEnd === rt.unicodeText.graphemeLength + + // remove the post link from the text + if (isAtStart || isAtEnd) { + rt.delete( + postLinkFacet.index.byteStart, + postLinkFacet.index.byteEnd, + ) + } + + rt = new RichText({text: rt.text.trim()}, {cleanNewlines: true}) + } + } + } catch (error) { + logger.error('Failed to get post as quote for DM', {error}) + } + } + + await rt.detectFacets(agent) + + rt = shortenLinks(rt) + rt = stripInvalidMentions(rt) + + if (!hasScrolled) { + setHasScrolled(true) + } + + convoState.sendMessage({ + text: rt.text, + facets: rt.facets, + embed, + }) + }, + [agent, convoState, embedUri, getPost, hasScrolled, setHasScrolled], + ) + + // -- List layout changes (opening emoji keyboard, etc.) + const onListLayout = React.useCallback( + (e: LayoutChangeEvent) => { + layoutHeight.value = e.nativeEvent.layout.height + + if (isWeb || !keyboardIsOpening.value) { + flatListRef.current?.scrollToEnd({ + animated: !layoutScrollWithoutAnimation.value, + }) + layoutScrollWithoutAnimation.value = false + } + }, + [ + flatListRef, + keyboardIsOpening.value, + layoutScrollWithoutAnimation, + layoutHeight, + ], + ) + + const scrollToEndOnPress = React.useCallback(() => { + flatListRef.current?.scrollToOffset({ + offset: prevContentHeight.current, + animated: true, + }) + }, [flatListRef]) + return ( <> {/* Custom scroll provider so that we can use the `onScroll` event in our custom List implementation */} - + + } /> - + + {convoState.status === ConvoStatus.Disabled ? ( + + ) : blocked ? ( + footer + ) : ( + <> + {isConvoActive(convoState) && + !convoState.isFetchingHistory && + convoState.items.length === 0 && } + + + + + )} + + + {newMessagesPill.show && } ) } diff --git a/src/screens/Messages/Conversation/index.tsx b/src/screens/Messages/Conversation/index.tsx index a176d8129d..d14ed160ae 100644 --- a/src/screens/Messages/Conversation/index.tsx +++ b/src/screens/Messages/Conversation/index.tsx @@ -1,69 +1,70 @@ import React, {useCallback} from 'react' -import {TouchableOpacity, View} from 'react-native' -import {KeyboardProvider} from 'react-native-keyboard-controller' -import {KeyboardAvoidingView} from 'react-native-keyboard-controller' -import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {View} from 'react-native' +import {useKeyboardController} from 'react-native-keyboard-controller' import {AppBskyActorDefs, moderateProfile, ModerationOpts} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useFocusEffect, useNavigation} from '@react-navigation/native' +import {useFocusEffect} from '@react-navigation/native' import {NativeStackScreenProps} from '@react-navigation/native-stack' -import {CommonNavigatorParams, NavigationProp} from '#/lib/routes/types' -import {useGate} from '#/lib/statsig/statsig' -import {useProfileShadow} from '#/state/cache/profile-shadow' +import {CommonNavigatorParams} from '#/lib/routes/types' import {useCurrentConvoId} from '#/state/messages/current-convo-id' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useProfileQuery} from '#/state/queries/profile' -import {BACK_HITSLOP} from 'lib/constants' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {isIOS, isNative, isWeb} from 'platform/detection' +import {isWeb} from 'platform/detection' +import {useProfileShadow} from 'state/cache/profile-shadow' import {ConvoProvider, isConvoActive, useConvo} from 'state/messages/convo' import {ConvoStatus} from 'state/messages/convo/types' import {useSetMinimalShellMode} from 'state/shell' -import {PreviewableUserAvatar} from 'view/com/util/UserAvatar' import {CenteredView} from 'view/com/util/Views' import {MessagesList} from '#/screens/Messages/Conversation/MessagesList' import {atoms as a, useBreakpoints, useTheme} from '#/alf' -import {ConvoMenu} from '#/components/dms/ConvoMenu' +import {MessagesListBlockedFooter} from '#/components/dms/MessagesListBlockedFooter' +import {MessagesListHeader} from '#/components/dms/MessagesListHeader' import {Error} from '#/components/Error' -import {ListMaybePlaceholder} from '#/components/Lists' import {Loader} from '#/components/Loader' -import {Text} from '#/components/Typography' -import {ClipClopGate} from '../gate' type Props = NativeStackScreenProps< CommonNavigatorParams, 'MessagesConversation' > export function MessagesConversationScreen({route}: Props) { - const gate = useGate() - const setMinimalShellMode = useSetMinimalShellMode() const {gtMobile} = useBreakpoints() + const setMinimalShellMode = useSetMinimalShellMode() const convoId = route.params.conversation const {setCurrentConvoId} = useCurrentConvoId() + const {setEnabled} = useKeyboardController() + useFocusEffect( + useCallback(() => { + if (isWeb) return + setEnabled(true) + return () => { + setEnabled(false) + } + }, [setEnabled]), + ) + useFocusEffect( useCallback(() => { setCurrentConvoId(convoId) if (isWeb && !gtMobile) { setMinimalShellMode(true) + } else { + setMinimalShellMode(false) } return () => { setCurrentConvoId(undefined) setMinimalShellMode(false) } - }, [convoId, gtMobile, setCurrentConvoId, setMinimalShellMode]), + }, [gtMobile, convoId, setCurrentConvoId, setMinimalShellMode]), ) - if (!gate('dms')) return - return ( - + ) @@ -74,229 +75,129 @@ function Inner() { const convoState = useConvo() const {_} = useLingui() - const [hasInitiallyRendered, setHasInitiallyRendered] = React.useState(false) + const moderationOpts = useModerationOpts() + const {data: recipient} = useProfileQuery({ + did: convoState.recipients?.[0].did, + }) - const {bottom: bottomInset, top: topInset} = useSafeAreaInsets() - const nativeBottomBarHeight = isIOS ? 42 : 60 + // Because we want to give the list a chance to asynchronously scroll to the end before it is visible to the user, + // we use `hasScrolled` to determine when to render. With that said however, there is a chance that the chat will be + // empty. So, we also check for that possible state as well and render once we can. + const [hasScrolled, setHasScrolled] = React.useState(false) + const readyToShow = + hasScrolled || + (isConvoActive(convoState) && + !convoState.isFetchingHistory && + convoState.items.length === 0) - // HACK: Because we need to scroll to the bottom of the list once initial items are added to the list, we also have - // to take into account that scrolling to the end of the list on native will happen asynchronously. This will cause - // a little flicker when the items are first renedered at the top and immediately scrolled to the bottom. to prevent - // this, we will wait until the first render has completed to remove the loading overlay. + // Any time that we re-render the `Initializing` state, we have to reset `hasScrolled` to false. After entering this + // state, we know that we're resetting the list of messages and need to re-scroll to the bottom when they get added. React.useEffect(() => { - if ( - !hasInitiallyRendered && - isConvoActive(convoState) && - !convoState.isFetchingHistory - ) { - setTimeout(() => { - setHasInitiallyRendered(true) - }, 15) + if (convoState.status === ConvoStatus.Initializing) { + setHasScrolled(false) } - }, [convoState, hasInitiallyRendered]) + }, [convoState.status]) if (convoState.status === ConvoStatus.Error) { return ( -
+ convoState.error.retry()} + sideBorders={false} /> ) } - /* - * Any other convo states (atm) are "ready" states - */ - return ( - - - -
- - {isConvoActive(convoState) ? ( - - ) : ( - - )} - {!hasInitiallyRendered && ( - - - - - - )} - - - - - ) -} - -let Header = ({ - profile: initialProfile, -}: { - profile?: AppBskyActorDefs.ProfileViewBasic -}): React.ReactNode => { - const t = useTheme() - const {_} = useLingui() - const {gtTablet} = useBreakpoints() - const navigation = useNavigation() - const moderationOpts = useModerationOpts() - const {data: profile} = useProfileQuery({did: initialProfile?.did}) - - const onPressBack = useCallback(() => { - if (isWeb) { - navigation.replace('Messages') - } else { - navigation.goBack() - } - }, [navigation]) - - return ( - - {!gtTablet ? ( - - + {!readyToShow && } + + {moderationOpts && recipient ? ( + - - ) : ( - - )} - - {profile && moderationOpts ? ( - - ) : ( - <> - - - - + ) : ( + <> + + + )} + {!readyToShow && ( + + + + - - - - )} - + )} + + ) } -Header = React.memo(Header) -function HeaderReady({ - profile: profileUnshadowed, +function InnerReady({ moderationOpts, + recipient: recipientUnshadowed, + hasScrolled, + setHasScrolled, }: { - profile: AppBskyActorDefs.ProfileViewBasic moderationOpts: ModerationOpts + recipient: AppBskyActorDefs.ProfileViewBasic + hasScrolled: boolean + setHasScrolled: React.Dispatch> }) { - const t = useTheme() const convoState = useConvo() - const profile = useProfileShadow(profileUnshadowed) - const moderation = React.useMemo( - () => moderateProfile(profile, moderationOpts), - [profile, moderationOpts], - ) + const recipient = useProfileShadow(recipientUnshadowed) - const isDeletedAccount = profile?.handle === 'missing.invalid' - const displayName = isDeletedAccount - ? 'Deleted Account' - : sanitizeDisplayName( - profile.displayName || profile.handle, - moderation.ui('displayName'), - ) + const moderation = React.useMemo(() => { + return moderateProfile(recipient, moderationOpts) + }, [recipient, moderationOpts]) + + const blockInfo = React.useMemo(() => { + const modui = moderation.ui('profileView') + const blocks = modui.alerts.filter(alert => alert.type === 'blocking') + const listBlocks = blocks.filter(alert => alert.source.type === 'list') + const userBlock = blocks.find(alert => alert.source.type === 'user') + return { + listBlocks, + userBlock, + } + }, [moderation]) return ( <> - - - - - {displayName} - - {!isDeletedAccount && ( - - @{profile.handle} - - )} - - - + {isConvoActive(convoState) && ( - 0} + blockInfo={blockInfo} + /> + } /> )} diff --git a/src/screens/Messages/List/ChatListItem.tsx b/src/screens/Messages/List/ChatListItem.tsx index 0a0f8c5755..c45cc28d7a 100644 --- a/src/screens/Messages/List/ChatListItem.tsx +++ b/src/screens/Messages/List/ChatListItem.tsx @@ -1,36 +1,49 @@ import React, {useCallback, useState} from 'react' -import {View} from 'react-native' +import {GestureResponderEvent, View} from 'react-native' import { AppBskyActorDefs, + AppBskyEmbedRecord, ChatBskyConvoDefs, moderateProfile, ModerationOpts, } from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useNavigation} from '@react-navigation/native' -import {NavigationProp} from '#/lib/routes/types' +import { + postUriToRelativePath, + toBskyAppUrl, + toShortUrl, +} from '#/lib/strings/url-helpers' import {isNative} from '#/platform/detection' import {useProfileShadow} from '#/state/cache/profile-shadow' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useSession} from '#/state/session' +import {useHaptics} from 'lib/haptics' +import {decrementBadgeCount} from 'lib/notifications/notifications' +import {logEvent} from 'lib/statsig/statsig' import {sanitizeDisplayName} from 'lib/strings/display-names' import {TimeElapsed} from '#/view/com/util/TimeElapsed' import {UserAvatar} from '#/view/com/util/UserAvatar' import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' -import {Button} from '#/components/Button' import {ConvoMenu} from '#/components/dms/ConvoMenu' import {Bell2Off_Filled_Corner0_Rounded as BellStroke} from '#/components/icons/Bell2' +import {Link} from '#/components/Link' import {useMenuControl} from '#/components/Menu' +import {PostAlerts} from '#/components/moderation/PostAlerts' import {Text} from '#/components/Typography' -export function ChatListItem({convo}: {convo: ChatBskyConvoDefs.ConvoView}) { +export let ChatListItem = ({ + convo, +}: { + convo: ChatBskyConvoDefs.ConvoView +}): React.ReactNode => { const {currentAccount} = useSession() + const moderationOpts = useModerationOpts() + const otherUser = convo.members.find( member => member.did !== currentAccount?.did, ) - const moderationOpts = useModerationOpts() if (!otherUser || !moderationOpts) { return null @@ -45,6 +58,8 @@ export function ChatListItem({convo}: {convo: ChatBskyConvoDefs.ConvoView}) { ) } +ChatListItem = React.memo(ChatListItem) + function ChatListItemReady({ convo, profile: profileUnshadowed, @@ -64,6 +79,18 @@ function ChatListItemReady({ () => moderateProfile(profile, moderationOpts), [profile, moderationOpts], ) + const playHaptic = useHaptics() + + const blockInfo = React.useMemo(() => { + const modui = moderation.ui('profileView') + const blocks = modui.alerts.filter(alert => alert.type === 'blocking') + const listBlocks = blocks.filter(alert => alert.source.type === 'list') + const userBlock = blocks.find(alert => alert.source.type === 'user') + return { + listBlocks, + userBlock, + } + }, [moderation]) const isDeletedAccount = profile.handle === 'missing.invalid' const displayName = isDeletedAccount @@ -73,21 +100,67 @@ function ChatListItemReady({ moderation.ui('displayName'), ) - let lastMessage = _(msg`No messages yet`) - let lastMessageSentAt: string | null = null - if (ChatBskyConvoDefs.isMessageView(convo.lastMessage)) { - if (convo.lastMessage.sender?.did === currentAccount?.did) { - lastMessage = _(msg`You: ${convo.lastMessage.text}`) - } else { - lastMessage = convo.lastMessage.text - } - lastMessageSentAt = convo.lastMessage.sentAt - } - if (ChatBskyConvoDefs.isDeletedMessageView(convo.lastMessage)) { - lastMessage = _(msg`Message deleted`) - } + const isDimStyle = convo.muted || moderation.blocked || isDeletedAccount + + const {lastMessage, lastMessageSentAt} = React.useMemo(() => { + let lastMessage = _(msg`No messages yet`) + let lastMessageSentAt: string | null = null + + if (ChatBskyConvoDefs.isMessageView(convo.lastMessage)) { + const isFromMe = convo.lastMessage.sender?.did === currentAccount?.did + + if (convo.lastMessage.text) { + if (isFromMe) { + lastMessage = _(msg`You: ${convo.lastMessage.text}`) + } else { + lastMessage = convo.lastMessage.text + } + } else if (convo.lastMessage.embed) { + const defaultEmbeddedContentMessage = _( + msg`(contains embedded content)`, + ) + + if (AppBskyEmbedRecord.isView(convo.lastMessage.embed)) { + const embed = convo.lastMessage.embed + + if (AppBskyEmbedRecord.isViewRecord(embed.record)) { + const record = embed.record + const path = postUriToRelativePath(record.uri, { + handle: record.author.handle, + }) + const href = path ? toBskyAppUrl(path) : undefined + const short = href + ? toShortUrl(href) + : defaultEmbeddedContentMessage + if (isFromMe) { + lastMessage = _(msg`You: ${short}`) + } else { + lastMessage = short + } + } + } else { + if (isFromMe) { + lastMessage = _(msg`You: ${defaultEmbeddedContentMessage}`) + } else { + lastMessage = defaultEmbeddedContentMessage + } + } + } + + lastMessageSentAt = convo.lastMessage.sentAt + } + if (ChatBskyConvoDefs.isDeletedMessageView(convo.lastMessage)) { + lastMessage = isDeletedAccount + ? _(msg`Conversation deleted`) + : _(msg`Message deleted`) + } + + return { + lastMessage, + lastMessageSentAt, + } + }, [_, convo.lastMessage, currentAccount?.did, isDeletedAccount]) - const navigation = useNavigation() const [showActions, setShowActions] = useState(false) const onMouseEnter = useCallback(() => { @@ -103,11 +176,24 @@ function ChatListItemReady({ setShowActions(true) }, []) - const onPress = useCallback(() => { - navigation.push('MessagesConversation', { - conversation: convo.id, - }) - }, [convo.id, navigation]) + const onPress = useCallback( + (e: GestureResponderEvent) => { + decrementBadgeCount(convo.unreadCount) + if (isDeletedAccount) { + e.preventDefault() + menuControl.open() + return false + } else { + logEvent('chat:open', {logContext: 'ChatsList'}) + } + }, + [convo.unreadCount, isDeletedAccount, menuControl], + ) + + const onLongPress = useCallback(() => { + playHaptic() + menuControl.open() + }, [playHaptic, menuControl]) return ( - + + + 0} + hideTrigger={isNative} + blockInfo={blockInfo} + style={[ + a.absolute, + a.h_full, + a.self_end, + a.justify_center, + { + right: a.px_lg.paddingRight, + opacity: !gtMobile || showActions || menuControl.isOpen ? 1 : 0, + }, + ]} + /> ) } diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index 2ae17a1414..2fd9990c7b 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -1,30 +1,38 @@ -import React, {useCallback, useMemo, useState} from 'react' +import React, {useCallback, useEffect, useMemo, useState} from 'react' import {View} from 'react-native' import {ChatBskyConvoDefs} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {useAppState} from '#/lib/hooks/useAppState' import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender' import {MessagesTabNavigatorParams} from '#/lib/routes/types' -import {useGate} from '#/lib/statsig/statsig' import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' -import {useListConvos} from '#/state/queries/messages/list-converations' +import {isNative} from '#/platform/detection' +import {MESSAGE_SCREEN_POLL_INTERVAL} from '#/state/messages/convo/const' +import {useMessagesEventBus} from '#/state/messages/events' +import {useListConvosQuery} from '#/state/queries/messages/list-converations' import {List} from '#/view/com/util/List' import {ViewHeader} from '#/view/com/util/ViewHeader' import {CenteredView} from '#/view/com/util/Views' -import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {DialogControlProps, useDialogControl} from '#/components/Dialog' -import {NewChat} from '#/components/dms/NewChat' +import {NewChat} from '#/components/dms/dialogs/NewChatDialog' +import {MessagesNUX} from '#/components/dms/MessagesNUX' import {useRefreshOnFocus} from '#/components/hooks/useRefreshOnFocus' +import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as Retry} from '#/components/icons/ArrowRotateCounterClockwise' +import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' +import {Message_Stroke2_Corner0_Rounded as Message} from '#/components/icons/Message' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' import {SettingsSliderVertical_Stroke2_Corner0_Rounded as SettingsSlider} from '#/components/icons/SettingsSlider' import {Link} from '#/components/Link' -import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' +import {ListFooter} from '#/components/Lists' +import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' -import {ClipClopGate} from '../gate' import {ChatListItem} from './ChatListItem' type Props = NativeStackScreenProps @@ -48,7 +56,7 @@ export function MessagesScreen({navigation, route}: Props) { // this tab. We should immediately push to the conversation after pressing the notification. // After we push, reset with `setParams` so that this effect will fire next time we press a notification, even if // the conversation is the same as before - React.useEffect(() => { + useEffect(() => { if (pushToConversation) { navigation.navigate('MessagesConversation', { conversation: pushToConversation, @@ -57,18 +65,38 @@ export function MessagesScreen({navigation, route}: Props) { } }, [navigation, pushToConversation]) + // Request the poll interval to be 10s (or whatever the MESSAGE_SCREEN_POLL_INTERVAL is set to in the future) + // but only when the screen is active + const messagesBus = useMessagesEventBus() + const state = useAppState() + const isActive = state === 'active' + useFocusEffect( + useCallback(() => { + if (isActive) { + const unsub = messagesBus.requestPollInterval( + MESSAGE_SCREEN_POLL_INTERVAL, + ) + return () => unsub() + } + }, [messagesBus, isActive]), + ) + const renderButton = useCallback(() => { return ( - + label={_(msg`Chat settings`)} + size="small" + variant="ghost" + color="secondary" + shape="square" + style={[a.justify_center]}> + ) - }, [_, t.atoms.text]) + }, [_, t]) - const initialNumToRender = useInitialNumToRender() + const initialNumToRender = useInitialNumToRender(80) const [isPTRing, setIsPTRing] = useState(false) const { @@ -77,14 +105,13 @@ export function MessagesScreen({navigation, route}: Props) { isFetchingNextPage, hasNextPage, fetchNextPage, + isError, error, refetch, - } = useListConvos({refetchInterval: 15_000}) + } = useListConvosQuery() useRefreshOnFocus(refetch) - const isError = !!error - const conversations = useMemo(() => { if (data?.pages) { return data.pages.flatMap(page => page.convos) @@ -121,51 +148,104 @@ export function MessagesScreen({navigation, route}: Props) { navigation.navigate('MessagesSettings') }, [navigation]) - const gate = useGate() - if (!gate('dms')) return - if (conversations.length < 1) { return ( - {gtMobile ? ( - + + + + {gtMobile ? ( - - ) : ( - - )} - {!isError && } - )} - errorMessage={cleanError(error)} - onRetry={isError ? refetch : undefined} - hideBackButton - /> + + {isLoading ? ( + + + + ) : ( + <> + {isError ? ( + <> + + + + Whoops! + + + {cleanError(error)} + + + + + + ) : ( + <> + + + + Nothing here + + + You have no conversations yet. Start one! + + + + )} + + )} + + + {!isLoading && !isError && ( + + )} ) } return ( + {!gtMobile && ( )} @@ -189,9 +269,12 @@ export function MessagesScreen({navigation, route}: Props) { error={cleanError(error)} onRetry={fetchNextPage} style={{borderColor: 'transparent'}} + hasNextPage={hasNextPage} + showEndMessage={true} + endMessageText={_(msg`No more conversations to show`)} /> } - onEndReachedThreshold={3} + onEndReachedThreshold={isNative ? 1.5 : 0} initialNumToRender={initialNumToRender} windowSize={11} // @ts-ignore our .web version only -sfn @@ -225,6 +308,7 @@ function DesktopHeader({ a.justify_between, a.gap_lg, a.px_lg, + a.pr_md, a.py_sm, a.border_b, t.atoms.border_contrast_low, @@ -232,25 +316,24 @@ function DesktopHeader({ Messages - + {gtTablet && ( - - - ) -} diff --git a/src/screens/Onboarding/StepFinished.tsx b/src/screens/Onboarding/StepFinished.tsx index 3db0cbd2c9..825a0e723d 100644 --- a/src/screens/Onboarding/StepFinished.tsx +++ b/src/screens/Onboarding/StepFinished.tsx @@ -1,33 +1,39 @@ import React from 'react' import {View} from 'react-native' +import {AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api' +import {SavedFeed} from '@atproto/api/dist/client/types/app/bsky/actor/defs' import {TID} from '@atproto/common-web' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' import {useAnalytics} from '#/lib/analytics/analytics' -import {BSKY_APP_ACCOUNT_DID, IS_PROD_SERVICE} from '#/lib/constants' -import {DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED} from '#/lib/constants' -import {logEvent, useGate} from '#/lib/statsig/statsig' -import {logger} from '#/logger' import { - preferencesQueryKey, - useOverwriteSavedFeedsMutation, -} from '#/state/queries/preferences' + BSKY_APP_ACCOUNT_DID, + DISCOVER_SAVED_FEED, + TIMELINE_SAVED_FEED, +} from '#/lib/constants' +import {logEvent} from '#/lib/statsig/statsig' +import {logger} from '#/logger' +import {preferencesQueryKey} from '#/state/queries/preferences' import {RQKEY as profileRQKey} from '#/state/queries/profile' import {useAgent} from '#/state/session' import {useOnboardingDispatch} from '#/state/shell' +import {useProgressGuideControls} from '#/state/shell/progress-guide' import {uploadBlob} from 'lib/api' +import {useRequestNotificationsPermission} from 'lib/notifications/notifications' +import {useSetHasCheckedForStarterPack} from 'state/preferences/used-starter-packs' +import { + useActiveStarterPack, + useSetActiveStarterPack, +} from 'state/shell/starter-pack' import { DescriptionText, OnboardingControls, TitleText, } from '#/screens/Onboarding/Layout' import {Context} from '#/screens/Onboarding/state' -import { - bulkWriteFollows, - sortPrimaryAlgorithmFeeds, -} from '#/screens/Onboarding/util' +import {bulkWriteFollows} from '#/screens/Onboarding/util' import {atoms as a, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {IconCircle} from '#/components/IconCircle' @@ -37,6 +43,7 @@ import {News2_Stroke2_Corner0_Rounded as News} from '#/components/icons/News2' import {Trending2_Stroke2_Corner2_Rounded as Trending} from '#/components/icons/Trending2' import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' +import {TOURS, useSetQueuedTour} from '#/tours' export function StepFinished() { const {_} = useLingui() @@ -45,92 +52,104 @@ export function StepFinished() { const {state, dispatch} = React.useContext(Context) const onboardDispatch = useOnboardingDispatch() const [saving, setSaving] = React.useState(false) - const {mutateAsync: overwriteSavedFeeds} = useOverwriteSavedFeedsMutation() const queryClient = useQueryClient() - const {getAgent} = useAgent() - const gate = useGate() + const agent = useAgent() + const requestNotificationsPermission = useRequestNotificationsPermission() + const activeStarterPack = useActiveStarterPack() + const setActiveStarterPack = useSetActiveStarterPack() + const setHasCheckedForStarterPack = useSetHasCheckedForStarterPack() + const setQueuedTour = useSetQueuedTour() + const {startProgressGuide} = useProgressGuideControls() const finishOnboarding = React.useCallback(async () => { setSaving(true) - // TODO uncomment - const { - interestsStepResults, - suggestedAccountsStepResults, - algoFeedsStepResults, - topicalFeedsStepResults, - profileStepResults, - } = state - const {selectedInterests} = interestsStepResults - const selectedFeeds = [ - ...sortPrimaryAlgorithmFeeds(algoFeedsStepResults.feedUris), - ...topicalFeedsStepResults.feedUris, - ] + let starterPack: AppBskyGraphDefs.StarterPackView | undefined + let listItems: AppBskyGraphDefs.ListItemView[] | undefined + + if (activeStarterPack?.uri) { + try { + const spRes = await agent.app.bsky.graph.getStarterPack({ + starterPack: activeStarterPack.uri, + }) + starterPack = spRes.data.starterPack + + if (starterPack.list) { + const listRes = await agent.app.bsky.graph.getList({ + list: starterPack.list.uri, + limit: 50, + }) + listItems = listRes.data.items + } + } catch (e) { + logger.error('Failed to fetch starter pack', {safeMessage: e}) + // don't tell the user, just get them through onboarding. + } + } try { + const {interestsStepResults, profileStepResults} = state + const {selectedInterests} = interestsStepResults + await Promise.all([ - bulkWriteFollows( - getAgent, - suggestedAccountsStepResults.accountDids.concat(BSKY_APP_ACCOUNT_DID), - ), - // these must be serial + bulkWriteFollows(agent, [ + BSKY_APP_ACCOUNT_DID, + ...(listItems?.map(i => i.subject.did) ?? []), + ]), (async () => { - await getAgent().setInterestsPref({tags: selectedInterests}) + // Interests need to get saved first, then we can write the feeds to prefs + await agent.setInterestsPref({tags: selectedInterests}) - /* - * In the reduced onboading experiment, we'll rely on the default - * feeds set in `createAgentAndCreateAccount`. No feeds will be - * selected in onboarding and therefore we don't need to run this - * code (which would overwrite the other feeds already set). - */ - if (!gate('reduced_onboarding_and_home_algo')) { - const otherFeeds = selectedFeeds.length - ? selectedFeeds.map(f => ({ - type: 'feed', - value: f, - pinned: true, - id: TID.nextStr(), - })) - : [] + // Default feeds that every user should have pinned when landing in the app + const feedsToSave: SavedFeed[] = [ + { + ...DISCOVER_SAVED_FEED, + id: TID.nextStr(), + }, + { + ...TIMELINE_SAVED_FEED, + id: TID.nextStr(), + }, + ] - /* - * If no selected feeds and we're in prod, add the discover feed - * (mimics old behavior) - */ - if ( - IS_PROD_SERVICE(getAgent().service.toString()) && - !otherFeeds.length - ) { - otherFeeds.push({ - ...DISCOVER_SAVED_FEED, + // Any starter pack feeds will be pinned _after_ the defaults + if (starterPack && starterPack.feeds?.length) { + feedsToSave.push( + ...starterPack.feeds.map(f => ({ + type: 'feed', + value: f.uri, pinned: true, id: TID.nextStr(), - }) - } - - await overwriteSavedFeeds([ - { - ...TIMELINE_SAVED_FEED, - pinned: true, - id: TID.nextStr(), - }, - ...otherFeeds, - ]) + })), + ) } + + await agent.overwriteSavedFeeds(feedsToSave) })(), - (async () => { - if (!gate('reduced_onboarding_and_home_algo')) return - const {imageUri, imageMime} = profileStepResults if (imageUri && imageMime) { - const blobPromise = uploadBlob(getAgent(), imageUri, imageMime) - await getAgent().upsertProfile(async existing => { + const blobPromise = uploadBlob(agent, imageUri, imageMime) + await agent.upsertProfile(async existing => { existing = existing ?? {} const res = await blobPromise if (res.data.blob) { existing.avatar = res.data.blob } + + if (starterPack) { + existing.joinedViaStarterPack = { + uri: starterPack.uri, + cid: starterPack.cid, + } + } + + existing.displayName = '' + // HACKFIX + // creating a bunch of identical profile objects is breaking the relay + // tossing this unspecced field onto it to reduce the size of the problem + // -prf + existing.createdAt = new Date().toISOString() return existing }) } @@ -143,6 +162,7 @@ export function StepFinished() { : 'default', }) })(), + requestNotificationsPermission('AfterOnboarding'), ]) } catch (e: any) { logger.info(`onboarding: bulk save failed`) @@ -156,7 +176,7 @@ export function StepFinished() { queryKey: preferencesQueryKey, }), queryClient.invalidateQueries({ - queryKey: profileRQKey(getAgent().session?.did ?? ''), + queryKey: profileRQKey(agent.session?.did ?? ''), }), ]).catch(e => { logger.error(e) @@ -164,21 +184,44 @@ export function StepFinished() { }) setSaving(false) + setActiveStarterPack(undefined) + setHasCheckedForStarterPack(true) + setQueuedTour(TOURS.HOME) + startProgressGuide('like-10-and-follow-7') dispatch({type: 'finish'}) onboardDispatch({type: 'finish'}) track('OnboardingV2:StepFinished:End') track('OnboardingV2:Complete') - logEvent('onboarding:finished:nextPressed', {}) + logEvent('onboarding:finished:nextPressed', { + usedStarterPack: Boolean(starterPack), + starterPackName: AppBskyGraphStarterpack.isRecord(starterPack?.record) + ? starterPack.record.name + : undefined, + starterPackCreator: starterPack?.creator.did, + starterPackUri: starterPack?.uri, + profilesFollowed: listItems?.length ?? 0, + feedsPinned: starterPack?.feeds?.length ?? 0, + }) + if (starterPack && listItems?.length) { + logEvent('starterPack:followAll', { + logContext: 'Onboarding', + starterPack: starterPack.uri, + count: listItems?.length, + }) + } }, [ - state, + queryClient, + agent, dispatch, onboardDispatch, - setSaving, - overwriteSavedFeeds, track, - getAgent, - gate, - queryClient, + activeStarterPack, + state, + requestNotificationsPermission, + setActiveStarterPack, + setHasCheckedForStarterPack, + setQueuedTour, + startProgressGuide, ]) React.useEffect(() => { diff --git a/src/screens/Onboarding/StepFollowingFeed.tsx b/src/screens/Onboarding/StepFollowingFeed.tsx deleted file mode 100644 index a1c7299f02..0000000000 --- a/src/screens/Onboarding/StepFollowingFeed.tsx +++ /dev/null @@ -1,161 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {useAnalytics} from '#/lib/analytics/analytics' -import {logEvent} from '#/lib/statsig/statsig' -import { - usePreferencesQuery, - useSetFeedViewPreferencesMutation, -} from 'state/queries/preferences' -import { - DescriptionText, - OnboardingControls, - TitleText, -} from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' -import {atoms as a} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import {Divider} from '#/components/Divider' -import * as Toggle from '#/components/forms/Toggle' -import {IconCircle} from '#/components/IconCircle' -import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' -import {FilterTimeline_Stroke2_Corner0_Rounded as FilterTimeline} from '#/components/icons/FilterTimeline' -import {Text} from '#/components/Typography' - -export function StepFollowingFeed() { - const {_} = useLingui() - const {track} = useAnalytics() - const {dispatch} = React.useContext(Context) - - const {data: preferences} = usePreferencesQuery() - const {mutate: setFeedViewPref, variables} = - useSetFeedViewPreferencesMutation() - - const showReplies = !( - variables?.hideReplies ?? preferences?.feedViewPrefs.hideReplies - ) - const showReposts = !( - variables?.hideReposts ?? preferences?.feedViewPrefs.hideReposts - ) - const showQuotes = !( - variables?.hideQuotePosts ?? preferences?.feedViewPrefs.hideQuotePosts - ) - - const onContinue = React.useCallback(() => { - dispatch({type: 'next'}) - track('OnboardingV2:StepFollowingFeed:End') - logEvent('onboarding:followingFeed:nextPressed', {}) - }, [track, dispatch]) - - React.useEffect(() => { - track('OnboardingV2:StepFollowingFeed:Start') - }, [track]) - - return ( - // Hack for now to move the image container up - - - - - Your default feed is "Following" - - - It shows posts from the people you follow as they happen. - - - - { - setFeedViewPref({ - hideReplies: showReplies, - }) - }}> - - - Show replies in Following - - - - - - { - setFeedViewPref({ - hideReposts: showReposts, - }) - }}> - - - Show reposts in Following - - - - - - { - setFeedViewPref({ - hideQuotePosts: showQuotes, - }) - }}> - - - Show quotes in Following - - - - - - - - You can change these settings later. - - - - - - - ) -} diff --git a/src/screens/Onboarding/StepInterests/InterestButton.tsx b/src/screens/Onboarding/StepInterests/InterestButton.tsx index cc692dafd8..24b34041e0 100644 --- a/src/screens/Onboarding/StepInterests/InterestButton.tsx +++ b/src/screens/Onboarding/StepInterests/InterestButton.tsx @@ -1,16 +1,15 @@ import React from 'react' -import {View, ViewStyle, TextStyle} from 'react-native' +import {TextStyle, View, ViewStyle} from 'react-native' -import {useTheme, atoms as a, native} from '#/alf' +import {capitalize} from '#/lib/strings/capitalize' +import {useInterestsDisplayNames} from '#/screens/Onboarding/state' +import {atoms as a, native, useTheme} from '#/alf' import * as Toggle from '#/components/forms/Toggle' import {Text} from '#/components/Typography' -import {capitalize} from '#/lib/strings/capitalize' - -import {Context} from '#/screens/Onboarding/state' export function InterestButton({interest}: {interest: string}) { const t = useTheme() - const {interestsDisplayNames} = React.useContext(Context) + const interestsDisplayNames = useInterestsDisplayNames() const ctx = Toggle.useItemContext() const styles = React.useMemo(() => { diff --git a/src/screens/Onboarding/StepInterests/index.tsx b/src/screens/Onboarding/StepInterests/index.tsx index 2711f6779c..ca29b5db9b 100644 --- a/src/screens/Onboarding/StepInterests/index.tsx +++ b/src/screens/Onboarding/StepInterests/index.tsx @@ -5,18 +5,23 @@ import {useLingui} from '@lingui/react' import {useQuery} from '@tanstack/react-query' import {useAnalytics} from '#/lib/analytics/analytics' -import {logEvent, useGate} from '#/lib/statsig/statsig' +import {logEvent} from '#/lib/statsig/statsig' +import {useGate} from '#/lib/statsig/statsig' import {capitalize} from '#/lib/strings/capitalize' import {logger} from '#/logger' +import {isWeb} from '#/platform/detection' import {useAgent} from '#/state/session' import {useOnboardingDispatch} from '#/state/shell' -import {useRequestNotificationsPermission} from 'lib/notifications/notifications' import { DescriptionText, OnboardingControls, TitleText, } from '#/screens/Onboarding/Layout' -import {ApiResponseMap, Context} from '#/screens/Onboarding/state' +import { + ApiResponseMap, + Context, + useInterestsDisplayNames, +} from '#/screens/Onboarding/state' import {InterestButton} from '#/screens/Onboarding/StepInterests/InterestButton' import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' @@ -24,32 +29,37 @@ import * as Toggle from '#/components/forms/Toggle' import {IconCircle} from '#/components/IconCircle' import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as ArrowRotateCounterClockwise} from '#/components/icons/ArrowRotateCounterClockwise' import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' +import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' import {EmojiSad_Stroke2_Corner0_Rounded as EmojiSad} from '#/components/icons/Emoji' import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag' import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' +const PROMPT_HEIGHT = isWeb ? 42 : 36 +// matches the padding of the OnboardingControls.Portal +const PROMPT_OFFSET = isWeb ? a.pb_2xl.paddingBottom : a.pb_lg.paddingBottom +const MIN_INTERESTS = 3 + export function StepInterests() { const {_} = useLingui() const t = useTheme() const {gtMobile} = useBreakpoints() const {track} = useAnalytics() const gate = useGate() - const requestNotificationsPermission = useRequestNotificationsPermission() + const interestsDisplayNames = useInterestsDisplayNames() - const {state, dispatch, interestsDisplayNames} = React.useContext(Context) + const {state, dispatch} = React.useContext(Context) const [saving, setSaving] = React.useState(false) const [interests, setInterests] = React.useState( state.interestsStepResults.selectedInterests.map(i => i), ) const onboardDispatch = useOnboardingDispatch() - const {getAgent} = useAgent() + const agent = useAgent() const {isLoading, isError, error, data, refetch, isFetching} = useQuery({ queryKey: ['interests'], queryFn: async () => { try { - const {data} = - await getAgent().app.bsky.unspecced.getTaggedSuggestions() + const {data} = await agent.app.bsky.unspecced.getTaggedSuggestions() return data.suggestions.reduce( (agg, s) => { const {tag, subject, subjectType} = s @@ -133,11 +143,10 @@ export function StepInterests() { track('OnboardingV2:StepInterests:Start') }, [track]) - React.useEffect(() => { - if (!gate('reduced_onboarding_and_home_algo')) { - requestNotificationsPermission('StartOnboarding') - } - }, [gate, requestNotificationsPermission]) + const isMinimumInterestsEnabled = gate('onboarding_minimum_interests') + const meetsMinimumRequirement = isMinimumInterestsEnabled + ? interests.length >= MIN_INTERESTS + : true const title = isError ? ( Oh no! Something went wrong. @@ -176,8 +185,13 @@ export function StepInterests() { {title} {description} + {isMinimumInterestsEnabled && ( + + Choose 3 or more: + + )} - + {isLoading ? ( ) : isError || !data ? ( @@ -253,7 +267,7 @@ export function StepInterests() { ) : ( )} + + {!meetsMinimumRequirement && ( + + + + + + Choose at least {MIN_INTERESTS - interests.length} more + + + + + )} ) diff --git a/src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx b/src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx deleted file mode 100644 index 7563bece10..0000000000 --- a/src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx +++ /dev/null @@ -1,131 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {UseMutateFunction} from '@tanstack/react-query' - -import {logger} from '#/logger' -import {isIOS} from '#/platform/detection' -import {usePreferencesQuery} from '#/state/queries/preferences' -import * as Toast from '#/view/com/util/Toast' -import {atoms as a, useTheme} from '#/alf' -import * as Toggle from '#/components/forms/Toggle' -import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' -import * as Prompt from '#/components/Prompt' -import {Text} from '#/components/Typography' - -function Card({children}: React.PropsWithChildren<{}>) { - const t = useTheme() - return ( - - {children} - - ) -} - -export function AdultContentEnabledPref({ - mutate, - variables, -}: { - mutate: UseMutateFunction - variables: {enabled: boolean} | undefined -}) { - const {_} = useLingui() - const t = useTheme() - const prompt = Prompt.usePromptControl() - - // Reuse logic here form ContentFilteringSettings.tsx - const {data: preferences} = usePreferencesQuery() - - const onToggleAdultContent = React.useCallback(async () => { - if (isIOS) { - prompt.open() - return - } - - try { - mutate({ - enabled: !( - variables?.enabled ?? preferences?.moderationPrefs.adultContentEnabled - ), - }) - } catch (e) { - Toast.show( - _(msg`There was an issue syncing your preferences with the server`), - ) - logger.error('Failed to update preferences with server', {error: e}) - } - }, [variables, preferences, mutate, _, prompt]) - - if (!preferences) return null - - return ( - <> - {preferences.userAge && preferences.userAge >= 18 ? ( - - - - - Enable Adult Content - - - - - - ) : ( - - - - You must be 18 years or older to enable adult content - - - )} - - - - Adult Content - - - - Due to Apple policies, adult content can only be enabled on the web - after completing sign up. - - - - prompt.close()} cta={_(msg`OK`)} /> - - - - ) -} diff --git a/src/screens/Onboarding/StepModeration/ModerationOption.tsx b/src/screens/Onboarding/StepModeration/ModerationOption.tsx deleted file mode 100644 index d6334e6bda..0000000000 --- a/src/screens/Onboarding/StepModeration/ModerationOption.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {InterpretedLabelValueDefinition, LabelPreference} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {useGlobalLabelStrings} from '#/lib/moderation/useGlobalLabelStrings' -import { - usePreferencesQuery, - usePreferencesSetContentLabelMutation, -} from '#/state/queries/preferences' -import {atoms as a, useTheme} from '#/alf' -import * as ToggleButton from '#/components/forms/ToggleButton' -import {Text} from '#/components/Typography' - -export function ModerationOption({ - labelValueDefinition, - disabled, -}: { - labelValueDefinition: InterpretedLabelValueDefinition - disabled?: boolean -}) { - const {_} = useLingui() - const t = useTheme() - const {data: preferences} = usePreferencesQuery() - const {mutate, variables} = usePreferencesSetContentLabelMutation() - const label = labelValueDefinition.identifier - const visibility = - variables?.visibility ?? preferences?.moderationPrefs.labels?.[label] - - const allLabelStrings = useGlobalLabelStrings() - const labelStrings = - labelValueDefinition.identifier in allLabelStrings - ? allLabelStrings[labelValueDefinition.identifier] - : { - name: labelValueDefinition.identifier, - description: `Labeled "${labelValueDefinition.identifier}"`, - } - - const onChange = React.useCallback( - (vis: string[]) => { - mutate({ - label, - visibility: vis[0] as LabelPreference, - labelerDid: undefined, - }) - }, - [mutate, label], - ) - - const labels = { - hide: _(msg`Hide`), - warn: _(msg`Warn`), - show: _(msg`Show`), - } - - return ( - - - {labelStrings.name} - - {labelStrings.description} - - - - {disabled ? ( - - Hide - - ) : ( - - - {labels.show} - - - {labels.warn} - - - {labels.hide} - - - )} - - - ) -} diff --git a/src/screens/Onboarding/StepModeration/index.tsx b/src/screens/Onboarding/StepModeration/index.tsx deleted file mode 100644 index d494f48dd1..0000000000 --- a/src/screens/Onboarding/StepModeration/index.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {LABELS} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {useAnalytics} from '#/lib/analytics/analytics' -import {logEvent} from '#/lib/statsig/statsig' -import {usePreferencesQuery} from '#/state/queries/preferences' -import {usePreferencesSetAdultContentMutation} from 'state/queries/preferences' -import { - DescriptionText, - OnboardingControls, - TitleText, -} from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' -import {AdultContentEnabledPref} from '#/screens/Onboarding/StepModeration/AdultContentEnabledPref' -import {ModerationOption} from '#/screens/Onboarding/StepModeration/ModerationOption' -import {atoms as a} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import {IconCircle} from '#/components/IconCircle' -import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' -import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash' -import {Loader} from '#/components/Loader' - -export function StepModeration() { - const {_} = useLingui() - const {track} = useAnalytics() - const {state, dispatch} = React.useContext(Context) - const {data: preferences} = usePreferencesQuery() - const {mutate, variables} = usePreferencesSetAdultContentMutation() - - // We need to know if the screen is mounted so we know if we want to run entering animations - // https://github.com/software-mansion/react-native-reanimated/discussions/2513 - const isMounted = React.useRef(false) - React.useLayoutEffect(() => { - isMounted.current = true - }, []) - - const adultContentEnabled = !!( - (variables && variables.enabled) || - (!variables && preferences?.moderationPrefs.adultContentEnabled) - ) - - const onContinue = React.useCallback(() => { - dispatch({type: 'next'}) - track('OnboardingV2:StepModeration:End') - logEvent('onboarding:moderation:nextPressed', {}) - }, [track, dispatch]) - - React.useEffect(() => { - track('OnboardingV2:StepModeration:Start') - }, [track]) - - return ( - - - - - You're in control - - - - Select what you want to see (or not see), and we’ll handle the rest. - - - - {!preferences ? ( - - - - ) : ( - <> - - - - - - - - - - )} - - - - - - ) -} diff --git a/src/screens/Onboarding/StepProfile/PlaceholderCanvas.tsx b/src/screens/Onboarding/StepProfile/PlaceholderCanvas.tsx index 29ba39a0b4..d1d1af6d9f 100644 --- a/src/screens/Onboarding/StepProfile/PlaceholderCanvas.tsx +++ b/src/screens/Onboarding/StepProfile/PlaceholderCanvas.tsx @@ -5,7 +5,7 @@ import ViewShot from 'react-native-view-shot' import {useAvatar} from '#/screens/Onboarding/StepProfile/index' import {atoms as a} from '#/alf' -const SIZE_MULTIPLIER = 1.5 +const SIZE_MULTIPLIER = 5 export interface PlaceholderCanvasRef { capture: () => Promise diff --git a/src/screens/Onboarding/StepProfile/index.tsx b/src/screens/Onboarding/StepProfile/index.tsx index 93d8a40203..5304aa5031 100644 --- a/src/screens/Onboarding/StepProfile/index.tsx +++ b/src/screens/Onboarding/StepProfile/index.tsx @@ -92,11 +92,7 @@ export function StepProfile() { }, [track]) React.useEffect(() => { - // We have an experiment running for redueced onboarding, where this screen shows up as the first in onboarding. - // We only want to request permissions when that gate is actually active to prevent pollution - if (gate('reduced_onboarding_and_home_algo')) { - requestNotificationsPermission('StartOnboarding') - } + requestNotificationsPermission('StartOnboarding') }, [gate, requestNotificationsPermission]) const openPicker = React.useCallback( @@ -106,6 +102,7 @@ export function StepProfile() { mediaTypes: MediaTypeOptions.Images, quality: 1, ...opts, + legacy: true, }) return (response.assets ?? []) @@ -184,8 +181,8 @@ export function StepProfile() { image = await openCropper({ mediaType: 'photo', cropperCircleOverlay: true, - height: image.height, - width: image.width, + height: 1000, + width: 1000, path: image.path, }) } diff --git a/src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx b/src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx deleted file mode 100644 index f0ba36e39f..0000000000 --- a/src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx +++ /dev/null @@ -1,188 +0,0 @@ -import React from 'react' -import {View, ViewStyle} from 'react-native' -import {AppBskyActorDefs, moderateProfile} from '@atproto/api' - -import {useModerationOpts} from '#/state/preferences/moderation-opts' -import {UserAvatar} from '#/view/com/util/UserAvatar' -import {atoms as a, flatten, useTheme} from '#/alf' -import {useItemContext} from '#/components/forms/Toggle' -import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' -import {RichText} from '#/components/RichText' -import {Text} from '#/components/Typography' - -export function SuggestedAccountCard({ - profile, - moderationOpts, -}: { - profile: AppBskyActorDefs.ProfileViewDetailed - moderationOpts: ReturnType -}) { - const t = useTheme() - const ctx = useItemContext() - const moderation = moderateProfile(profile, moderationOpts!) - - const styles = React.useMemo(() => { - const light = t.name === 'light' - const base: ViewStyle[] = [t.atoms.bg_contrast_50] - const hover: ViewStyle[] = [t.atoms.bg_contrast_25] - const selected: ViewStyle[] = [ - { - backgroundColor: light ? t.palette.primary_50 : t.palette.primary_950, - }, - ] - const selectedHover: ViewStyle[] = [ - { - backgroundColor: light ? t.palette.primary_25 : t.palette.primary_975, - }, - ] - const checkboxBase: ViewStyle[] = [t.atoms.bg] - const checkboxSelected: ViewStyle[] = [ - { - backgroundColor: t.palette.primary_500, - }, - ] - const avatarBase: ViewStyle[] = [t.atoms.bg_contrast_100] - const avatarSelected: ViewStyle[] = [ - { - backgroundColor: light ? t.palette.primary_100 : t.palette.primary_900, - }, - ] - - return { - base, - hover: flatten(hover), - selected: flatten(selected), - selectedHover: flatten(selectedHover), - checkboxBase: flatten(checkboxBase), - checkboxSelected: flatten(checkboxSelected), - avatarBase: flatten(avatarBase), - avatarSelected: flatten(avatarSelected), - } - }, [t]) - - return ( - - - - - - - - - {profile.displayName} - - {profile.handle} - - - - - {ctx.selected && } - - - - {profile.description && ( - <> - - - - - )} - - ) -} - -export function SuggestedAccountCardPlaceholder() { - const t = useTheme() - return ( - - - - - - - - - - ) -} diff --git a/src/screens/Onboarding/StepSuggestedAccounts/index.tsx b/src/screens/Onboarding/StepSuggestedAccounts/index.tsx deleted file mode 100644 index 774f2d3b01..0000000000 --- a/src/screens/Onboarding/StepSuggestedAccounts/index.tsx +++ /dev/null @@ -1,210 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {AppBskyActorDefs} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {useAnalytics} from '#/lib/analytics/analytics' -import {logEvent} from '#/lib/statsig/statsig' -import {capitalize} from '#/lib/strings/capitalize' -import {useModerationOpts} from '#/state/preferences/moderation-opts' -import {useProfilesQuery} from '#/state/queries/profile' -import { - DescriptionText, - OnboardingControls, - TitleText, -} from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' -import { - SuggestedAccountCard, - SuggestedAccountCardPlaceholder, -} from '#/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard' -import {aggregateInterestItems} from '#/screens/Onboarding/util' -import {atoms as a, useBreakpoints} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import * as Toggle from '#/components/forms/Toggle' -import {IconCircle} from '#/components/IconCircle' -import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' -import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' -import {Loader} from '#/components/Loader' -import {Text} from '#/components/Typography' - -export function Inner({ - profiles, - onSelect, - moderationOpts, -}: { - profiles: AppBskyActorDefs.ProfileViewDetailed[] - onSelect: (dids: string[]) => void - moderationOpts: ReturnType -}) { - const {_} = useLingui() - const [dids, setDids] = React.useState(profiles.map(p => p.did)) - - React.useEffect(() => { - onSelect(dids) - }, [dids, onSelect]) - - return ( - - - {profiles.map(profile => ( - - - - ))} - - - ) -} - -export function StepSuggestedAccounts() { - const {_} = useLingui() - const {gtMobile} = useBreakpoints() - const {track} = useAnalytics() - const {state, dispatch, interestsDisplayNames} = React.useContext(Context) - const suggestedDids = React.useMemo(() => { - return aggregateInterestItems( - state.interestsStepResults.selectedInterests, - state.interestsStepResults.apiResponse.suggestedAccountDids, - state.interestsStepResults.apiResponse.suggestedAccountDids.default || [], - ) - }, [state.interestsStepResults]) - const moderationOpts = useModerationOpts() - const { - isLoading: isProfilesLoading, - isError, - data, - error, - } = useProfilesQuery({ - handles: suggestedDids, - }) - const [dids, setDids] = React.useState([]) - const [saving, setSaving] = React.useState(false) - - const interestsText = React.useMemo(() => { - const i = state.interestsStepResults.selectedInterests.map( - i => interestsDisplayNames[i] || capitalize(i), - ) - return i.join(', ') - }, [state.interestsStepResults.selectedInterests, interestsDisplayNames]) - - const handleContinue = React.useCallback(async () => { - setSaving(true) - - if (dids.length) { - dispatch({type: 'setSuggestedAccountsStepResults', accountDids: dids}) - } - - setSaving(false) - dispatch({type: 'next'}) - track('OnboardingV2:StepSuggestedAccounts:End', { - selectedAccountsLength: dids.length, - }) - logEvent('onboarding:suggestedAccounts:nextPressed', { - selectedAccountsLength: dids.length, - skipped: false, - }) - }, [dids, setSaving, dispatch, track]) - - const handleSkip = React.useCallback(() => { - // if a user comes back and clicks skip, erase follows - dispatch({type: 'setSuggestedAccountsStepResults', accountDids: []}) - dispatch({type: 'next'}) - logEvent('onboarding:suggestedAccounts:nextPressed', { - selectedAccountsLength: 0, - skipped: true, - }) - }, [dispatch]) - - const isLoading = isProfilesLoading && moderationOpts - - React.useEffect(() => { - track('OnboardingV2:StepSuggestedAccounts:Start') - }, [track]) - - return ( - - - - - Here are some accounts for you to follow - - - {state.interestsStepResults.selectedInterests.length ? ( - Based on your interest in {interestsText} - ) : ( - These are popular accounts you might like: - )} - - - - {isLoading ? ( - - {Array(10) - .fill(0) - .map((_, i) => ( - - ))} - - ) : isError || !data ? ( - {error?.toString()} - ) : ( - - )} - - - - - - - - - - ) -} diff --git a/src/screens/Onboarding/StepTopicalFeeds.tsx b/src/screens/Onboarding/StepTopicalFeeds.tsx deleted file mode 100644 index bfc9e91d1b..0000000000 --- a/src/screens/Onboarding/StepTopicalFeeds.tsx +++ /dev/null @@ -1,125 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {useAnalytics} from '#/lib/analytics/analytics' -import {logEvent} from '#/lib/statsig/statsig' -import {capitalize} from '#/lib/strings/capitalize' -import {IS_TEST_USER} from 'lib/constants' -import {useSession} from 'state/session' -import { - DescriptionText, - OnboardingControls, - TitleText, -} from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' -import {FeedCard} from '#/screens/Onboarding/StepAlgoFeeds/FeedCard' -import {aggregateInterestItems} from '#/screens/Onboarding/util' -import {atoms as a} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import * as Toggle from '#/components/forms/Toggle' -import {IconCircle} from '#/components/IconCircle' -import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' -import {ListMagnifyingGlass_Stroke2_Corner0_Rounded as ListMagnifyingGlass} from '#/components/icons/ListMagnifyingGlass' -import {Loader} from '#/components/Loader' - -export function StepTopicalFeeds() { - const {_} = useLingui() - const {track} = useAnalytics() - const {currentAccount} = useSession() - const {state, dispatch, interestsDisplayNames} = React.useContext(Context) - const [selectedFeedUris, setSelectedFeedUris] = React.useState([]) - const [saving, setSaving] = React.useState(false) - const suggestedFeedUris = React.useMemo(() => { - if (IS_TEST_USER(currentAccount?.handle)) return [] - return aggregateInterestItems( - state.interestsStepResults.selectedInterests, - state.interestsStepResults.apiResponse.suggestedFeedUris, - state.interestsStepResults.apiResponse.suggestedFeedUris.default || [], - ).slice(0, 10) - }, [ - currentAccount?.handle, - state.interestsStepResults.apiResponse.suggestedFeedUris, - state.interestsStepResults.selectedInterests, - ]) - - const interestsText = React.useMemo(() => { - const i = state.interestsStepResults.selectedInterests.map( - i => interestsDisplayNames[i] || capitalize(i), - ) - return i.join(', ') - }, [state.interestsStepResults.selectedInterests, interestsDisplayNames]) - - const saveFeeds = React.useCallback(async () => { - setSaving(true) - - dispatch({type: 'setTopicalFeedsStepResults', feedUris: selectedFeedUris}) - - setSaving(false) - dispatch({type: 'next'}) - track('OnboardingV2:StepTopicalFeeds:End', { - selectedFeeds: selectedFeedUris, - selectedFeedsLength: selectedFeedUris.length, - }) - logEvent('onboarding:topicalFeeds:nextPressed', { - selectedFeeds: selectedFeedUris, - selectedFeedsLength: selectedFeedUris.length, - }) - }, [selectedFeedUris, dispatch, track]) - - React.useEffect(() => { - track('OnboardingV2:StepTopicalFeeds:Start') - }, [track]) - - return ( - - - - - Feeds can be topical as well! - - - {state.interestsStepResults.selectedInterests.length ? ( - - Here are some topical feeds based on your interests: {interestsText} - . You can choose to follow as many as you like. - - ) : ( - - Here are some popular topical feeds. You can choose to follow as - many as you like. - - )} - - - - - - {suggestedFeedUris.map(uri => ( - - ))} - - - - - - - - - ) -} diff --git a/src/screens/Onboarding/index.tsx b/src/screens/Onboarding/index.tsx index 5af7a12dc7..a5c423ca19 100644 --- a/src/screens/Onboarding/index.tsx +++ b/src/screens/Onboarding/index.tsx @@ -2,33 +2,18 @@ import React from 'react' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useGate} from '#/lib/statsig/statsig' import {Layout, OnboardingControls} from '#/screens/Onboarding/Layout' -import { - Context, - initialState, - initialStateReduced, - reducer, - reducerReduced, -} from '#/screens/Onboarding/state' -import {StepAlgoFeeds} from '#/screens/Onboarding/StepAlgoFeeds' +import {Context, initialState, reducer} from '#/screens/Onboarding/state' import {StepFinished} from '#/screens/Onboarding/StepFinished' -import {StepFollowingFeed} from '#/screens/Onboarding/StepFollowingFeed' import {StepInterests} from '#/screens/Onboarding/StepInterests' -import {StepModeration} from '#/screens/Onboarding/StepModeration' import {StepProfile} from '#/screens/Onboarding/StepProfile' -import {StepSuggestedAccounts} from '#/screens/Onboarding/StepSuggestedAccounts' -import {StepTopicalFeeds} from '#/screens/Onboarding/StepTopicalFeeds' import {Portal} from '#/components/Portal' export function Onboarding() { const {_} = useLingui() - const gate = useGate() - const isReducedOnboardingEnabled = gate('reduced_onboarding_and_home_algo') - const [state, dispatch] = React.useReducer( - isReducedOnboardingEnabled ? reducerReduced : reducer, - isReducedOnboardingEnabled ? {...initialStateReduced} : {...initialState}, - ) + const [state, dispatch] = React.useReducer(reducer, { + ...initialState, + }) const interestsDisplayNames = React.useMemo(() => { return { @@ -68,13 +53,6 @@ export function Onboarding() { {state.activeStep === 'profile' && } {state.activeStep === 'interests' && } - {state.activeStep === 'suggestedAccounts' && ( - - )} - {state.activeStep === 'followingFeed' && } - {state.activeStep === 'algoFeeds' && } - {state.activeStep === 'topicalFeeds' && } - {state.activeStep === 'moderation' && } {state.activeStep === 'finished' && } diff --git a/src/screens/Onboarding/state.ts b/src/screens/Onboarding/state.ts index 50d815674c..c41db5c3b7 100644 --- a/src/screens/Onboarding/state.ts +++ b/src/screens/Onboarding/state.ts @@ -1,4 +1,6 @@ import React from 'react' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {logger} from '#/logger' import {AvatarColor, Emoji} from '#/screens/Onboarding/StepProfile/types' @@ -6,31 +8,13 @@ import {AvatarColor, Emoji} from '#/screens/Onboarding/StepProfile/types' export type OnboardingState = { hasPrev: boolean totalSteps: number - activeStep: - | 'profile' - | 'interests' - | 'suggestedAccounts' - | 'followingFeed' - | 'algoFeeds' - | 'topicalFeeds' - | 'moderation' - | 'profile' - | 'finished' + activeStep: 'profile' | 'interests' | 'finished' activeStepIndex: number interestsStepResults: { selectedInterests: string[] apiResponse: ApiResponseMap } - suggestedAccountsStepResults: { - accountDids: string[] - } - algoFeedsStepResults: { - feedUris: string[] - } - topicalFeedsStepResults: { - feedUris: string[] - } profileStepResults: { isCreatedAvatar: boolean image?: { @@ -64,18 +48,6 @@ export type OnboardingAction = selectedInterests: string[] apiResponse: ApiResponseMap } - | { - type: 'setSuggestedAccountsStepResults' - accountDids: string[] - } - | { - type: 'setAlgoFeedsStepResults' - feedUris: string[] - } - | { - type: 'setTopicalFeedsStepResults' - feedUris: string[] - } | { type: 'setProfileStepResults' isCreatedAvatar: boolean @@ -98,183 +70,40 @@ export type ApiResponseMap = { } } +export function useInterestsDisplayNames() { + const {_} = useLingui() + + return React.useMemo>(() => { + return { + // Keep this alphabetized + animals: _(msg`Animals`), + art: _(msg`Art`), + books: _(msg`Books`), + comedy: _(msg`Comedy`), + comics: _(msg`Comics`), + culture: _(msg`Culture`), + dev: _(msg`Software Dev`), + education: _(msg`Education`), + food: _(msg`Food`), + gaming: _(msg`Video Games`), + journalism: _(msg`Journalism`), + movies: _(msg`Movies`), + music: _(msg`Music`), + nature: _(msg`Nature`), + news: _(msg`News`), + pets: _(msg`Pets`), + photography: _(msg`Photography`), + politics: _(msg`Politics`), + science: _(msg`Science`), + sports: _(msg`Sports`), + tech: _(msg`Tech`), + tv: _(msg`TV`), + writers: _(msg`Writers`), + } + }, [_]) +} + export const initialState: OnboardingState = { - hasPrev: false, - totalSteps: 7, - activeStep: 'interests', - activeStepIndex: 1, - - interestsStepResults: { - selectedInterests: [], - apiResponse: { - interests: [], - suggestedAccountDids: {}, - suggestedFeedUris: {}, - }, - }, - suggestedAccountsStepResults: { - accountDids: [], - }, - algoFeedsStepResults: { - feedUris: [], - }, - topicalFeedsStepResults: { - feedUris: [], - }, - profileStepResults: { - isCreatedAvatar: false, - image: undefined, - imageUri: '', - imageMime: '', - }, -} - -export const INTEREST_TO_DISPLAY_NAME_DEFAULTS: { - [key: string]: string -} = { - news: 'News', - journalism: 'Journalism', - nature: 'Nature', - art: 'Art', - comics: 'Comics', - writers: 'Writers', - culture: 'Culture', - sports: 'Sports', - pets: 'Pets', - animals: 'Animals', - books: 'Books', - education: 'Education', - climate: 'Climate', - science: 'Science', - politics: 'Politics', - fitness: 'Fitness', - tech: 'Tech', - dev: 'Software Dev', - comedy: 'Comedy', - gaming: 'Video Games', - food: 'Food', - cooking: 'Cooking', -} - -export const Context = React.createContext<{ - state: OnboardingState - dispatch: React.Dispatch - interestsDisplayNames: {[key: string]: string} -}>({ - state: {...initialState}, - dispatch: () => {}, - interestsDisplayNames: INTEREST_TO_DISPLAY_NAME_DEFAULTS, -}) - -export function reducer( - s: OnboardingState, - a: OnboardingAction, -): OnboardingState { - let next = {...s} - - switch (a.type) { - case 'next': { - if (s.activeStep === 'interests') { - next.activeStep = 'suggestedAccounts' - next.activeStepIndex = 2 - } else if (s.activeStep === 'suggestedAccounts') { - next.activeStep = 'followingFeed' - next.activeStepIndex = 3 - } else if (s.activeStep === 'followingFeed') { - next.activeStep = 'algoFeeds' - next.activeStepIndex = 4 - } else if (s.activeStep === 'algoFeeds') { - next.activeStep = 'topicalFeeds' - next.activeStepIndex = 5 - } else if (s.activeStep === 'topicalFeeds') { - next.activeStep = 'moderation' - next.activeStepIndex = 6 - } else if (s.activeStep === 'moderation') { - next.activeStep = 'finished' - next.activeStepIndex = 7 - } - break - } - case 'prev': { - if (s.activeStep === 'suggestedAccounts') { - next.activeStep = 'interests' - next.activeStepIndex = 1 - } else if (s.activeStep === 'followingFeed') { - next.activeStep = 'suggestedAccounts' - next.activeStepIndex = 2 - } else if (s.activeStep === 'algoFeeds') { - next.activeStep = 'followingFeed' - next.activeStepIndex = 3 - } else if (s.activeStep === 'topicalFeeds') { - next.activeStep = 'algoFeeds' - next.activeStepIndex = 4 - } else if (s.activeStep === 'moderation') { - next.activeStep = 'topicalFeeds' - next.activeStepIndex = 5 - } else if (s.activeStep === 'finished') { - next.activeStep = 'moderation' - next.activeStepIndex = 6 - } - break - } - case 'finish': { - next = initialState - break - } - case 'setInterestsStepResults': { - next.interestsStepResults = { - selectedInterests: a.selectedInterests, - apiResponse: a.apiResponse, - } - break - } - case 'setSuggestedAccountsStepResults': { - next.suggestedAccountsStepResults = { - accountDids: next.suggestedAccountsStepResults.accountDids.concat( - a.accountDids, - ), - } - break - } - case 'setAlgoFeedsStepResults': { - next.algoFeedsStepResults = { - feedUris: a.feedUris, - } - break - } - case 'setTopicalFeedsStepResults': { - next.topicalFeedsStepResults = { - feedUris: next.topicalFeedsStepResults.feedUris.concat(a.feedUris), - } - break - } - } - - const state = { - ...next, - hasPrev: next.activeStep !== 'interests', - } - - logger.debug(`onboarding`, { - hasPrev: state.hasPrev, - activeStep: state.activeStep, - activeStepIndex: state.activeStepIndex, - interestsStepResults: { - selectedInterests: state.interestsStepResults.selectedInterests, - }, - suggestedAccountsStepResults: state.suggestedAccountsStepResults, - algoFeedsStepResults: state.algoFeedsStepResults, - topicalFeedsStepResults: state.topicalFeedsStepResults, - }) - - if (s.activeStep !== state.activeStep) { - logger.debug(`onboarding: step changed`, {activeStep: state.activeStep}) - } - - return state -} - -export const initialStateReduced: OnboardingState = { hasPrev: false, totalSteps: 3, activeStep: 'profile', @@ -288,15 +117,6 @@ export const initialStateReduced: OnboardingState = { suggestedFeedUris: {}, }, }, - suggestedAccountsStepResults: { - accountDids: [], - }, - algoFeedsStepResults: { - feedUris: [], - }, - topicalFeedsStepResults: { - feedUris: [], - }, profileStepResults: { isCreatedAvatar: false, image: undefined, @@ -305,7 +125,15 @@ export const initialStateReduced: OnboardingState = { }, } -export function reducerReduced( +export const Context = React.createContext<{ + state: OnboardingState + dispatch: React.Dispatch +}>({ + state: {...initialState}, + dispatch: () => {}, +}) + +export function reducer( s: OnboardingState, a: OnboardingAction, ): OnboardingState { @@ -333,7 +161,7 @@ export function reducerReduced( break } case 'finish': { - next = initialStateReduced + next = initialState break } case 'setInterestsStepResults': { @@ -343,15 +171,6 @@ export function reducerReduced( } break } - case 'setSuggestedAccountsStepResults': { - break - } - case 'setAlgoFeedsStepResults': { - break - } - case 'setTopicalFeedsStepResults': { - break - } case 'setProfileStepResults': { next.profileStepResults = { isCreatedAvatar: a.isCreatedAvatar, @@ -376,9 +195,6 @@ export function reducerReduced( interestsStepResults: { selectedInterests: state.interestsStepResults.selectedInterests, }, - suggestedAccountsStepResults: state.suggestedAccountsStepResults, - algoFeedsStepResults: state.algoFeedsStepResults, - topicalFeedsStepResults: state.topicalFeedsStepResults, profileStepResults: state.profileStepResults, }) diff --git a/src/screens/Onboarding/util.ts b/src/screens/Onboarding/util.ts index fde4316e93..b9ecc4b987 100644 --- a/src/screens/Onboarding/util.ts +++ b/src/screens/Onboarding/util.ts @@ -3,74 +3,12 @@ import { AppBskyGraphGetFollows, BskyAgent, } from '@atproto/api' +import {TID} from '@atproto/common-web' import {until} from '#/lib/async/until' -import {PRIMARY_FEEDS} from './StepAlgoFeeds' -function shuffle(array: any) { - let currentIndex = array.length, - randomIndex - - // While there remain elements to shuffle. - while (currentIndex > 0) { - // Pick a remaining element. - randomIndex = Math.floor(Math.random() * currentIndex) - currentIndex-- - - // And swap it with the current element. - ;[array[currentIndex], array[randomIndex]] = [ - array[randomIndex], - array[currentIndex], - ] - } - - return array -} - -export function aggregateInterestItems( - interests: string[], - map: {[key: string]: string[]}, - fallbackItems: string[], -) { - const selected = interests.length - const all = interests - .map(i => { - // suggestions from server - const rawSuggestions = map[i] - - // safeguard against a missing interest->suggestion mapping - if (!rawSuggestions || !rawSuggestions.length) { - return [] - } - - const suggestions = shuffle(rawSuggestions) - - if (selected === 1) { - return suggestions // return all - } else if (selected === 2) { - return suggestions.slice(0, 5) // return 5 - } else { - return suggestions.slice(0, 3) // return 3 - } - }) - .flat() - // dedupe suggestions - const results = Array.from(new Set(all)) - - // backfill - if (results.length < 20) { - results.push(...shuffle(fallbackItems)) - } - - // dedupe and return 20 - return Array.from(new Set(results)).slice(0, 20) -} - -export async function bulkWriteFollows( - getAgent: () => BskyAgent, - dids: string[], -) { - const session = getAgent().session +export async function bulkWriteFollows(agent: BskyAgent, dids: string[]) { + const session = agent.session if (!session) { throw new Error(`bulkWriteFollows failed: no session`) @@ -83,25 +21,32 @@ export async function bulkWriteFollows( createdAt: new Date().toISOString(), } }) + const followWrites = followRecords.map(r => ({ $type: 'com.atproto.repo.applyWrites#create', collection: 'app.bsky.graph.follow', + rkey: TID.nextStr(), value: r, })) - await getAgent().com.atproto.repo.applyWrites({ + await agent.com.atproto.repo.applyWrites({ repo: session.did, writes: followWrites, }) - await whenFollowsIndexed( - getAgent, - session.did, - res => !!res.data.follows.length, - ) + await whenFollowsIndexed(agent, session.did, res => !!res.data.follows.length) + + const followUris = new Map() + for (const r of followWrites) { + followUris.set( + r.value.subject, + `at://${session.did}/app.bsky.graph.follow/${r.rkey}`, + ) + } + return followUris } async function whenFollowsIndexed( - getAgent: () => BskyAgent, + agent: BskyAgent, actor: string, fn: (res: AppBskyGraphGetFollows.Response) => boolean, ) { @@ -110,25 +55,9 @@ async function whenFollowsIndexed( 1e3, // 1s delay between tries fn, () => - getAgent().app.bsky.graph.getFollows({ + agent.app.bsky.graph.getFollows({ actor, limit: 1, }), ) } - -/** - * Kinda hacky, but we want Discover to appear as the first pinned - * feed after Following - */ -export function sortPrimaryAlgorithmFeeds(uris: string[]) { - return uris.sort((a, b) => { - if (a === PRIMARY_FEEDS[0]?.uri) { - return -1 - } - if (b === PRIMARY_FEEDS[0]?.uri) { - return 1 - } - return a.localeCompare(b) - }) -} diff --git a/src/screens/Profile/Header/DisplayName.tsx b/src/screens/Profile/Header/DisplayName.tsx index b6d88db712..955e3d72c8 100644 --- a/src/screens/Profile/Header/DisplayName.tsx +++ b/src/screens/Profile/Header/DisplayName.tsx @@ -1,10 +1,10 @@ import React from 'react' import {View} from 'react-native' import {AppBskyActorDefs, ModerationDecision} from '@atproto/api' -import {sanitizeHandle} from 'lib/strings/handles' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {Shadow} from '#/state/cache/types' +import {Shadow} from '#/state/cache/types' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' import {atoms as a, useTheme} from '#/alf' import {Text} from '#/components/Typography' @@ -20,7 +20,7 @@ export function ProfileHeaderDisplayName({ + style={[t.atoms.text, a.text_4xl, a.self_start, {fontWeight: '500'}]}> {sanitizeDisplayName( profile.displayName || sanitizeHandle(profile.handle), moderation.ui('displayName'), diff --git a/src/screens/Profile/Header/Handle.tsx b/src/screens/Profile/Header/Handle.tsx index 9ab24fbbed..0344f1a234 100644 --- a/src/screens/Profile/Header/Handle.tsx +++ b/src/screens/Profile/Header/Handle.tsx @@ -5,19 +5,26 @@ import {Trans} from '@lingui/macro' import {Shadow} from '#/state/cache/types' import {isInvalidHandle} from 'lib/strings/handles' +import {isIOS} from 'platform/detection' import {atoms as a, useTheme, web} from '#/alf' +import {NewskieDialog} from '#/components/NewskieDialog' import {Text} from '#/components/Typography' export function ProfileHeaderHandle({ profile, + disableTaps, }: { profile: Shadow + disableTaps?: boolean }) { const t = useTheme() const invalidHandle = isInvalidHandle(profile.handle) const blockHide = profile.viewer?.blocking || profile.viewer?.blockedBy return ( - + + {profile.viewer?.followedBy && !blockHide ? ( diff --git a/src/screens/Profile/Header/ProfileHeaderLabeler.tsx b/src/screens/Profile/Header/ProfileHeaderLabeler.tsx index 459bd0d958..a807c70dd9 100644 --- a/src/screens/Profile/Header/ProfileHeaderLabeler.tsx +++ b/src/screens/Profile/Header/ProfileHeaderLabeler.tsx @@ -10,6 +10,8 @@ import { import {msg, Plural, plural, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +// eslint-disable-next-line @typescript-eslint/no-unused-vars +import {MAX_LABELERS} from '#/lib/constants' import {isAppLabeler} from '#/lib/moderation' import {logger} from '#/logger' import {Shadow} from '#/state/cache/types' @@ -24,7 +26,7 @@ import {isIOS} from 'platform/detection' import {useProfileShadow} from 'state/cache/profile-shadow' import {ProfileMenu} from '#/view/com/profile/ProfileMenu' import * as Toast from '#/view/com/util/Toast' -import {atoms as a, tokens, useTheme} from '#/alf' +import {atoms as a, tokens, useBreakpoints, useTheme} from '#/alf' import {Button, ButtonText} from '#/components/Button' import {DialogOuterProps} from '#/components/Dialog' import { @@ -60,6 +62,7 @@ let ProfileHeaderLabeler = ({ const profile: Shadow = useProfileShadow(profileUnshadowed) const t = useTheme() + const {gtMobile} = useBreakpoints() const {_} = useLingui() const {currentAccount, hasSession} = useSession() const {openModal} = useModalControls() @@ -74,14 +77,14 @@ let ProfileHeaderLabeler = ({ [profile, moderationOpts], ) const {data: preferences} = usePreferencesQuery() - const {mutateAsync: toggleSubscription, variables} = - useLabelerSubscriptionMutation() + const { + mutateAsync: toggleSubscription, + variables, + reset, + } = useLabelerSubscriptionMutation() const isSubscribed = variables?.subscribe ?? preferences?.moderationPrefs.labelers.find(l => l.did === profile.did) - const canSubscribe = - isSubscribed || - (preferences ? preferences?.moderationPrefs.labelers.length < 9 : false) const {mutateAsync: likeMod, isPending: isLikePending} = useLikeMutation() const {mutateAsync: unlikeMod, isPending: isUnlikePending} = useUnlikeMutation() @@ -113,6 +116,7 @@ let ProfileHeaderLabeler = ({ _( msg`There was an an issue contacting the server, please check your internet connection and try again.`, ), + 'xmark', ) logger.error(`Failed to toggle labeler like`, {message: e.message}) } @@ -128,18 +132,18 @@ let ProfileHeaderLabeler = ({ const onPressSubscribe = React.useCallback( () => - requireAuth(async () => { - if (!canSubscribe) { - cantSubscribePrompt.open() - return - } + requireAuth(async (): Promise => { try { await toggleSubscription({ did: profile.did, subscribe: !isSubscribed, }) } catch (e: any) { - // setSubscriptionError(e.message) + reset() + if (e.message === 'MAX_LABELERS') { + cantSubscribePrompt.open() + return + } logger.error(`Failed to subscribe to labeler`, {message: e.message}) } }), @@ -148,8 +152,8 @@ let ProfileHeaderLabeler = ({ toggleSubscription, isSubscribed, profile, - canSubscribe, cantSubscribePrompt, + reset, ], ) @@ -197,15 +201,14 @@ let ProfileHeaderLabeler = ({ Unable to subscribe - We're sorry! You can only subscribe to ten labelers, and you've - reached your limit of ten. + We're sorry! You can only subscribe to twenty labelers, and you've + reached your limit of twenty. - + control.close()} cta={_(msg`OK`)} /> ) diff --git a/src/screens/Profile/Header/ProfileHeaderStandard.tsx b/src/screens/Profile/Header/ProfileHeaderStandard.tsx index f3f2a370da..2b6353b276 100644 --- a/src/screens/Profile/Header/ProfileHeaderStandard.tsx +++ b/src/screens/Profile/Header/ProfileHeaderStandard.tsx @@ -10,9 +10,8 @@ import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useGate} from '#/lib/statsig/statsig' import {logger} from '#/logger' -import {isIOS, isWeb} from '#/platform/detection' +import {isIOS} from '#/platform/detection' import {Shadow} from '#/state/cache/types' import {useModalControls} from '#/state/modals' import { @@ -28,8 +27,13 @@ import {ProfileMenu} from '#/view/com/profile/ProfileMenu' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {MessageProfileButton} from '#/components/dms/MessageProfileButton' import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' +import { + KnownFollowers, + shouldShowKnownFollowers, +} from '#/components/KnownFollowers' import * as Prompt from '#/components/Prompt' import {RichText} from '#/components/RichText' import {ProfileHeaderDisplayName} from './DisplayName' @@ -71,6 +75,10 @@ let ProfileHeaderStandard = ({ const [_queueBlock, queueUnblock] = useProfileBlockMutationQueue(profile) const unblockPromptControl = Prompt.usePromptControl() const requireAuth = useRequireAuth() + const isBlockedUser = + profile.viewer?.blocking || + profile.viewer?.blockedBy || + profile.viewer?.blockingByList const onPressEditProfile = React.useCallback(() => { track('ProfileHeader:EditProfileButtonClicked') @@ -80,7 +88,6 @@ let ProfileHeaderStandard = ({ }) }, [track, openModal, profile]) - const gate = useGate() const onPressFollow = () => { requireAuth(async () => { try { @@ -94,13 +101,10 @@ let ProfileHeaderStandard = ({ )}`, ), ) - if (isWeb && gate('autoexpand_suggestions_on_profile_follow_v2')) { - setShowSuggestedFollows(true) - } } catch (e: any) { if (e?.name !== 'AbortError') { logger.error('Failed to follow', {message: String(e)}) - Toast.show(_(msg`There was an issue! ${e.toString()}`)) + Toast.show(_(msg`There was an issue! ${e.toString()}`), 'xmark') } } }) @@ -122,7 +126,7 @@ let ProfileHeaderStandard = ({ } catch (e: any) { if (e?.name !== 'AbortError') { logger.error('Failed to unfollow', {message: String(e)}) - Toast.show(_(msg`There was an issue! ${e.toString()}`)) + Toast.show(_(msg`There was an issue! ${e.toString()}`), 'xmark') } } }) @@ -136,7 +140,7 @@ let ProfileHeaderStandard = ({ } catch (e: any) { if (e?.name !== 'AbortError') { logger.error('Failed to unblock account', {message: e}) - Toast.show(_(msg`There was an issue! ${e.toString()}`)) + Toast.show(_(msg`There was an issue! ${e.toString()}`), 'xmark') } } }, [_, queueUnblock, track]) @@ -153,10 +157,17 @@ let ProfileHeaderStandard = ({ hideBackButton={hideBackButton} isPlaceholderProfile={isPlaceholderProfile}> {isMe ? ( + label={_(msg`Show follows similar to ${profile.handle}`)} + style={{width: 36, height: 36}}> + + + )} + + + + {error && ( + + + {error} + + )} + + ) +} diff --git a/src/screens/Signup/BackNextButtons.tsx b/src/screens/Signup/BackNextButtons.tsx new file mode 100644 index 0000000000..73bd428c8b --- /dev/null +++ b/src/screens/Signup/BackNextButtons.tsx @@ -0,0 +1,73 @@ +import React from 'react' +import {View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {atoms as a} from '#/alf' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {Loader} from '#/components/Loader' + +export interface BackNextButtonsProps { + hideNext?: boolean + showRetry?: boolean + isLoading: boolean + isNextDisabled?: boolean + onBackPress: () => void + onNextPress?: () => void + onRetryPress?: () => void +} + +export function BackNextButtons({ + hideNext, + showRetry, + isLoading, + isNextDisabled, + onBackPress, + onNextPress, + onRetryPress, +}: BackNextButtonsProps) { + const {_} = useLingui() + + return ( + + + {!hideNext && + (showRetry ? ( + + ) : ( + + ))} + + ) +} diff --git a/src/screens/Signup/StepCaptcha/index.tsx b/src/screens/Signup/StepCaptcha/index.tsx index d0fc4e9341..bf35764908 100644 --- a/src/screens/Signup/StepCaptcha/index.tsx +++ b/src/screens/Signup/StepCaptcha/index.tsx @@ -6,11 +6,13 @@ import {nanoid} from 'nanoid/non-secure' import {createFullHandle} from '#/lib/strings/handles' import {logger} from '#/logger' +import {logEvent} from 'lib/statsig/statsig' import {ScreenTransition} from '#/screens/Login/ScreenTransition' import {useSignupContext, useSubmitSignup} from '#/screens/Signup/state' import {CaptchaWebView} from '#/screens/Signup/StepCaptcha/CaptchaWebView' import {atoms as a, useTheme} from '#/alf' import {FormError} from '#/components/forms/FormError' +import {BackNextButtons} from '../BackNextButtons' const CAPTCHA_PATH = '/gate/signup' @@ -39,6 +41,7 @@ export function StepCaptcha() { const onSuccess = React.useCallback( (code: string) => { setCompleted(true) + logEvent('signup:captchaSuccess', {}) submit(code) }, [submit], @@ -50,6 +53,7 @@ export function StepCaptcha() { type: 'setError', value: _(msg`Error receiving captcha response.`), }) + logEvent('signup:captchaFailure', {}) logger.error('Signup Flow Error', { registrationHandle: state.handle, error, @@ -58,6 +62,16 @@ export function StepCaptcha() { [_, dispatch, state.handle], ) + const onBackPress = React.useCallback(() => { + logger.error('Signup Flow Error', { + errorMessage: + 'User went back from captcha step. Possibly encountered an error.', + registrationHandle: state.handle, + }) + + dispatch({type: 'prev'}) + }, [dispatch, state.handle]) + return ( @@ -83,6 +97,11 @@ export function StepCaptcha() { + ) } diff --git a/src/screens/Signup/StepHandle.tsx b/src/screens/Signup/StepHandle.tsx index 2266f43879..b443e822a4 100644 --- a/src/screens/Signup/StepHandle.tsx +++ b/src/screens/Signup/StepHandle.tsx @@ -1,56 +1,96 @@ -import React from 'react' +import React, {useRef} from 'react' import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useFocusEffect} from '@react-navigation/native' -import { - createFullHandle, - IsValidHandle, - validateHandle, -} from '#/lib/strings/handles' +import {logEvent} from '#/lib/statsig/statsig' +import {createFullHandle, validateHandle} from '#/lib/strings/handles' +import {useAgent} from '#/state/session' import {ScreenTransition} from '#/screens/Login/ScreenTransition' -import {useSignupContext} from '#/screens/Signup/state' +import {useSignupContext, useSubmitSignup} from '#/screens/Signup/state' import {atoms as a, useTheme} from '#/alf' import * as TextField from '#/components/forms/TextField' import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' import {TimesLarge_Stroke2_Corner0_Rounded as Times} from '#/components/icons/Times' import {Text} from '#/components/Typography' +import {BackNextButtons} from './BackNextButtons' export function StepHandle() { const {_} = useLingui() const t = useTheme() const {state, dispatch} = useSignupContext() + const submit = useSubmitSignup({state, dispatch}) + const agent = useAgent() + const handleValueRef = useRef(state.handle) + const [draftValue, setDraftValue] = React.useState(state.handle) - const [validCheck, setValidCheck] = React.useState({ - handleChars: false, - hyphenStartOrEnd: false, - frontLength: false, - totalLength: true, - overall: false, - }) + const onNextPress = React.useCallback(async () => { + const handle = handleValueRef.current.trim() + dispatch({ + type: 'setHandle', + value: handle, + }) - useFocusEffect( - React.useCallback(() => { - setValidCheck(validateHandle(state.handle, state.userDomain)) - }, [state.handle, state.userDomain]), - ) + const newValidCheck = validateHandle(handle, state.userDomain) + if (!newValidCheck.overall) { + return + } - const onHandleChange = React.useCallback( - (value: string) => { - if (state.error) { - dispatch({type: 'setError', value: ''}) - } + try { + dispatch({type: 'setIsLoading', value: true}) - dispatch({ - type: 'setHandle', - value, + const res = await agent.resolveHandle({ + handle: createFullHandle(handle, state.userDomain), }) - }, - [dispatch, state.error], - ) + if (res.data.did) { + dispatch({ + type: 'setError', + value: _(msg`That handle is already taken.`), + }) + return + } + } catch (e) { + // Don't have to handle + } finally { + dispatch({type: 'setIsLoading', value: false}) + } + + logEvent('signup:nextPressed', { + activeStep: state.activeStep, + phoneVerificationRequired: + state.serviceDescription?.phoneVerificationRequired, + }) + // phoneVerificationRequired is actually whether a captcha is required + if (!state.serviceDescription?.phoneVerificationRequired) { + submit() + return + } + dispatch({type: 'next'}) + }, [ + _, + dispatch, + state.activeStep, + state.serviceDescription?.phoneVerificationRequired, + state.userDomain, + submit, + agent, + ]) + + const onBackPress = React.useCallback(() => { + const handle = handleValueRef.current.trim() + dispatch({ + type: 'setHandle', + value: handle, + }) + dispatch({type: 'prev'}) + logEvent('signup:backPressed', { + activeStep: state.activeStep, + }) + }, [dispatch, state.activeStep]) + + const validCheck = validateHandle(draftValue, state.userDomain) return ( @@ -59,9 +99,17 @@ export function StepHandle() { { + if (state.error) { + dispatch({type: 'setError', value: ''}) + } + + // These need to always be in sync. + handleValueRef.current = val + setDraftValue(val) + }} label={_(msg`Input your user handle`)} - defaultValue={state.handle} + defaultValue={draftValue} autoCapitalize="none" autoCorrect={false} autoFocus @@ -69,59 +117,69 @@ export function StepHandle() { /> - - Your full handle will be{' '} - - @{createFullHandle(state.handle, state.userDomain)} + {draftValue !== '' && ( + + Your full handle will be{' '} + + @{createFullHandle(draftValue, state.userDomain)} + - + )} - - {state.error ? ( - - - {state.error} - - ) : undefined} - {validCheck.hyphenStartOrEnd ? ( - - - - Only contains letters, numbers, and hyphens - - - ) : ( - - - - Doesn't begin or end with a hyphen - - - )} - - - {!validCheck.totalLength ? ( - - No longer than 253 characters - + {draftValue !== '' && ( + + {state.error ? ( + + + {state.error} + + ) : undefined} + {validCheck.hyphenStartOrEnd ? ( + + + + Only contains letters, numbers, and hyphens + + ) : ( - - At least 3 characters - + + + + Doesn't begin or end with a hyphen + + )} + + + {!validCheck.totalLength ? ( + + No longer than 253 characters + + ) : ( + + At least 3 characters + + )} + - + )} + ) } diff --git a/src/screens/Signup/StepInfo/Policies.tsx b/src/screens/Signup/StepInfo/Policies.tsx index f25bda274f..a3a0672223 100644 --- a/src/screens/Signup/StepInfo/Policies.tsx +++ b/src/screens/Signup/StepInfo/Policies.tsx @@ -45,14 +45,20 @@ export const Policies = ({ const els = [] if (tos) { els.push( - + {_(msg`Terms of Service`)} , ) } if (pp) { els.push( - + {_(msg`Privacy Policy`)} , ) diff --git a/src/screens/Signup/StepInfo/index.tsx b/src/screens/Signup/StepInfo/index.tsx index 4104b79b35..47fb4c70ba 100644 --- a/src/screens/Signup/StepInfo/index.tsx +++ b/src/screens/Signup/StepInfo/index.tsx @@ -1,8 +1,10 @@ -import React from 'react' +import React, {useRef} from 'react' import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import * as EmailValidator from 'email-validator' +import {logEvent} from '#/lib/statsig/statsig' import {logger} from '#/logger' import {ScreenTransition} from '#/screens/Login/ScreenTransition' import {is13, is18, useSignupContext} from '#/screens/Signup/state' @@ -16,6 +18,7 @@ import {Envelope_Stroke2_Corner0_Rounded as Envelope} from '#/components/icons/E import {Lock_Stroke2_Corner0_Rounded as Lock} from '#/components/icons/Lock' import {Ticket_Stroke2_Corner0_Rounded as Ticket} from '#/components/icons/Ticket' import {Loader} from '#/components/Loader' +import {BackNextButtons} from '../BackNextButtons' function sanitizeDate(date: Date): Date { if (!date || date.toString() === 'Invalid Date') { @@ -27,10 +30,73 @@ function sanitizeDate(date: Date): Date { return date } -export function StepInfo() { +export function StepInfo({ + onPressBack, + isServerError, + refetchServer, + isLoadingStarterPack, +}: { + onPressBack: () => void + isServerError: boolean + refetchServer: () => void + isLoadingStarterPack: boolean +}) { const {_} = useLingui() const {state, dispatch} = useSignupContext() + const inviteCodeValueRef = useRef(state.inviteCode) + const emailValueRef = useRef(state.email) + const passwordValueRef = useRef(state.password) + + const onNextPress = React.useCallback(async () => { + const inviteCode = inviteCodeValueRef.current + const email = emailValueRef.current + const password = passwordValueRef.current + + if (!is13(state.dateOfBirth)) { + return + } + + if (state.serviceDescription?.inviteCodeRequired && !inviteCode) { + return dispatch({ + type: 'setError', + value: _(msg`Please enter your invite code.`), + }) + } + if (!email) { + return dispatch({ + type: 'setError', + value: _(msg`Please enter your email.`), + }) + } + if (!EmailValidator.validate(email)) { + return dispatch({ + type: 'setError', + value: _(msg`Your email appears to be invalid.`), + }) + } + if (!password) { + return dispatch({ + type: 'setError', + value: _(msg`Please choose your password.`), + }) + } + + dispatch({type: 'setInviteCode', value: inviteCode}) + dispatch({type: 'setEmail', value: email}) + dispatch({type: 'setPassword', value: password}) + dispatch({type: 'next'}) + logEvent('signup:nextPressed', { + activeStep: state.activeStep, + }) + }, [ + _, + dispatch, + state.activeStep, + state.dateOfBirth, + state.serviceDescription?.inviteCodeRequired, + ]) + return ( @@ -46,7 +112,7 @@ export function StepInfo() { } /> - {state.isLoading ? ( + {state.isLoading || isLoadingStarterPack ? ( @@ -61,10 +127,7 @@ export function StepInfo() { { - dispatch({ - type: 'setInviteCode', - value: value.trim(), - }) + inviteCodeValueRef.current = value.trim() }} label={_(msg`Required for this provider`)} defaultValue={state.inviteCode} @@ -84,10 +147,7 @@ export function StepInfo() { { - dispatch({ - type: 'setEmail', - value: value.trim(), - }) + emailValueRef.current = value.trim() }} label={_(msg`Enter your email address`)} defaultValue={state.email} @@ -106,10 +166,7 @@ export function StepInfo() { { - dispatch({ - type: 'setPassword', - value, - }) + passwordValueRef.current = value }} label={_(msg`Choose your password`)} defaultValue={state.password} @@ -143,6 +200,14 @@ export function StepInfo() { ) : undefined} + ) } diff --git a/src/screens/Signup/index.tsx b/src/screens/Signup/index.tsx index 3d8b505b91..189760460e 100644 --- a/src/screens/Signup/index.tsx +++ b/src/screens/Signup/index.tsx @@ -1,31 +1,29 @@ import React from 'react' import {View} from 'react-native' -import {LayoutAnimationConfig} from 'react-native-reanimated' +import Animated, {FadeIn, LayoutAnimationConfig} from 'react-native-reanimated' +import {AppBskyGraphStarterpack} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useAnalytics} from '#/lib/analytics/analytics' import {FEEDBACK_FORM_URL} from '#/lib/constants' -import {logEvent} from '#/lib/statsig/statsig' -import {createFullHandle} from '#/lib/strings/handles' -import {logger} from '#/logger' import {useServiceQuery} from '#/state/queries/service' -import {useAgent} from '#/state/session' +import {useStarterPackQuery} from 'state/queries/starter-packs' +import {useActiveStarterPack} from 'state/shell/starter-pack' import {LoggedOutLayout} from '#/view/com/util/layouts/LoggedOutLayout' import { initialState, reducer, SignupContext, SignupStep, - useSubmitSignup, } from '#/screens/Signup/state' import {StepCaptcha} from '#/screens/Signup/StepCaptcha' import {StepHandle} from '#/screens/Signup/StepHandle' import {StepInfo} from '#/screens/Signup/StepInfo' import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {AppLanguageDropdown} from '#/components/AppLanguageDropdown' -import {Button, ButtonText} from '#/components/Button' import {Divider} from '#/components/Divider' +import {LinearGradientBackground} from '#/components/LinearGradientBackground' import {InlineLinkText} from '#/components/Link' import {Text} from '#/components/Typography' @@ -34,9 +32,20 @@ export function Signup({onPressBack}: {onPressBack: () => void}) { const t = useTheme() const {screen} = useAnalytics() const [state, dispatch] = React.useReducer(reducer, initialState) - const submit = useSubmitSignup({state, dispatch}) const {gtMobile} = useBreakpoints() - const {getAgent} = useAgent() + + const activeStarterPack = useActiveStarterPack() + const { + data: starterPack, + isFetching: isFetchingStarterPack, + isError: isErrorStarterPack, + } = useStarterPackQuery({ + uri: activeStarterPack?.uri, + }) + + const [isFetchedAtMount] = React.useState(starterPack != null) + const showStarterPackCard = + activeStarterPack?.uri && !isFetchingStarterPack && starterPack const { data: serviceInfo, @@ -72,68 +81,6 @@ export function Signup({onPressBack}: {onPressBack: () => void}) { } }, [_, serviceInfo, isError]) - const onNextPress = React.useCallback(async () => { - if (state.activeStep === SignupStep.HANDLE) { - try { - dispatch({type: 'setIsLoading', value: true}) - - const res = await getAgent().resolveHandle({ - handle: createFullHandle(state.handle, state.userDomain), - }) - - if (res.data.did) { - dispatch({ - type: 'setError', - value: _(msg`That handle is already taken.`), - }) - return - } - } catch (e) { - // Don't have to handle - } finally { - dispatch({type: 'setIsLoading', value: false}) - } - } - - // phoneVerificationRequired is actually whether a captcha is required - if ( - state.activeStep === SignupStep.HANDLE && - !state.serviceDescription?.phoneVerificationRequired - ) { - submit() - return - } - - dispatch({type: 'next'}) - logEvent('signup:nextPressed', { - activeStep: state.activeStep, - }) - }, [ - _, - state.activeStep, - state.handle, - state.serviceDescription?.phoneVerificationRequired, - state.userDomain, - submit, - getAgent, - ]) - - const onBackPress = React.useCallback(() => { - if (state.activeStep !== SignupStep.INFO) { - if (state.activeStep === SignupStep.CAPTCHA) { - logger.error('Signup Flow Error', { - errorMessage: - 'User went back from captcha step. Possibly encountered an error.', - registrationHandle: state.handle, - }) - } - - dispatch({type: 'prev'}) - } else { - onPressBack() - } - }, [onPressBack, state.activeStep, state.handle]) - return ( void}) { description={_(msg`We're so excited to have you join us!`)} scrollable> + {showStarterPackCard && + AppBskyGraphStarterpack.isRecord(starterPack.record) ? ( + + + + {starterPack.record.name} + + + {starterPack.feeds?.length ? ( + + You'll follow the suggested users and feeds once you + finish creating your account! + + ) : ( + + You'll follow the suggested users once you finish creating + your account! + + )} + + + + ) : null} void}) { - - - {state.activeStep === SignupStep.INFO ? ( - - ) : state.activeStep === SignupStep.HANDLE ? ( - - ) : ( - - )} - - - - - - {state.activeStep !== SignupStep.CAPTCHA && ( - <> - {isError ? ( - - ) : ( - - )} - + + {state.activeStep === SignupStep.INFO ? ( + + ) : state.activeStep === SignupStep.HANDLE ? ( + + ) : ( + )} - + @@ -233,6 +166,7 @@ export function Signup({onPressBack}: {onPressBack: () => void}) { Having trouble?{' '} Contact support diff --git a/src/screens/Signup/state.ts b/src/screens/Signup/state.ts index facc680bd7..826cbf1d31 100644 --- a/src/screens/Signup/state.ts +++ b/src/screens/Signup/state.ts @@ -10,7 +10,7 @@ import * as EmailValidator from 'email-validator' import {DEFAULT_SERVICE} from '#/lib/constants' import {cleanError} from '#/lib/strings/errors' -import {createFullHandle, validateHandle} from '#/lib/strings/handles' +import {createFullHandle} from '#/lib/strings/handles' import {getAge} from '#/lib/strings/time' import {logger} from '#/logger' import {useSessionApi} from '#/state/session' @@ -28,7 +28,6 @@ export enum SignupStep { export type SignupState = { hasPrev: boolean - canNext: boolean activeStep: SignupStep serviceUrl: string @@ -58,12 +57,10 @@ export type SignupAction = | {type: 'setHandle'; value: string} | {type: 'setVerificationCode'; value: string} | {type: 'setError'; value: string} - | {type: 'setCanNext'; value: boolean} | {type: 'setIsLoading'; value: boolean} export const initialState: SignupState = { hasPrev: false, - canNext: false, activeStep: SignupStep.INFO, serviceUrl: DEFAULT_SERVICE, @@ -144,10 +141,6 @@ export function reducer(s: SignupState, a: SignupAction): SignupState { next.handle = a.value break } - case 'setCanNext': { - next.canNext = a.value - break - } case 'setIsLoading': { next.isLoading = a.value break @@ -160,23 +153,6 @@ export function reducer(s: SignupState, a: SignupAction): SignupState { next.hasPrev = next.activeStep !== SignupStep.INFO - switch (next.activeStep) { - case SignupStep.INFO: { - const isValidEmail = EmailValidator.validate(next.email) - next.canNext = - !!(next.email && next.password && next.dateOfBirth) && - (!next.serviceDescription?.inviteCodeRequired || !!next.inviteCode) && - is13(next.dateOfBirth) && - isValidEmail - break - } - case SignupStep.HANDLE: { - next.canNext = - !!next.handle && validateHandle(next.handle, next.userDomain).overall - break - } - } - logger.debug('signup', next) if (s.activeStep !== next.activeStep) { @@ -252,7 +228,6 @@ export function useSubmitSignup({ dispatch({type: 'setIsLoading', value: true}) try { - onboardingDispatch({type: 'start'}) // start now to avoid flashing the wrong view await createAccount({ service: state.serviceUrl, email: state.email, @@ -262,8 +237,12 @@ export function useSubmitSignup({ inviteCode: state.inviteCode.trim(), verificationCode: verificationCode, }) + /* + * Must happen last so that if the user has multiple tabs open and + * createAccount fails, one tab is not stuck in onboarding — Eric + */ + onboardingDispatch({type: 'start'}) } catch (e: any) { - onboardingDispatch({type: 'skip'}) // undo starting the onboard let errMsg = e.toString() if (e instanceof ComAtprotoServerCreateAccount.InvalidInviteCodeError) { dispatch({ diff --git a/src/screens/SignupQueued.tsx b/src/screens/SignupQueued.tsx new file mode 100644 index 0000000000..69ef93618d --- /dev/null +++ b/src/screens/SignupQueued.tsx @@ -0,0 +1,219 @@ +import React from 'react' +import {View} from 'react-native' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {msg, plural, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {logger} from '#/logger' +import {isWeb} from '#/platform/detection' +import {isSignupQueued, useAgent, useSessionApi} from '#/state/session' +import {useOnboardingDispatch} from '#/state/shell' +import {ScrollView} from '#/view/com/util/Views' +import {Logo} from '#/view/icons/Logo' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {Loader} from '#/components/Loader' +import {P, Text} from '#/components/Typography' + +const COL_WIDTH = 400 + +export function SignupQueued() { + const {_} = useLingui() + const t = useTheme() + const insets = useSafeAreaInsets() + const {gtMobile} = useBreakpoints() + const onboardingDispatch = useOnboardingDispatch() + const {logout} = useSessionApi() + const agent = useAgent() + + const [isProcessing, setProcessing] = React.useState(false) + const [estimatedTime, setEstimatedTime] = React.useState( + undefined, + ) + const [placeInQueue, setPlaceInQueue] = React.useState( + undefined, + ) + + const checkStatus = React.useCallback(async () => { + setProcessing(true) + try { + const res = await agent.com.atproto.temp.checkSignupQueue() + if (res.data.activated) { + // ready to go, exchange the access token for a usable one and kick off onboarding + await agent.sessionManager.refreshSession() + if (!isSignupQueued(agent.session?.accessJwt)) { + onboardingDispatch({type: 'start'}) + } + } else { + // not ready, update UI + setEstimatedTime(msToString(res.data.estimatedTimeMs)) + if (typeof res.data.placeInQueue !== 'undefined') { + setPlaceInQueue(Math.max(res.data.placeInQueue, 1)) + } + } + } catch (e: any) { + logger.error('Failed to check signup queue', {err: e.toString()}) + } finally { + setProcessing(false) + } + }, [ + setProcessing, + setEstimatedTime, + setPlaceInQueue, + onboardingDispatch, + agent, + ]) + + React.useEffect(() => { + checkStatus() + const interval = setInterval(checkStatus, 60e3) + return () => clearInterval(interval) + }, [checkStatus]) + + const checkBtn = ( + + ) + + return ( + + + + + + + + + + You're in line + +

+ + There's been a rush of new users to Bluesky! We'll activate your + account as soon as we can. + +

+ + + {typeof placeInQueue === 'number' && ( + + {placeInQueue} + + )} +

+ {typeof placeInQueue === 'number' ? ( + left to go. + ) : ( + You are in line. + )}{' '} + {estimatedTime ? ( + + We estimate {estimatedTime} until your account is ready. + + ) : ( + + We will let you know when your account is ready. + + )} +

+
+ + {isWeb && gtMobile && ( + + + {checkBtn} + + )} +
+ + + +
+ + {(!isWeb || !gtMobile) && ( + + + {checkBtn} + + + + )} +
+ ) +} + +function msToString(ms: number | undefined): string | undefined { + if (ms && ms > 0) { + const estimatedTimeMins = Math.ceil(ms / 60e3) + if (estimatedTimeMins > 59) { + const estimatedTimeHrs = Math.round(estimatedTimeMins / 60) + if (estimatedTimeHrs > 6) { + // dont even bother + return undefined + } + // hours + return `${estimatedTimeHrs} ${plural(estimatedTimeHrs, { + one: 'hour', + other: 'hours', + })}` + } + // minutes + return `${estimatedTimeMins} ${plural(estimatedTimeMins, { + one: 'minute', + other: 'minutes', + })}` + } + return undefined +} diff --git a/src/screens/StarterPack/StarterPackLandingScreen.tsx b/src/screens/StarterPack/StarterPackLandingScreen.tsx new file mode 100644 index 0000000000..643a722119 --- /dev/null +++ b/src/screens/StarterPack/StarterPackLandingScreen.tsx @@ -0,0 +1,402 @@ +import React from 'react' +import {Pressable, ScrollView, View} from 'react-native' +import Animated, {FadeIn, FadeOut} from 'react-native-reanimated' +import { + AppBskyGraphDefs, + AppBskyGraphStarterpack, + AtUri, + ModerationOpts, +} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {JOINED_THIS_WEEK} from '#/lib/constants' +import {isAndroidWeb} from 'lib/browser' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {logEvent} from 'lib/statsig/statsig' +import {createStarterPackGooglePlayUri} from 'lib/strings/starter-pack' +import {isWeb} from 'platform/detection' +import {useModerationOpts} from 'state/preferences/moderation-opts' +import {useStarterPackQuery} from 'state/queries/starter-packs' +import { + useActiveStarterPack, + useSetActiveStarterPack, +} from 'state/shell/starter-pack' +import {formatCount} from '#/view/com/util/numeric/format' +import {LoggedOutScreenState} from 'view/com/auth/LoggedOut' +import {CenteredView} from 'view/com/util/Views' +import {Logo} from 'view/icons/Logo' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import {useDialogControl} from '#/components/Dialog' +import * as FeedCard from '#/components/FeedCard' +import {LinearGradientBackground} from '#/components/LinearGradientBackground' +import {ListMaybePlaceholder} from '#/components/Lists' +import {Default as ProfileCard} from '#/components/ProfileCard' +import * as Prompt from '#/components/Prompt' +import {Text} from '#/components/Typography' + +const AnimatedPressable = Animated.createAnimatedComponent(Pressable) + +interface AppClipMessage { + action: 'present' | 'store' + keyToStoreAs?: string + jsonToStore?: string +} + +function postAppClipMessage(message: AppClipMessage) { + // @ts-expect-error safari webview only + window.webkit.messageHandlers.onMessage.postMessage(JSON.stringify(message)) +} + +export function LandingScreen({ + setScreenState, +}: { + setScreenState: (state: LoggedOutScreenState) => void +}) { + const moderationOpts = useModerationOpts() + const activeStarterPack = useActiveStarterPack() + + const { + data: starterPack, + isError: isErrorStarterPack, + isFetching, + } = useStarterPackQuery({ + uri: activeStarterPack?.uri, + }) + + const isValid = + starterPack && + starterPack.list && + AppBskyGraphDefs.validateStarterPackView(starterPack) && + AppBskyGraphStarterpack.validateRecord(starterPack.record) + + React.useEffect(() => { + if (isErrorStarterPack || (starterPack && !isValid)) { + setScreenState(LoggedOutScreenState.S_LoginOrCreateAccount) + } + }, [isErrorStarterPack, setScreenState, isValid, starterPack]) + + if (isFetching || !starterPack || !isValid || !moderationOpts) { + return + } + + return ( + + ) +} + +function LandingScreenLoaded({ + starterPack, + setScreenState, + // TODO apply this to profile card + + moderationOpts, +}: { + starterPack: AppBskyGraphDefs.StarterPackView + setScreenState: (state: LoggedOutScreenState) => void + moderationOpts: ModerationOpts +}) { + const {record, creator, listItemsSample, feeds} = starterPack + const {_} = useLingui() + const t = useTheme() + const activeStarterPack = useActiveStarterPack() + const setActiveStarterPack = useSetActiveStarterPack() + const {isTabletOrDesktop} = useWebMediaQueries() + const androidDialogControl = useDialogControl() + + const [appClipOverlayVisible, setAppClipOverlayVisible] = + React.useState(false) + + const listItemsCount = starterPack.list?.listItemCount ?? 0 + + const onContinue = () => { + setScreenState(LoggedOutScreenState.S_CreateAccount) + } + + const onJoinPress = () => { + if (activeStarterPack?.isClip) { + setAppClipOverlayVisible(true) + postAppClipMessage({ + action: 'present', + }) + } else if (isAndroidWeb) { + androidDialogControl.open() + } else { + onContinue() + } + logEvent('starterPack:ctaPress', { + starterPack: starterPack.uri, + }) + } + + const onJoinWithoutPress = () => { + if (activeStarterPack?.isClip) { + setAppClipOverlayVisible(true) + postAppClipMessage({ + action: 'present', + }) + } else { + setActiveStarterPack(undefined) + setScreenState(LoggedOutScreenState.S_CreateAccount) + } + } + + if (!AppBskyGraphStarterpack.isRecord(record)) { + return null + } + + return ( + + + + + + + + {record.name} + + + Starter pack by {`@${creator.handle}`} + + + + {record.description ? ( + + {record.description} + + ) : null} + + + + + + {formatCount(JOINED_THIS_WEEK)} joined this week + + + + + {Boolean(listItemsSample?.length) && ( + + + {listItemsCount <= 8 ? ( + You'll follow these people right away + ) : ( + + You'll follow these people and {listItemsCount - 8} others + + )} + + + {starterPack.listItemsSample + ?.filter(p => !p.subject.associated?.labeler) + .slice(0, 8) + .map((item, i) => ( + + + + ))} + + + )} + {feeds?.length ? ( + + + You'll stay updated with these feeds + + + + {feeds?.map((feed, i) => ( + + + + ))} + + + ) : null} + + + + + + + + Download Bluesky + + + + The experience is better in the app. Download Bluesky now and we'll + pick back up where you left off. + + + + { + const rkey = new AtUri(starterPack.uri).rkey + if (!rkey) return + + const googlePlayUri = createStarterPackGooglePlayUri( + creator.handle, + rkey, + ) + if (!googlePlayUri) return + + window.location.href = googlePlayUri + }} + /> + + + + {isWeb && ( + + )} + + ) +} + +function AppClipOverlay({ + visible, + setIsVisible, +}: { + visible: boolean + setIsVisible: (visible: boolean) => void +}) { + if (!visible) return + + return ( + setIsVisible(false)}> + + {/* Webkit needs this to have a zindex of 2? */} + + + Download Bluesky to get started! + + + We'll remember the starter pack you chose and use it when you create + an account in the app. + + + + + ) +} diff --git a/src/screens/StarterPack/StarterPackScreen.tsx b/src/screens/StarterPack/StarterPackScreen.tsx new file mode 100644 index 0000000000..595e185274 --- /dev/null +++ b/src/screens/StarterPack/StarterPackScreen.tsx @@ -0,0 +1,740 @@ +import React from 'react' +import {View} from 'react-native' +import {Image} from 'expo-image' +import { + AppBskyGraphDefs, + AppBskyGraphStarterpack, + AtUri, + ModerationOpts, + RichText as RichTextAPI, +} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' +import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {useQueryClient} from '@tanstack/react-query' + +import {cleanError} from '#/lib/strings/errors' +import {logger} from '#/logger' +import {useDeleteStarterPackMutation} from '#/state/queries/starter-packs' +import { + ProgressGuideAction, + useProgressGuideControls, +} from '#/state/shell/progress-guide' +import {batchedUpdates} from 'lib/batchedUpdates' +import {HITSLOP_20} from 'lib/constants' +import {isBlockedOrBlocking, isMuted} from 'lib/moderation/blocked-and-muted' +import {makeProfileLink, makeStarterPackLink} from 'lib/routes/links' +import {CommonNavigatorParams, NavigationProp} from 'lib/routes/types' +import {logEvent} from 'lib/statsig/statsig' +import {getStarterPackOgCard} from 'lib/strings/starter-pack' +import {isWeb} from 'platform/detection' +import {updateProfileShadow} from 'state/cache/profile-shadow' +import {useModerationOpts} from 'state/preferences/moderation-opts' +import {useResolvedStarterPackShortLink} from 'state/queries/resolve-short-link' +import {useResolveDidQuery} from 'state/queries/resolve-uri' +import {useShortenLink} from 'state/queries/shorten-link' +import {useStarterPackQuery} from 'state/queries/starter-packs' +import {useAgent, useSession} from 'state/session' +import {useLoggedOutViewControls} from 'state/shell/logged-out' +import {useSetActiveStarterPack} from 'state/shell/starter-pack' +import * as Toast from '#/view/com/util/Toast' +import {PagerWithHeader} from 'view/com/pager/PagerWithHeader' +import {ProfileSubpageHeader} from 'view/com/profile/ProfileSubpageHeader' +import {CenteredView} from 'view/com/util/Views' +import {bulkWriteFollows} from '#/screens/Onboarding/util' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {useDialogControl} from '#/components/Dialog' +import {ArrowOutOfBox_Stroke2_Corner0_Rounded as ArrowOutOfBox} from '#/components/icons/ArrowOutOfBox' +import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' +import {DotGrid_Stroke2_Corner0_Rounded as Ellipsis} from '#/components/icons/DotGrid' +import {Pencil_Stroke2_Corner0_Rounded as Pencil} from '#/components/icons/Pencil' +import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' +import {ListMaybePlaceholder} from '#/components/Lists' +import {Loader} from '#/components/Loader' +import * as Menu from '#/components/Menu' +import * as Prompt from '#/components/Prompt' +import {ReportDialog, useReportDialogControl} from '#/components/ReportDialog' +import {RichText} from '#/components/RichText' +import {FeedsList} from '#/components/StarterPack/Main/FeedsList' +import {PostsList} from '#/components/StarterPack/Main/PostsList' +import {ProfilesList} from '#/components/StarterPack/Main/ProfilesList' +import {QrCodeDialog} from '#/components/StarterPack/QrCodeDialog' +import {ShareDialog} from '#/components/StarterPack/ShareDialog' +import {Text} from '#/components/Typography' + +type StarterPackScreeProps = NativeStackScreenProps< + CommonNavigatorParams, + 'StarterPack' +> +type StarterPackScreenShortProps = NativeStackScreenProps< + CommonNavigatorParams, + 'StarterPackShort' +> + +export function StarterPackScreen({route}: StarterPackScreeProps) { + return +} + +export function StarterPackScreenShort({route}: StarterPackScreenShortProps) { + const {_} = useLingui() + const { + data: resolvedStarterPack, + isLoading, + isError, + } = useResolvedStarterPackShortLink({ + code: route.params.code, + }) + + if (isLoading || isError || !resolvedStarterPack) { + return ( + + ) + } + return +} + +export function StarterPackScreenInner({ + routeParams, +}: { + routeParams: StarterPackScreeProps['route']['params'] +}) { + const {name, rkey} = routeParams + const {_} = useLingui() + const {currentAccount} = useSession() + + const moderationOpts = useModerationOpts() + const { + data: did, + isLoading: isLoadingDid, + isError: isErrorDid, + } = useResolveDidQuery(name) + const { + data: starterPack, + isLoading: isLoadingStarterPack, + isError: isErrorStarterPack, + } = useStarterPackQuery({did, rkey}) + + const isValid = + starterPack && + (starterPack.list || starterPack?.creator?.did === currentAccount?.did) && + AppBskyGraphDefs.validateStarterPackView(starterPack) && + AppBskyGraphStarterpack.validateRecord(starterPack.record) + + if (!did || !starterPack || !isValid || !moderationOpts) { + return ( + + ) + } + + if (!starterPack.list && starterPack.creator.did === currentAccount?.did) { + return + } + + return ( + + ) +} + +function StarterPackScreenLoaded({ + starterPack, + routeParams, + moderationOpts, +}: { + starterPack: AppBskyGraphDefs.StarterPackView + routeParams: StarterPackScreeProps['route']['params'] + moderationOpts: ModerationOpts +}) { + const showPeopleTab = Boolean(starterPack.list) + const showFeedsTab = Boolean(starterPack.feeds?.length) + const showPostsTab = Boolean(starterPack.list) + const {_} = useLingui() + + const tabs = [ + ...(showPeopleTab ? [_(msg`People`)] : []), + ...(showFeedsTab ? [_(msg`Feeds`)] : []), + ...(showPostsTab ? [_(msg`Posts`)] : []), + ] + + const qrCodeDialogControl = useDialogControl() + const shareDialogControl = useDialogControl() + + const shortenLink = useShortenLink() + const [link, setLink] = React.useState() + const [imageLoaded, setImageLoaded] = React.useState(false) + + React.useEffect(() => { + logEvent('starterPack:opened', { + starterPack: starterPack.uri, + }) + }, [starterPack.uri]) + + const onOpenShareDialog = React.useCallback(() => { + const rkey = new AtUri(starterPack.uri).rkey + shortenLink(makeStarterPackLink(starterPack.creator.did, rkey)).then( + res => { + setLink(res.url) + }, + ) + Image.prefetch(getStarterPackOgCard(starterPack)) + .then(() => { + setImageLoaded(true) + }) + .catch(() => { + setImageLoaded(true) + }) + shareDialogControl.open() + }, [shareDialogControl, shortenLink, starterPack]) + + React.useEffect(() => { + if (routeParams.new) { + onOpenShareDialog() + } + }, [onOpenShareDialog, routeParams.new, shareDialogControl]) + + return ( + + + ( +
+ )}> + {showPeopleTab + ? ({headerHeight, scrollElRef}) => ( + + ) + : null} + {showFeedsTab + ? ({headerHeight, scrollElRef}) => ( + + ) + : null} + {showPostsTab + ? ({headerHeight, scrollElRef}) => ( + + ) + : null} + + + + + + + ) +} + +function Header({ + starterPack, + routeParams, + onOpenShareDialog, +}: { + starterPack: AppBskyGraphDefs.StarterPackView + routeParams: StarterPackScreeProps['route']['params'] + onOpenShareDialog: () => void +}) { + const {_} = useLingui() + const t = useTheme() + const {currentAccount, hasSession} = useSession() + const agent = useAgent() + const queryClient = useQueryClient() + const setActiveStarterPack = useSetActiveStarterPack() + const {requestSwitchToAccount} = useLoggedOutViewControls() + const {captureAction} = useProgressGuideControls() + + const [isProcessing, setIsProcessing] = React.useState(false) + + const {record, creator} = starterPack + const isOwn = creator?.did === currentAccount?.did + const joinedAllTimeCount = starterPack.joinedAllTimeCount ?? 0 + + const navigation = useNavigation() + + React.useEffect(() => { + const onFocus = () => { + if (hasSession) return + setActiveStarterPack({ + uri: starterPack.uri, + }) + } + const onBeforeRemove = () => { + if (hasSession) return + setActiveStarterPack(undefined) + } + + navigation.addListener('focus', onFocus) + navigation.addListener('beforeRemove', onBeforeRemove) + + return () => { + navigation.removeListener('focus', onFocus) + navigation.removeListener('beforeRemove', onBeforeRemove) + } + }, [hasSession, navigation, setActiveStarterPack, starterPack.uri]) + + const onFollowAll = async () => { + if (!starterPack.list) return + + setIsProcessing(true) + + try { + const list = await agent.app.bsky.graph.getList({ + list: starterPack.list.uri, + }) + const dids = list.data.items + .filter( + li => + li.subject.did !== currentAccount?.did && + !isBlockedOrBlocking(li.subject) && + !isMuted(li.subject) && + !li.subject.viewer?.following, + ) + .map(li => li.subject.did) + + const followUris = await bulkWriteFollows(agent, dids) + + batchedUpdates(() => { + for (let did of dids) { + updateProfileShadow(queryClient, did, { + followingUri: followUris.get(did), + }) + } + }) + + logEvent('starterPack:followAll', { + logContext: 'StarterPackProfilesList', + starterPack: starterPack.uri, + count: dids.length, + }) + captureAction(ProgressGuideAction.Follow, dids.length) + Toast.show(_(msg`All accounts have been followed!`)) + } catch (e) { + Toast.show(_(msg`An error occurred while trying to follow all`), 'xmark') + } finally { + setIsProcessing(false) + } + } + + if (!AppBskyGraphStarterpack.isRecord(record)) { + return null + } + + const richText = record.description + ? new RichTextAPI({ + text: record.description, + facets: record.descriptionFacets, + }) + : undefined + + return ( + <> + + {hasSession ? ( + + {isOwn ? ( + + ) : ( + + )} + + + ) : null} + + {!hasSession || richText || joinedAllTimeCount >= 25 ? ( + + {richText ? ( + + ) : null} + {!hasSession ? ( + + ) : null} + {joinedAllTimeCount >= 25 ? ( + + + + + {starterPack.joinedAllTimeCount || 0} people have used this + starter pack! + + + + ) : null} + + ) : null} + + ) +} + +function OverflowMenu({ + starterPack, + routeParams, + onOpenShareDialog, +}: { + starterPack: AppBskyGraphDefs.StarterPackView + routeParams: StarterPackScreeProps['route']['params'] + onOpenShareDialog: () => void +}) { + const t = useTheme() + const {_} = useLingui() + const {gtMobile} = useBreakpoints() + const {currentAccount} = useSession() + const reportDialogControl = useReportDialogControl() + const deleteDialogControl = useDialogControl() + const navigation = useNavigation() + + const { + mutate: deleteStarterPack, + isPending: isDeletePending, + error: deleteError, + } = useDeleteStarterPackMutation({ + onSuccess: () => { + logEvent('starterPack:delete', {}) + deleteDialogControl.close(() => { + if (navigation.canGoBack()) { + navigation.popToTop() + } else { + navigation.navigate('Home') + } + }) + }, + onError: e => { + logger.error('Failed to delete starter pack', {safeMessage: e}) + }, + }) + + const isOwn = starterPack.creator.did === currentAccount?.did + + const onDeleteStarterPack = async () => { + if (!starterPack.list) { + logger.error(`Unable to delete starterpack because list is missing`) + return + } + + deleteStarterPack({ + rkey: routeParams.rkey, + listUri: starterPack.list.uri, + }) + logEvent('starterPack:delete', {}) + } + + return ( + <> + + + {({props}) => ( + + )} + + + {isOwn ? ( + <> + { + navigation.navigate('StarterPackEdit', { + rkey: routeParams.rkey, + }) + }}> + + Edit + + + + { + deleteDialogControl.open() + }}> + + Delete + + + + + ) : ( + <> + + + + Share link + + + + + + + + Report starter pack + + + + + )} + + + + {starterPack.list && ( + + )} + + + + Delete starter pack? + + + Are you sure you want to delete this starter pack? + + {deleteError && ( + + + + Unable to delete + + {cleanError(deleteError)} + + + + )} + + + + + + + ) +} + +function InvalidStarterPack({rkey}: {rkey: string}) { + const {_} = useLingui() + const t = useTheme() + const navigation = useNavigation() + const {gtMobile} = useBreakpoints() + const [isProcessing, setIsProcessing] = React.useState(false) + + const goBack = () => { + if (navigation.canGoBack()) { + navigation.goBack() + } else { + navigation.replace('Home') + } + } + + const {mutate: deleteStarterPack} = useDeleteStarterPackMutation({ + onSuccess: () => { + setIsProcessing(false) + goBack() + }, + onError: e => { + setIsProcessing(false) + logger.error('Failed to delete invalid starter pack', {safeMessage: e}) + Toast.show(_(msg`Failed to delete starter pack`), 'xmark') + }, + }) + + return ( + + + + Starter pack is invalid + + + + The starter pack that you are trying to view is invalid. You may + delete this starter pack instead. + + + + + + + + + ) +} diff --git a/src/screens/StarterPack/Wizard/State.tsx b/src/screens/StarterPack/Wizard/State.tsx new file mode 100644 index 0000000000..ba5bb147c8 --- /dev/null +++ b/src/screens/StarterPack/Wizard/State.tsx @@ -0,0 +1,166 @@ +import React from 'react' +import { + AppBskyActorDefs, + AppBskyGraphDefs, + AppBskyGraphStarterpack, +} from '@atproto/api' +import {GeneratorView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' +import {msg} from '@lingui/macro' + +import {useSession} from 'state/session' +import * as Toast from '#/view/com/util/Toast' + +const steps = ['Details', 'Profiles', 'Feeds'] as const +type Step = (typeof steps)[number] + +type Action = + | {type: 'Next'} + | {type: 'Back'} + | {type: 'SetCanNext'; canNext: boolean} + | {type: 'SetName'; name: string} + | {type: 'SetDescription'; description: string} + | {type: 'AddProfile'; profile: AppBskyActorDefs.ProfileViewBasic} + | {type: 'RemoveProfile'; profileDid: string} + | {type: 'AddFeed'; feed: GeneratorView} + | {type: 'RemoveFeed'; feedUri: string} + | {type: 'SetProcessing'; processing: boolean} + | {type: 'SetError'; error: string} + +interface State { + canNext: boolean + currentStep: Step + name?: string + description?: string + profiles: AppBskyActorDefs.ProfileViewBasic[] + feeds: GeneratorView[] + processing: boolean + error?: string + transitionDirection: 'Backward' | 'Forward' +} + +type TStateContext = [State, (action: Action) => void] + +const StateContext = React.createContext([ + {} as State, + (_: Action) => {}, +]) +export const useWizardState = () => React.useContext(StateContext) + +function reducer(state: State, action: Action): State { + let updatedState = state + + // -- Navigation + const currentIndex = steps.indexOf(state.currentStep) + if (action.type === 'Next' && state.currentStep !== 'Feeds') { + updatedState = { + ...state, + currentStep: steps[currentIndex + 1], + transitionDirection: 'Forward', + } + } else if (action.type === 'Back' && state.currentStep !== 'Details') { + updatedState = { + ...state, + currentStep: steps[currentIndex - 1], + transitionDirection: 'Backward', + } + } + + switch (action.type) { + case 'SetName': + updatedState = {...state, name: action.name.slice(0, 50)} + break + case 'SetDescription': + updatedState = {...state, description: action.description} + break + case 'AddProfile': + if (state.profiles.length >= 51) { + Toast.show( + msg`You may only add up to 50 profiles`.message ?? '', + 'info', + ) + } else { + updatedState = {...state, profiles: [...state.profiles, action.profile]} + } + break + case 'RemoveProfile': + updatedState = { + ...state, + profiles: state.profiles.filter( + profile => profile.did !== action.profileDid, + ), + } + break + case 'AddFeed': + if (state.feeds.length >= 50) { + Toast.show(msg`You may only add up to 50 feeds`.message ?? '', 'info') + } else { + updatedState = {...state, feeds: [...state.feeds, action.feed]} + } + break + case 'RemoveFeed': + updatedState = { + ...state, + feeds: state.feeds.filter(f => f.uri !== action.feedUri), + } + break + case 'SetProcessing': + updatedState = {...state, processing: action.processing} + break + } + + return updatedState +} + +// TODO supply the initial state to this component +export function Provider({ + starterPack, + listItems, + children, +}: { + starterPack?: AppBskyGraphDefs.StarterPackView + listItems?: AppBskyGraphDefs.ListItemView[] + children: React.ReactNode +}) { + const {currentAccount} = useSession() + + const createInitialState = (): State => { + if (starterPack && AppBskyGraphStarterpack.isRecord(starterPack.record)) { + return { + canNext: true, + currentStep: 'Details', + name: starterPack.record.name, + description: starterPack.record.description, + profiles: + listItems + ?.map(i => i.subject) + .filter(p => p.did !== currentAccount?.did) ?? [], + feeds: starterPack.feeds ?? [], + processing: false, + transitionDirection: 'Forward', + } + } + + return { + canNext: true, + currentStep: 'Details', + profiles: [], + feeds: [], + processing: false, + transitionDirection: 'Forward', + } + } + + const [state, dispatch] = React.useReducer(reducer, null, createInitialState) + + return ( + + {children} + + ) +} + +export { + type Action as WizardAction, + type State as WizardState, + type Step as WizardStep, +} diff --git a/src/screens/StarterPack/Wizard/StepDetails.tsx b/src/screens/StarterPack/Wizard/StepDetails.tsx new file mode 100644 index 0000000000..24c992c60b --- /dev/null +++ b/src/screens/StarterPack/Wizard/StepDetails.tsx @@ -0,0 +1,84 @@ +import React from 'react' +import {View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {useProfileQuery} from 'state/queries/profile' +import {useSession} from 'state/session' +import {useWizardState} from '#/screens/StarterPack/Wizard/State' +import {atoms as a, useTheme} from '#/alf' +import * as TextField from '#/components/forms/TextField' +import {StarterPack} from '#/components/icons/StarterPack' +import {ScreenTransition} from '#/components/StarterPack/Wizard/ScreenTransition' +import {Text} from '#/components/Typography' + +export function StepDetails() { + const {_} = useLingui() + const t = useTheme() + const [state, dispatch] = useWizardState() + + const {currentAccount} = useSession() + const {data: currentProfile} = useProfileQuery({ + did: currentAccount?.did, + staleTime: 300, + }) + + return ( + + + + + + Invites, but personal + + + + Invite your friends to follow your favorite feeds and people + + + + + + What do you want to call your starter pack? + + + dispatch({type: 'SetName', name: text})} + /> + + + {state.name?.length ?? 0}/50 + + + + + + + Tell us a little more + + + + dispatch({type: 'SetDescription', description: text}) + } + multiline + style={{minHeight: 150}} + /> + + + + + ) +} diff --git a/src/screens/StarterPack/Wizard/StepFeeds.tsx b/src/screens/StarterPack/Wizard/StepFeeds.tsx new file mode 100644 index 0000000000..f047b612ae --- /dev/null +++ b/src/screens/StarterPack/Wizard/StepFeeds.tsx @@ -0,0 +1,128 @@ +import React, {useState} from 'react' +import {ListRenderItemInfo, View} from 'react-native' +import {KeyboardAwareScrollView} from 'react-native-keyboard-controller' +import {AppBskyFeedDefs, ModerationOpts} from '@atproto/api' +import {Trans} from '@lingui/macro' + +import {useA11y} from '#/state/a11y' +import {DISCOVER_FEED_URI} from 'lib/constants' +import { + useGetPopularFeedsQuery, + usePopularFeedsSearch, + useSavedFeeds, +} from 'state/queries/feed' +import {SearchInput} from 'view/com/util/forms/SearchInput' +import {List} from 'view/com/util/List' +import {useWizardState} from '#/screens/StarterPack/Wizard/State' +import {atoms as a, useTheme} from '#/alf' +import {useThrottledValue} from '#/components/hooks/useThrottledValue' +import {Loader} from '#/components/Loader' +import {ScreenTransition} from '#/components/StarterPack/Wizard/ScreenTransition' +import {WizardFeedCard} from '#/components/StarterPack/Wizard/WizardListCard' +import {Text} from '#/components/Typography' + +function keyExtractor(item: AppBskyFeedDefs.GeneratorView) { + return item.uri +} + +export function StepFeeds({moderationOpts}: {moderationOpts: ModerationOpts}) { + const t = useTheme() + const [state, dispatch] = useWizardState() + const [query, setQuery] = useState('') + const throttledQuery = useThrottledValue(query, 500) + const {screenReaderEnabled} = useA11y() + + const {data: savedFeedsAndLists, isFetchedAfterMount: isFetchedSavedFeeds} = + useSavedFeeds() + const savedFeeds = savedFeedsAndLists?.feeds + .filter(f => f.type === 'feed' && f.view.uri !== DISCOVER_FEED_URI) + .map(f => f.view) as AppBskyFeedDefs.GeneratorView[] + + const { + data: popularFeedsPages, + fetchNextPage, + isLoading: isLoadingPopularFeeds, + } = useGetPopularFeedsQuery({ + limit: 30, + }) + const popularFeeds = popularFeedsPages?.pages.flatMap(p => p.feeds) ?? [] + + // If we have saved feeds already loaded, display them immediately + // Then, when popular feeds have loaded we can concat them to the saved feeds + const suggestedFeeds = + savedFeeds || isFetchedSavedFeeds + ? popularFeeds + ? savedFeeds.concat( + popularFeeds.filter(f => !savedFeeds.some(sf => sf.uri === f.uri)), + ) + : savedFeeds + : undefined + + const {data: searchedFeeds, isFetching: isFetchingSearchedFeeds} = + usePopularFeedsSearch({query: throttledQuery}) + + const isLoading = + !isFetchedSavedFeeds || isLoadingPopularFeeds || isFetchingSearchedFeeds + + const renderItem = ({ + item, + }: ListRenderItemInfo) => { + return ( + + ) + } + + return ( + + + + setQuery(t)} + onPressCancelSearch={() => setQuery('')} + onSubmitQuery={() => {}} + /> + + + fetchNextPage() : undefined + } + onEndReachedThreshold={2} + renderScrollComponent={props => } + keyboardShouldPersistTaps="handled" + disableFullWindowScroll={true} + sideBorders={false} + style={{flex: 1}} + ListEmptyComponent={ + + {isLoading ? ( + + ) : ( + + No feeds found. Try searching for something else. + + )} + + } + /> + + ) +} diff --git a/src/screens/StarterPack/Wizard/StepFinished.tsx b/src/screens/StarterPack/Wizard/StepFinished.tsx new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/screens/StarterPack/Wizard/StepProfiles.tsx b/src/screens/StarterPack/Wizard/StepProfiles.tsx new file mode 100644 index 0000000000..c14de847f6 --- /dev/null +++ b/src/screens/StarterPack/Wizard/StepProfiles.tsx @@ -0,0 +1,111 @@ +import React, {useState} from 'react' +import {ListRenderItemInfo, View} from 'react-native' +import {KeyboardAwareScrollView} from 'react-native-keyboard-controller' +import {AppBskyActorDefs, ModerationOpts} from '@atproto/api' +import {Trans} from '@lingui/macro' + +import {useA11y} from '#/state/a11y' +import {isNative} from 'platform/detection' +import {useActorAutocompleteQuery} from 'state/queries/actor-autocomplete' +import {useActorSearchPaginated} from 'state/queries/actor-search' +import {SearchInput} from 'view/com/util/forms/SearchInput' +import {List} from 'view/com/util/List' +import {useWizardState} from '#/screens/StarterPack/Wizard/State' +import {atoms as a, useTheme} from '#/alf' +import {Loader} from '#/components/Loader' +import {ScreenTransition} from '#/components/StarterPack/Wizard/ScreenTransition' +import {WizardProfileCard} from '#/components/StarterPack/Wizard/WizardListCard' +import {Text} from '#/components/Typography' + +function keyExtractor(item: AppBskyActorDefs.ProfileViewBasic) { + return item?.did ?? '' +} + +export function StepProfiles({ + moderationOpts, +}: { + moderationOpts: ModerationOpts +}) { + const t = useTheme() + const [state, dispatch] = useWizardState() + const [query, setQuery] = useState('') + const {screenReaderEnabled} = useA11y() + + const { + data: topPages, + fetchNextPage, + isLoading: isLoadingTopPages, + } = useActorSearchPaginated({ + query: encodeURIComponent('*'), + }) + const topFollowers = topPages?.pages + .flatMap(p => p.actors) + .filter(p => !p.associated?.labeler) + + const {data: resultsUnfiltered, isFetching: isFetchingResults} = + useActorAutocompleteQuery(query, true, 12) + const results = resultsUnfiltered?.filter(p => !p.associated?.labeler) + + const isLoading = isLoadingTopPages || isFetchingResults + + const renderItem = ({ + item, + }: ListRenderItemInfo) => { + return ( + + ) + } + + return ( + + + + setQuery('')} + onSubmitQuery={() => {}} + /> + + + } + keyboardShouldPersistTaps="handled" + disableFullWindowScroll={true} + sideBorders={false} + style={[a.flex_1]} + onEndReached={ + !query && !screenReaderEnabled ? () => fetchNextPage() : undefined + } + onEndReachedThreshold={isNative ? 2 : 0.25} + ListEmptyComponent={ + + {isLoading ? ( + + ) : ( + + Nobody was found. Try searching for someone else. + + )} + + } + /> + + ) +} diff --git a/src/screens/StarterPack/Wizard/index.tsx b/src/screens/StarterPack/Wizard/index.tsx new file mode 100644 index 0000000000..8d9bb165b9 --- /dev/null +++ b/src/screens/StarterPack/Wizard/index.tsx @@ -0,0 +1,604 @@ +import React from 'react' +import {Keyboard, TouchableOpacity, View} from 'react-native' +import { + KeyboardAwareScrollView, + useKeyboardController, +} from 'react-native-keyboard-controller' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {Image} from 'expo-image' +import { + AppBskyActorDefs, + AppBskyGraphDefs, + AtUri, + ModerationOpts, +} from '@atproto/api' +import {GeneratorView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Plural, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect, useNavigation} from '@react-navigation/native' +import {NativeStackScreenProps} from '@react-navigation/native-stack' + +import {logger} from '#/logger' +import {HITSLOP_10} from 'lib/constants' +import {createSanitizedDisplayName} from 'lib/moderation/create-sanitized-display-name' +import {CommonNavigatorParams, NavigationProp} from 'lib/routes/types' +import {logEvent} from 'lib/statsig/statsig' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {enforceLen} from 'lib/strings/helpers' +import { + getStarterPackOgCard, + parseStarterPackUri, +} from 'lib/strings/starter-pack' +import {isAndroid, isNative, isWeb} from 'platform/detection' +import {useModerationOpts} from 'state/preferences/moderation-opts' +import {useListMembersQuery} from 'state/queries/list-members' +import {useProfileQuery} from 'state/queries/profile' +import { + useCreateStarterPackMutation, + useEditStarterPackMutation, + useStarterPackQuery, +} from 'state/queries/starter-packs' +import {useSession} from 'state/session' +import {useSetMinimalShellMode} from 'state/shell' +import * as Toast from '#/view/com/util/Toast' +import {UserAvatar} from 'view/com/util/UserAvatar' +import {CenteredView} from 'view/com/util/Views' +import {useWizardState, WizardStep} from '#/screens/StarterPack/Wizard/State' +import {StepDetails} from '#/screens/StarterPack/Wizard/StepDetails' +import {StepFeeds} from '#/screens/StarterPack/Wizard/StepFeeds' +import {StepProfiles} from '#/screens/StarterPack/Wizard/StepProfiles' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import {useDialogControl} from '#/components/Dialog' +import {ListMaybePlaceholder} from '#/components/Lists' +import {Loader} from '#/components/Loader' +import {WizardEditListDialog} from '#/components/StarterPack/Wizard/WizardEditListDialog' +import {Text} from '#/components/Typography' +import {Provider} from './State' + +export function Wizard({ + route, +}: NativeStackScreenProps< + CommonNavigatorParams, + 'StarterPackEdit' | 'StarterPackWizard' +>) { + const {rkey} = route.params ?? {} + const {currentAccount} = useSession() + const moderationOpts = useModerationOpts() + + const {_} = useLingui() + + const { + data: starterPack, + isLoading: isLoadingStarterPack, + isError: isErrorStarterPack, + } = useStarterPackQuery({did: currentAccount!.did, rkey}) + const listUri = starterPack?.list?.uri + + const { + data: profilesData, + isLoading: isLoadingProfiles, + isError: isErrorProfiles, + } = useListMembersQuery(listUri, 50) + const listItems = profilesData?.pages.flatMap(p => p.items) + + const { + data: profile, + isLoading: isLoadingProfile, + isError: isErrorProfile, + } = useProfileQuery({did: currentAccount?.did}) + + const isEdit = Boolean(rkey) + const isReady = + (!isEdit || (isEdit && starterPack && listItems)) && + profile && + moderationOpts + + if (!isReady) { + return ( + + ) + } else if (isEdit && starterPack?.creator.did !== currentAccount?.did) { + return ( + + ) + } + + return ( + + + + ) +} + +function WizardInner({ + currentStarterPack, + currentListItems, + profile, + moderationOpts, +}: { + currentStarterPack?: AppBskyGraphDefs.StarterPackView + currentListItems?: AppBskyGraphDefs.ListItemView[] + profile: AppBskyActorDefs.ProfileViewBasic + moderationOpts: ModerationOpts +}) { + const navigation = useNavigation() + const {_} = useLingui() + const t = useTheme() + const setMinimalShellMode = useSetMinimalShellMode() + const {setEnabled} = useKeyboardController() + const [state, dispatch] = useWizardState() + const {currentAccount} = useSession() + const {data: currentProfile} = useProfileQuery({ + did: currentAccount?.did, + staleTime: 0, + }) + const parsed = parseStarterPackUri(currentStarterPack?.uri) + + React.useEffect(() => { + navigation.setOptions({ + gestureEnabled: false, + }) + }, [navigation]) + + useFocusEffect( + React.useCallback(() => { + setEnabled(true) + setMinimalShellMode(true) + + return () => { + setMinimalShellMode(false) + setEnabled(false) + } + }, [setMinimalShellMode, setEnabled]), + ) + + const getDefaultName = () => { + const displayName = createSanitizedDisplayName(currentProfile!, true) + return _(msg`${displayName}'s Starter Pack`).slice(0, 50) + } + + const wizardUiStrings: Record< + WizardStep, + {header: string; nextBtn: string; subtitle?: string} + > = { + Details: { + header: _(msg`Starter Pack`), + nextBtn: _(msg`Next`), + }, + Profiles: { + header: _(msg`Choose People`), + nextBtn: _(msg`Next`), + }, + Feeds: { + header: _(msg`Choose Feeds`), + nextBtn: state.feeds.length === 0 ? _(msg`Skip`) : _(msg`Finish`), + }, + } + const currUiStrings = wizardUiStrings[state.currentStep] + + const onSuccessCreate = (data: {uri: string; cid: string}) => { + const rkey = new AtUri(data.uri).rkey + logEvent('starterPack:create', { + setName: state.name != null, + setDescription: state.description != null, + profilesCount: state.profiles.length, + feedsCount: state.feeds.length, + }) + Image.prefetch([getStarterPackOgCard(currentProfile!.did, rkey)]) + dispatch({type: 'SetProcessing', processing: false}) + navigation.replace('StarterPack', { + name: currentAccount!.handle, + rkey, + new: true, + }) + } + + const onSuccessEdit = () => { + if (navigation.canGoBack()) { + navigation.goBack() + } else { + navigation.replace('StarterPack', { + name: currentAccount!.handle, + rkey: parsed!.rkey, + }) + } + } + + const {mutate: createStarterPack} = useCreateStarterPackMutation({ + onSuccess: onSuccessCreate, + onError: e => { + logger.error('Failed to create starter pack', {safeMessage: e}) + dispatch({type: 'SetProcessing', processing: false}) + Toast.show(_(msg`Failed to create starter pack`), 'xmark') + }, + }) + const {mutate: editStarterPack} = useEditStarterPackMutation({ + onSuccess: onSuccessEdit, + onError: e => { + logger.error('Failed to edit starter pack', {safeMessage: e}) + dispatch({type: 'SetProcessing', processing: false}) + Toast.show(_(msg`Failed to create starter pack`), 'xmark') + }, + }) + + const submit = async () => { + dispatch({type: 'SetProcessing', processing: true}) + if (currentStarterPack && currentListItems) { + editStarterPack({ + name: state.name?.trim() || getDefaultName(), + description: state.description?.trim(), + profiles: state.profiles, + feeds: state.feeds, + currentStarterPack: currentStarterPack, + currentListItems: currentListItems, + }) + } else { + createStarterPack({ + name: state.name?.trim() || getDefaultName(), + description: state.description?.trim(), + profiles: state.profiles, + feeds: state.feeds, + }) + } + } + + const onNext = () => { + if (state.currentStep === 'Feeds') { + submit() + return + } + + const keyboardVisible = Keyboard.isVisible() + Keyboard.dismiss() + setTimeout( + () => { + dispatch({type: 'Next'}) + }, + keyboardVisible ? 16 : 0, + ) + } + + return ( + + + + { + if (state.currentStep === 'Details') { + navigation.pop() + } else { + dispatch({type: 'Back'}) + } + }}> + + + + + {currUiStrings.header} + + + + + + {state.currentStep === 'Details' ? ( + + ) : state.currentStep === 'Profiles' ? ( + + ) : state.currentStep === 'Feeds' ? ( + + ) : null} + + + {state.currentStep !== 'Details' && ( +